Skip to content

Commit

Permalink
Release notes for 0.94.1 (#1427)
Browse files Browse the repository at this point in the history
  • Loading branch information
devyn authored May 30, 2024
1 parent 2eceaa3 commit 68d42a3
Showing 1 changed file with 96 additions and 0 deletions.
96 changes: 96 additions & 0 deletions blog/2024-05-30-nushell_0_94_1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
title: Nushell 0.94.1
author: The Nu Authors
author_site: https://twitter.com/nu_shell
author_image: https://www.nushell.sh/blog/images/nu_logo.png
excerpt: Today, we're releasing version 0.94.1 of Nu. This is a patch release to fix issues introduced by 0.94.0.
---

# Nushell 0.94.1

Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your command line. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful command line pipelines.

Today, we're releasing version 0.94.1 of Nu. This is a patch release to fix issues introduced by 0.94.0, including path expansion for external commands, `path type` changes, shell integration, and more.

# Where to get it

Nu 0.94.1 is available as [pre-built binaries](https://github.com/nushell/nushell/releases/tag/0.94.1) or from [crates.io](https://crates.io/crates/nu). If you have Rust installed you can install it using `cargo install nu`.

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>`.

# Table of content

- [_Highlights and themes of this release_](#highlights-and-themes-of-this-release-toc)
- [_Restore tilde expansion on external command names_](#restore-tilde-expansion-on-external-command-names-toc)
- [_Fix handling of rest args in `do`_](#fix-handling-of-rest-args-in-do-toc)
- [_Restore `path type` behavior_](#restore-path-type-behavior-toc)
- [_Fix incorrect path handling in OSC9;9 shell integration_](#fix-incorrect-path-handling-in-osc9-9-shell-integration-toc)
- [_Disallow more characters in arguments for internal `cmd.exe` commands_](#disallow-more-characters-in-arguments-for-internal-cmd-exe-commands-toc)
- [_Hall of fame_](#hall-of-fame-toc)
- [_Full changelog_](#full-changelog-toc)

# Highlights and themes of this release [[toc](#table-of-content)]

## Restore tilde expansion on external command names [[toc](#table-of-content)]

Tilde expansion in the name of an external command was inadvertently removed from 0.94.0, so these no longer worked:

```nushell
~/bin/foo
^~/bin/bar
run-external ~/bin/baz
```

This behavior has been restored by [#13001](https://github.com/nushell/nushell/pull/13001). We chose not to allow the following, for now (these still don't expand):

```nushell
^"~/bin/foo"
^$"~/bin/($env.BIN_NAME)"
# and run-external with the same
```

This is to be consistent with our behavior in other places where quoted strings usually don't cause expansion of extra path features. It is possible to use `path expand` instead:

```nushell
^("~/bin/foo" | path expand)
```

but we would like to make this more ergonomic somehow in a future release.

## Fix handling of rest args in `do` [[toc](#table-of-content)]

A bug has existed for a little while when using `do` with a closure that takes rest args and also takes required or optional args.

```nushell
do { |a, b, ...c| print $a $b $c } 1 2 3 4 5 6 7 8
```

Before the patch, this would print `1`, `2`, and then `[5 6 7 8]`, as the non-rest args were counted incorrectly. [@WindSoilder](https://github.com/WindSoilder) fixed this in [#13002](https://github.com/nushell/nushell/pull/13002), and that fix is included in this release. Thanks!

## Restore `path type` behavior [[toc](#table-of-content)]

In 0.94.0, we changed `path type` to return an error for non-existent paths rather than an empty string, but we didn't communicate this change thoroughly enough and it broke some tools like `zoxide`. We've decided to go back to the previous behavior for now and revisit this later.

Fixed by [@IanManske](https://github.com/IanManske) in [#13006](https://github.com/nushell/nushell/pull/13006).

## Fix incorrect path handling in OSC9;9 shell integration [[toc](#table-of-content)]

This escape sequence is used to tell terminals where the current directory is. This is helpful for terminals that open new tabs in the same directory, e.g. "Duplicate Tab" in Windows Terminal. A slash was being added incorrectly to the beginning here, which broke Windows.

Fixed by [@fdncred](https://github.com/fdncred) in [#12994](https://github.com/nushell/nushell/pull/12994).

## Disallow more characters in arguments for internal `cmd.exe` commands [[toc](#table-of-content)]

Properly escaping command arguments on Windows is [complicated](https://flatt.tech/research/posts/batbadbut-you-cant-securely-execute-commands-on-windows/), and we weren't correctly rejecting certain potentially unsafe arguments to the `cmd.exe` builtins we support (such as `mklink`). As we would prefer that you only have to learn one set of escaping rules to use Nushell properly, this is undesirable behavior, so [@IanManske](https://github.com/IanManske) has fixed it in [#13009](https://github.com/nushell/nushell/pull/13009).

# Full changelog [[toc](#table-of-content)]

- [IanManske](https://github.com/IanManske) created
- [Disallow more characters in arguments for internal `cmd` commands](https://github.com/nushell/nushell/pull/13009)
- [Restore `path type` behavior](https://github.com/nushell/nushell/pull/13006)
- [WindSoilder](https://github.com/WindSoilder) created
- [fix do closure with both required, options, and rest args](https://github.com/nushell/nushell/pull/13002)
- [devyn](https://github.com/devyn) created
- [Restore tilde expansion on external command names](https://github.com/nushell/nushell/pull/13001)
- [fdncred](https://github.com/fdncred) created
- [fixes a bug in OSC9;9 execution](https://github.com/nushell/nushell/pull/12994)

0 comments on commit 68d42a3

Please sign in to comment.