Releases: blademd/thymus
Releases · blademd/thymus
Version 0.1.8.1
This is a minor release to clean up some things.
Changes
- The latest Textual version (0.64.0).
- Footer design.
- The filename length setting is deleted.
Fixes
- The logo is hidden on the main screen even if it has enough size to accommodate it.
- Screenshots aren't available.
- When drawing text inside Viewer or Editor widgets, an appropriate thread is not shut down if a user exits a context.
Ctrl
+C
leads to a silent exit from the application.- The IOS settings (e.g.,
heuristics
) do not usetrue
orfalse
as options, - The last opened platform setting (index-based) leads to incorrect behavior due to some race conditions.
Version 0.1.8
This is the first stable release of Thymus, alpha is in the past. It was mostly written from scratch as there is a huge enhancement: the introduction of the editor mode.
New
- The PyPI package!
- The working screen modes:
view
for viewing and navigating a configuration, andedit
for editing an exact path. - The
edit
command, enters theedit
mode and displays a text editor with the content of the current path. - The
commit
command, creates a new context from the default one. - The
rollback
command, rolls back a current context to the selected snapshot. - The
save
command, saves all snapshots to a special.history
file. Thymus loads this file automatically alongside the config file. - The application and platforms settings interface (
Ctrl
+s
), no more typing! It includes user-defined aliases for every possible command and sub-command. - XR-OS support.
- The sub-commands
diff
, andcompare
(or whatever you specified as an alias) for the commandshow
support the additional keywordrollback
. It takes one positional argument - a number of the context (e.g.show | compare rollback 1
) and allows a user to see the difference between the specified context and the current one. Theshow
command supports a relative path for this mode. - Themes change a background color in the
view
mode. It facilitates a better readability of colors in different modes (night vs. day). - The
edit
mode displays a new floating widget with a dynamic number of already displayed lines. The widget can stop the loading of the config and exit theedit
mode by clicking on it. It helps not to be stuck at lengthy configs. - The new setting
save on commit
, automatically runs thesave
command after every successfulcommit
command. It does not apply to therollback
command. - The new setting
editor frequency factor
, governs the amount of time the editor sleeps between two consequent chunks of lines. The default is 4 which is 0.4 seconds. The fastest mode is 0.2 seconds now. - The new setting
editor scale factor
, multiplied by the current application height (a vertical window size) gives a count of lines per every displayed chunk. Combined with thefrequency factor
can improve the loading of the content after theedit
command, but it can hang the application down. - The new sub-command
reveal
for the JunOS platform, shows all secret data which is hidden by default now.
Changes
- Thymus requires Python 3.9. It can probably run with Python 3.8.1+ but it is now unsupported mode.
- The settings file is redesigned, its version is two now. Platform settings are placed in separate files.
- The logging config file is united with the global one.
- The logging widget requires a manual refresh by
r
. - The CLI-er version is no longer shipped and supported.
- The
global
command is obsolete and removed. - The logging screen now is a part of the settings menu.
- The hotkeys
n
andp
for the working screen are removed. - The working screen footer is made from scratch. It lacks the number of lines now.
- A user can't change the theme from the working screen.
- Some old settings are gone.
Enhancement
- In the
view
mode Thymus continuously draws a full configuration in a separate thread, no need to scroll down to display the next chunk. - JunOS hid any secret data by default now.
Fixes
- The netloader module had several issues related to private key signing.
- Lots of tiny fixes due to the fundamental refactoring.
Known issues
- The screenshot function is currently unavailable (I forgot about it lol).
- XR-OS does not support syntax highlighting.
- The
edit
mode also does not support syntax highlighting.
Version 0.1.7-alpha
A post in the blog with more details.
New
- Support for SSH keys. From now Thymus has a dedicated mode that searches for any possible local keys inside ~/.ssh or ~/ssh. It cannot be combined with password-based authentication at the moment.
Enhancement
- Thymus quit using the Netmiko library. Retrieving network configs is based on a homemade async-library.
Fixes
- For the Arista platform some operations of the command "set" didn't work. E. g., a user couldn't change the heuristics mode.
- The "global show" command always showed default settings.
- With very low probability, a piping fabric could throw an exception of unexpected type which led to the application crash.
- IOS-like platforms could account for lines with technical, unrelated to configuration information, and put them into a root stubs attribute. From now Thymus ignores any information preceding the "version" keyword.
- IOS-like platforms have a special keyword that can span many lines (e.g., banner). Thymus accounted for every such line as a standalone stub element. From now Thymus accumulates lines between the special symbol (^C) inside a single stub.
- For UTF-encoded files with BOM, if they are opened with UTF encoding, Thymus had problems with lines that contained the BOM symbol.
Version 0.1.6-alpha
Enhancement
- A user can set a folder that the Open Dialog's tree will use when it appears (by default, it is "~/thymus_data/saves"). The path can be set via the configuration file or CLI.
Fixes
- Thymus for JunOS couldn't navigate through the "inactive:" and "protect:" sections (covered by Thymus-AST ver. 0.1.5.1).
- All project folders were created anywhere. Now, all folders are united under the hood of the "thymus_data" folder which resides in the user's home directory.
Dev
- The requirements.txt file is considered harmful and deleted, install the project via PIP.
- Thymus does not require flake8 anymore as a dependency (we moved internally to Ruff).
- Huge refactoring (something moved, something deleted, something added).
Known issues
- Screenshot-function does not work (the wrong file path), will be fixed in the upcoming release (is not considered urgent).
- SSH cannot use any keys (the main focus is on it now).
A post in the blog with more details.
Version 0.1.5-alpha
New
- Command history (accessible by Ctrl+Up/Down hotkeys).
Enhancements
- The "up show" combination now is as powerful as the "top show" one.
- The recently selected platform from the platforms switch of the Open Dialog is now preserved in the configuration file. It also can be modified by the command line from any Working Screen instance.
- AST construction modules are separated into a standalone package (thymus-ast, 0.1.2).
Fixes
- During the user's input for symbols in a lower register, records of the left sidebar might also change their register.
- Installation of the project by PIP led to improper initialization of a folder structure.
- For the IOS platform an output of any section deeper than one level from the root led to a broken indentation.
- CLIer was fixed and works now.
- The "up show" for the IOS platform didn't work as expected.
- The "top show" for the JUNOS platform didn't work as expected in some cases.
The detailed log of all changes can be found at https://thymus.dev.
Version 0.1.4-alpha
New
- Support of the NX-OS platform.
- Configuration can be opened from a network via SSH/Telnet (requires Netmiko).
- A new command "help". Showed by default at a context's startup.
- Open dialog has the new keyboard navigation scheme.
- The enhanced Tab mode with its setting (enabled by default).
- The new sub-command "contains".
- The new alias for filtering "grep".
- Screenshots support with a hotkey (saved in the SVG format).
Enhancements
- The new setting for the base heuristics of IOS-based contexts.
- The night mode preserves after exiting the application.
- The sub-command "save" saves files into the dedicated folder "saves".
- All current sections are shown when the cursor is absent.
- The "tab" hotkey adds a space after a successful completion.
- After completion by tab there are next possible sections in the left sidebar.
- The context-switching screen can show a context name instead of a path if the name is set.
- For the Working screen, when the cursor is absent and the enhanced Tab mode is disabled, the Up and Down arrow keys scroll a configuration. When the enhanced Tab mode is active, these keys always scroll it.
- For the Working screen, when the cursor is absent the Tab key moves a focus to the Text field.
Fixes
- IOS/JunOS highlighting.
- Diff/compare sub-command could be run across different platforms of the same type (e.g., EOS and IOS).
- Sections with "inactive: " couldn't be visited or auto-completed (JunOS).
- Navigation and auto-completing (JunOS).
- The "set spaces" command didn't align spaces well (IOS, EOS).
- Case-insensitive navigation didn't work.
- Other minor changes.
The detailed log of all changes can be found at https://thymus.dev.
Version 0.1.3.f1-alpha
Changes
- Folder structure was changed.
Enhancements
- Now, JunOS has its native
match
keyword for filtering. - After the sequence of "| " the auto-complete stops, making the experience more smooth.
Fixes
- IOS/EOS. The heuristics mechanism produced the double output both in the text field and the left sidebar.
- IOS/EOS. The
up
orexit
commands did not consider the accessibility of the parent's section. Users could reach useless buds. - The
level
setting in the "logging.conf" did not work. - IOS/EOS. The
wildcard
sub-command did not work with the path argument. - IOS/EOS. The parser did not take into account the possible variable length of indentation in a file.
Version 0.1.3-alpha
New
- Cisco IOS (IOS-XE), Arista EOS support.
- Now you can close a working context with the Escape key (with a confirmation dialog).
- Logging system with rotating files. Log files are stored in the "logs/" folder. The config file for the logging is "settings/logging.conf".
- Logs are accessible inside the Application via a modal dialog (Ctrl+L).
Changes
- Textual version 0.29.0.
- Main screen was redesigned. It does not contain any active elements anymore.
- Dark mode is now a night mode (Ctrl+N). Ctrl+D is no longer available.
Enhancements
- CLIer supports all the same platforms as TUIer does.
- Auto-completion is now case-insensitive.
- A pipe (
|
) symbol at the end of a line fills out the left sidebar of a working screen with all possible options. - Exit is through a confirmation dialog. You can't accidentally close the app now.
- Switching among contexts is on a separate screen now (Ctrl+S).
- Elements for auto-complete on a left sidebar are artificially limited. The limit is configurable via the
global set sidebar_limit N
and the "settings/thymus.json" file. - All platforms can be tuned via
global set platform ...
commands and in the "settings/thymus.json" file. - Tab key does not move the focus from an Input filed in a working context.
- Auto-completion is improved and faster.
- Path bar in a working screen adapts to screen width changes.
- Statusbar in a working screen adapts to screen width changes.
- Statusbar was redesigned, it shows a platform type now, and some elements were moved.
- A horizontal scroll bar of a text field in a working screen adapts to the longest line.
- Lots of refactoring.
Fixes
- Several JunOS lexer's bugs.
- The
top show
command works as expected now. - The open dialog is now modal, you can't create more than one at the same time.
- In a working screen the text field's background color now adapts to day/night mode. However, it requires some scrolling down sometimes...
- All exceptions for a context are handled and logged/printed to a screen, instead of crashing the app.
- Left sidebar in a working screen now preserves a section's name after the pressing of the Space key.
- Now you can't name two or more contexts for the same platform with the same name.
- If the content of two different files was the same
compare
, anddiff
calls crashed the app. - An empty input field of a working screen crashed the app after pressing the Enter key.
- Minor bugs.
Version 0.1.2-alpha
- The main menu was redesigned.
- Thymus supports settings and the settings file now.
- User can manipulate the settings via the
global
commands. - Syntax highlighting.
- The
up show
sub-commands for the TUI part. - Fixed bug with double rows of the TreeView in the open dialog.
- Fixed bug with the Input in the open dialog, it supports Enter hit now.
- Fixed bug with the
save
sub-command, it does not crash the app now.