Release Notes (v2.3.0)#

April 13, 2023

The v2.3.0 release includes a number of fixes and improvements. A number of bugs have been fixed and we added better default output formatting of task info from searches.


New default output format for task metadata#

Task info and search results now default to a more human-centric compressed formatting, instead of a full-table render that is typically not readable within 80-120 characters. For searches, YAML, JSON, CSV, and rich TABLE formatting are still available.

The default output of task info and task search are now the same.

Additional logging messages#

The trace-level messages have always included regular messages from routines that are in a wait cycle (e.g., waiting on task bundle to return). We have now added additional trace-level messages. Notably, task executors will emit trace-level messages every two seconds while waiting on a process to complete with the current elapsed time for that process.

New logging attributes#

Users have always been able to customize their configured logging.format beyond the pre-defined sets.

This content of messages is limited to the pre-defined attributes available on each record, though there are many. We have added new attributes in this release to allow for the same level of detail in less horizontal space.

  • hostname_short is essentially the first part of the hostname.

  • relative_name is the module name but relative.

  • elapsed is the elapsed seconds (float).

  • elapsed_ms is the elapsed milliseconds (integer).

  • elapsed_hms is the elapsed time in dd-hh:mm:ss.sss format.


Issue #16#

In a few places, specifically within the task subcommands, normal error modes would not be handled correctly because of the way global exception handling definitions were implemented. The code has been restructured in a way to ensure these sorts of things print a nice message instead of a nasty traceback.

Issue #17#

We don’t yet have robust enough testing of all the different sorts of scenarios that might arise when using the application. We parse users’ ~/.ssh/config when issuing connections and file transfers. But did not pass on gracefully when this file is not present.