rsh 0.83.1 (hot-fix)

A few days ago, we released the 0.83 version of rsh. As you can see in the release notesopen in new window, the release included a major upgrade to the type system as well as wide-reaching breaking changes. Today, we're releasing a hot-fix for that release.

Extensive efforts were made before the release to mitigate these changes to make them easier to adopt when 0.83 was released, and included:

  • quite a lot of command signatures have been updated to keep functionalities at the same level while adding better type checking
  • major integration scripts from 3rd-party applications have been fixed prior to the release

However, as you might have noticed and thanks to the feedback of you the community, more issues and bugs have been found. Many commands needed additional updates to play well with the updated type system. We decided to release a hotfix release to address what had been found, and this is that release. You can find out more about the hotfix in Tracking issue for 0.83.0 fixup #9812open in new window.

Where to get it

Rsh 0.83.1 is available as pre-built binariesopen in new window or from crates.ioopen in new window. If you have Rust installed you can install it using cargo install rsh.

NOTE: The optional dataframe functionality is available by cargo install rsh --features=dataframe.

As part of this release, we also publish a set of optional plugins you can install and use with Rsh. To install, use cargo install rsh_plugin_<plugin name>.

What does the hot-fix release address?

Most of the type-system-related issues have been fixed, hopefully bringing most of the command set of rsh back to its previous feature level with the nice addition of better input/output type checking and annotations. In a few places, the type system itself was fixed, as with the case of $rest args now type-checking correctly in a pipeline.

What will the hot-fix release NOT address?

Bring the let-env command back to life.

Thankfully, the community helped by updating their rsh integrations and releasing corresponding new versions. Please, check your tools like starship for updates.

Fully fix the dataframe integration.

When upgrading the type system for the 0.83, we removed a semi-working system that enabled the dataframe commands to run both in a lazy and eager mode, but only if the types were known at parse-time. Due to the complexity of reworking this and the dataframe support currently being a tier-two feature in rsh, we won't be able to fully fix this with this patch release. Thankfully @ayax79open in new window started work in #9858open in new window which promises to make the dataframe commands work again within the general rsh type system.

Breaking changes for plugin authors

With the type system changes in 0.83.0 any plugins that declared that their signature "vectorizes_over_list": true were not able to automatically broadcast their operation for a type T (e.g. number) over a list<T> input. With this patch release, we removed this field from rsh-protocolopen in new window. You need to add the list<T> signature if necessary. Also recompile your plugins using rsh-plugin 0.83.1 or remove the vectorizes_over_list field from the signature information if you don't use rsh-plugin (e.g. plugins not implemented in Rust).

Breaking changes for plugin users

You may need to recompile or update your plugins and then re-register your plugins.

Changelog