You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
excerpt: Today, we're releasing version 0.94.1 of Nu. This release adds...
6
+
excerpt: Today, we're releasing version 0.94.1 of Nu. This is a patch release to fix issues introduced by 0.94.0.
7
7
---
8
-
<!-- TODO: complete the excerpt above -->
9
8
10
9
# Nushell 0.94.1
11
10
12
11
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.
13
12
14
-
<!-- TODO: write this excerpt -->
15
-
Today, we're releasing version 0.94.1 of Nu. This release adds...
13
+
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.
16
14
17
15
# Where to get it
18
16
@@ -21,114 +19,78 @@ Nu 0.94.1 is available as [pre-built binaries](https://github.com/nushell/nushel
21
19
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>`.
22
20
23
21
# Table of content
22
+
24
23
-[_Highlights and themes of this release_](#highlights-and-themes-of-this-release-toc)
25
-
-[_Changes to commands_](#changes-to-commands-toc)
# Highlights and themes of this release [[toc](#table-of-content)]
53
-
<!-- NOTE: if you wanna write a section about a breaking change, when it's a very important one,
54
-
please add the following snippet to have a "warning" banner :)
55
-
> see [an example](https://www.nushell.sh/blog/2023-09-19-nushell_0_85_0.html#pythonesque-operators-removal)
56
33
57
-
```md
58
-
::: warning Breaking change
59
-
See a full overview of the [breaking changes](#breaking-changes)
60
-
:::
61
-
```
62
-
-->
63
-
<!-- NOTE: see https://vuepress.github.io/reference/default-theme/markdown.html#custom-containers
64
-
for the list of available *containers*
65
-
-->
34
+
## Restore tilde expansion on external command names [[toc](#table-of-content)]
35
+
36
+
Tilde expansion in the name of an external command was inadvertently removed from 0.94.0, so these no longer worked:
66
37
67
-
# Changes to commands [[toc](#table-of-content)]
38
+
```nushell
39
+
~/bin/foo
40
+
^~/bin/bar
41
+
run-external ~/bin/baz
42
+
```
68
43
69
-
## Additions [[toc](#table-of-content)]
44
+
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):
70
45
71
-
## Breaking changes [[toc](#table-of-content)]
46
+
```nushell
47
+
^"~/bin/foo"
48
+
^$"~/bin/($env.BIN_NAME)"
49
+
# and run-external with the same
50
+
```
72
51
73
-
## Deprecations [[toc](#table-of-content)]
52
+
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:
74
53
75
-
## Removals [[toc](#table-of-content)]
54
+
```nushell
55
+
^("~/bin/foo" | path expand)
56
+
```
76
57
77
-
## Other changes [[toc](#table-of-content)]
58
+
but we would like to make this more ergonomic somehow in a future release.
78
59
79
-
## Bug fixes[[toc](#table-of-content)]
60
+
## Fix handling of rest args in `do`[[toc](#table-of-content)]
80
61
81
-
<!-- NOTE: to start investigating the contributions of last release, i like to list them all in a raw table.
82
-
to achieve this, one can use the [`list-merged-prs` script from `nu_scripts`](https://github.com/nushell/nu_scripts/blob/main/make_release/release-note/list-merged-prs)
83
-
as follows:
62
+
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.
let last_release_date = ^gh api /repos/nushell/nushell/releases
90
-
| from json
91
-
| into datetime published_at
92
-
| get published_at
93
-
| sort
94
-
| last
68
+
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!
95
69
96
-
let prs = list-merged-prs nushell/nushell $last_release_date
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).
116
75
117
-
## Notes for plugin developers
76
+
## Fix incorrect path handling in OSC9;9 shell integration [[toc](#table-of-content)]
118
77
119
-
# Hall of fame [[toc](#table-of-content)]
78
+
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.
120
79
121
-
Thanks to all the contributors below for helping us solve issues and improve documentation :pray:
80
+
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)]
83
+
84
+
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).
126
85
127
86
# Full changelog [[toc](#table-of-content)]
128
-
<!-- TODO:
129
-
paste the output of
130
-
```nu
131
-
./make_release/release-note/get-full-changelog
132
-
```
133
-
here
134
-
-->
87
+
88
+
-[IanManske](https://github.com/IanManske) created
89
+
-[Disallow more characters in arguments for internal `cmd` commands](https://github.com/nushell/nushell/pull/13009)
0 commit comments