Release Notes (v2.2.0)#
March 29, 2023
The v2.2.0 release of HyperShell includes major new features, a few quality of life improvements, and a fix for SSH-mode.
Full task recovery on client eviction#
In previous versions, when a client was evicted because of too many missed heartbeats, any tasks that had been pulled from the server would be lost. Updates to the task data only arrived upon completion of all the tasks; we are not informed of which client took a particular task until it is finished.
We’ve implemented a new communication channel that clients use to immediately “confirm” with all the task IDs from a bundle pulled from the server. The server can then update the database with which exact client has the tasks. So in the event of an eviction any tasks not returned can be reverted, which allows for them to be re-scheduled and taken by a different client.
This new functionality does impact performance at the most extreme end of
task throughput, but under typical scenarios this would not be noticed. A new
--no-confirm has been added however to completely disable
this behavior when not using a database.
Update tasks after submission#
For long-running persistent-style deployments it might be desirable to modify a
task after it has already been submitted. We’ve added a new subcommand for this.
hyper-shell task update --help.
Rich formatting of usage and help statements#
If the current shell is interactive (TTY mode), usage and help statements have rich formatting (colors, bold/italics, etc) for easier reading. Just as how logs will automatically disable colors/formatting if being redirected, formatting of usage and help statements is disabled if not TTY-mode.
--ssh mode for the cluster workflow allows for you to specify
a hostname list inline with the command. In the initial implementation it
allowed for range expansion with a conventional square-bracket notation;
some-[00-04,08].local. However, the comma-seperated syntax did
not apply to groups outside the square-brackets.
Now we support arbitrarily many name groups with commas outside the brackets.
some-[00-04,08].local,other-[02,05].local will expand correctly.
A breaking change in our SQLAlchemy dependency affected the use of UUIDs in the project.