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.100.0 of Nu. This release adds...
7
7
---
8
+
8
9
<!-- TODO: complete the excerpt above -->
9
10
10
11
# Nushell 0.100.0
11
12
12
13
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
14
14
15
<!-- TODO: write this excerpt -->
16
+
15
17
Today, we're releasing version 0.100.0 of Nu. This release adds...
16
18
17
19
# Where to get it
@@ -21,6 +23,7 @@ Nu 0.100.0 is available as [pre-built binaries](https://github.com/nushell/nushe
21
23
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
24
23
25
# Table of contents
26
+
24
27
-[_Highlights and themes of this release_](#highlights-and-themes-of-this-release-toc)
25
28
-[_Changes_](#changes-toc)
26
29
-[_Additions_](#additions-toc)
@@ -48,6 +51,7 @@ As part of this release, we also publish a set of optional plugins you can insta
48
51
-->
49
52
50
53
# Highlights and themes of this release [[toc](#table-of-content)]
54
+
51
55
<!-- NOTE: if you wanna write a section about a breaking change, when it's a very important one,
52
56
please add the following snippet to have a "warning" banner :)
53
57
> see [an example](https://www.nushell.sh/blog/2023-09-19-nushell_0_85_0.html#pythonesque-operators-removal)
@@ -66,56 +70,150 @@ As part of this release, we also publish a set of optional plugins you can insta
66
70
67
71
## Additions [[toc](#table-of-content)]
68
72
73
+
### `like` and `not-like` operators
74
+
75
+
With [#14072](https://github.com/nushell/nushell/pull/14072), this release adds two "new" operators: `like` and `not-like`. These operators are alternative forms of the preexisting `=~` and `!~` operators, respectively. The only reason to use one form over the other is preference. For example, people familiar with SQL may prefer using `like` and `not-like`. In the future, there is a chance that the shorter forms may be removed, but there are no plans to do so yet, if at all.
76
+
77
+
### `catch` error record
78
+
79
+
In [#14082](https://github.com/nushell/nushell/pull/14082), two additional columns were added to the error record passed to catch blocks/closures:
80
+
81
+
-`json`: a string containing the error data as JSON.
82
+
-`rendered`: a string containing the pretty formatted error message, roughly the same as you would see in your terminal.
83
+
84
+
### `help commands` and `scope commands`
85
+
86
+
The `help commands` and `scope commands` now output an `is_const` column indicating whether a command can be used in a parse-time constant context ([#14125](https://github.com/nushell/nushell/pull/14125)).
87
+
88
+
### `ps -l`
89
+
90
+
On macOS, `ps -l` now lists the `start_time` of the processes. Windows and Linux already listed a `start_time` column ([#14127](https://github.com/nushell/nushell/pull/14127)).
91
+
92
+
### `url build-query`
93
+
94
+
Thanks to [@adaschma](https://github.com/adaschma) in [#14073](https://github.com/nushell/nushell/pull/14073), `url build-query` now allows list values in the parameter record. For example:
95
+
96
+
```nu
97
+
{ a: [1 2], b: 3 } | url build-query
98
+
# a=1&a=2&b=3
99
+
```
100
+
101
+
### `stor`
102
+
103
+
`stor` now supports list and table inputs thanks to [@friaes](https://github.com/friaes) in [#14175](https://github.com/nushell/nushell/pull/14175).
104
+
105
+
### `to text --no-newline`
106
+
107
+
In [#14158](https://github.com/nushell/nushell/pull/14158), the `--no-newline`/`-n` flag was added to `to text`. Providing this flag disables the trailing new line added to the output.
108
+
109
+
```nu
110
+
[a] | to text # "a\n"
111
+
[a] | to text -n # "a"
112
+
113
+
[a b] | to text # "a\nb\n"
114
+
[a b] | to text -n # "a\nb"
115
+
```
116
+
117
+
### `open --raw`
118
+
119
+
After [#14141](https://github.com/nushell/nushell/pull/14141), `open --raw` now sets the `content-type` in the pipeline metadata for `nu`, `nuon`, and `json` files.
120
+
121
+
### `help`
122
+
123
+
The `help` output for commands now shows the command type in parenthesis after the command name (i.e., `plugin`, `alias`, or `custom`). Currently, the command type is not displayed for `built-in`, `keyword`, or known `external` commands ([#14165](https://github.com/nushell/nushell/pull/14165)).
124
+
69
125
## Breaking changes [[toc](#table-of-content)]
70
126
127
+
### Lone, leading pipe in closures
128
+
129
+
Currently, a leading pipe character is allowed for pipelines in Nushell:
130
+
131
+
```nu
132
+
| ls
133
+
```
134
+
135
+
The closure syntax also uses pipe characters, so the parser previously allowed some cursed code:
136
+
137
+
```nu
138
+
{ |a $a }
139
+
{ |a, b $a $b }
140
+
```
141
+
142
+
Thanks to [@sgvictorino](https://github.com/sgvictorino) in [#14095](https://github.com/nushell/nushell/pull/14095), unmatched leading pipe characters in closures are no longer allowed to prevent this potential ambiguity.
143
+
144
+
```nu
145
+
{ |a| $a } # ok
146
+
{ |a $a } # now errors
147
+
```
148
+
71
149
## Deprecations [[toc](#table-of-content)]
72
150
73
151
## Removals [[toc](#table-of-content)]
74
152
75
153
## Bug fixes and other changes [[toc](#table-of-content)]
76
154
77
-
<!-- NOTE: to start investigating the contributions of last release, i like to list them all in a raw table.
78
-
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)
79
-
as follows:
155
+
### `return`
80
156
81
-
```nushell
82
-
use ./make_release/release-note/list-merged-prs
83
-
use std clip
84
-
85
-
let last_release_date = ^gh api /repos/nushell/nushell/releases
86
-
| from json
87
-
| into datetime published_at
88
-
| get published_at
89
-
| sort
90
-
| last
91
-
92
-
let prs = list-merged-prs nushell/nushell $last_release_date
In [#14120](https://github.com/nushell/nushell/pull/14120), a bug was fixed were `return`, `break`, and `continue` would set the last exit code to 1.
158
+
159
+
### `to text`
160
+
161
+
`to text` would previously have different behavior for list values and streaming list input. This has been fixed with [#14158](https://github.com/nushell/nushell/pull/14158), and the behavior for list streams is now used for list values.
162
+
163
+
### `use`
164
+
165
+
When importing a module that defines no constants, an empty record variable is no longer created ([#14051](https://github.com/nushell/nushell/pull/14051)).
166
+
167
+
### `transpose`
168
+
169
+
With [#14096](https://github.com/nushell/nushell/pull/14096), `transpose` now bubbles up any top-level errors it encounters in its input thanks to [@PhotonBursted](https://github.com/PhotonBursted).
170
+
171
+
### Constants with type signatures
172
+
173
+
Thanks to [@sgvictorino](https://github.com/sgvictorino) in [#14118](https://github.com/nushell/nushell/pull/14118), a compiler bug preventing imports of constants with type signatures has been fixed.
174
+
175
+
### Short flag type checking
176
+
177
+
Short flags for commands were previously not being typed checked. This has been fixed in [#14074](https://github.com/nushell/nushell/pull/14074) thanks to [@sgvictorino](https://github.com/sgvictorino).
178
+
179
+
### `in $range`
180
+
181
+
The step value for ranges was previously not taken into account when checking if a value was `in` a range. Thanks to [@JoaquinTrinanes](https://github.com/JoaquinTrinanes), this has been fixed with [#14011](https://github.com/nushell/nushell/pull/14011).
182
+
183
+
### `clear`
184
+
185
+
On some terminals, `clear` would behave weirdly if used in a series of commands. Thanks to [@NotTheDr01ds](https://github.com/NotTheDr01ds), this has been fixed in [#14181](https://github.com/nushell/nushell/pull/14181).
186
+
187
+
### Panic fixes
188
+
189
+
A parser panic regarding redirections was fixed in [#14035](https://github.com/nushell/nushell/pull/14035) thanks to [@Kither12](https://github.com/Kither12).
103
190
104
191
# Notes for plugin developers [[toc](#table-of-content)]
105
192
106
193
# Hall of fame [[toc](#table-of-content)]
107
194
108
195
Thanks to all the contributors below for helping us solve issues and improve documentation :pray:
0 commit comments