Skip to content

Releases: blademd/thymus

Version 0.1.8.1

04 Jun 14:19
Compare
Choose a tag to compare

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 use true or false as options,
  • The last opened platform setting (index-based) leads to incorrect behavior due to some race conditions.

Version 0.1.8

19 May 15:00
Compare
Choose a tag to compare

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, and edit for editing an exact path.
  • The edit command, enters the edit 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, and compare (or whatever you specified as an alias) for the command show support the additional keyword rollback. 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. The show 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 the edit mode by clicking on it. It helps not to be stuck at lengthy configs.
  • The new setting save on commit, automatically runs the save command after every successful commit command. It does not apply to the rollback 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 the frequency factor can improve the loading of the content after the edit 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 and p 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

10 Dec 12:06
Compare
Choose a tag to compare

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

19 Nov 18:34
Compare
Choose a tag to compare

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

19 Oct 03:02
Compare
Choose a tag to compare

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

12 Sep 13:27
c514a87
Compare
Choose a tag to compare

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

15 Jul 18:00
Compare
Choose a tag to compare

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 or exit 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

12 Jul 14:28
Compare
Choose a tag to compare

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, and diff 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

24 May 09:33
Compare
Choose a tag to compare
  • 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.