Nushell 0.83.1 (hot-fix)

A few days ago, we released the 0.83 version of Nushell. 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

Nu 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 nu.

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

As part of this release, we also publish a set of optional plugins you can install and use with Nu. To install, use cargo install nu_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 Nushell 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 Nushell 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 Nushell, 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 Nushell 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 nu-protocolopen in new window. You need to add the list<T> signature if necessary. Also recompile your plugins using nu-plugin 0.83.1 or remove the vectorizes_over_list field from the signature information if you don't use nu-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.