Skip to content

Commit 62891a1

Browse files
committed
Start 0.100.0 release notes
1 parent 3b8339f commit 62891a1

File tree

1 file changed

+127
-29
lines changed

1 file changed

+127
-29
lines changed

blog/2024-11-12-nushell_0_100_0.md

Lines changed: 127 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ author_site: https://twitter.com/nu_shell
55
author_image: https://www.nushell.sh/blog/images/nu_logo.png
66
excerpt: Today, we're releasing version 0.100.0 of Nu. This release adds...
77
---
8+
89
<!-- TODO: complete the excerpt above -->
910

1011
# Nushell 0.100.0
1112

1213
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.
1314

1415
<!-- TODO: write this excerpt -->
16+
1517
Today, we're releasing version 0.100.0 of Nu. This release adds...
1618

1719
# Where to get it
@@ -21,6 +23,7 @@ Nu 0.100.0 is available as [pre-built binaries](https://github.com/nushell/nushe
2123
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>`.
2224

2325
# Table of contents
26+
2427
- [_Highlights and themes of this release_](#highlights-and-themes-of-this-release-toc)
2528
- [_Changes_](#changes-toc)
2629
- [_Additions_](#additions-toc)
@@ -48,6 +51,7 @@ As part of this release, we also publish a set of optional plugins you can insta
4851
-->
4952

5053
# Highlights and themes of this release [[toc](#table-of-content)]
54+
5155
<!-- NOTE: if you wanna write a section about a breaking change, when it's a very important one,
5256
please add the following snippet to have a "warning" banner :)
5357
> 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
6670

6771
## Additions [[toc](#table-of-content)]
6872

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+
69125
## Breaking changes [[toc](#table-of-content)]
70126

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+
71149
## Deprecations [[toc](#table-of-content)]
72150

73151
## Removals [[toc](#table-of-content)]
74152

75153
## Bug fixes and other changes [[toc](#table-of-content)]
76154

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

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
93-
| sort-by mergedAt
94-
| update url {|it| $"[#($it.number)]\(($it.url)\)" }
95-
| update author { $"[@($in)]\(https://github.com/($in)\)" }
96-
| select author title url
97-
| rename -c {url: pr}
98-
| to md --pretty
99-
100-
$prs | to md --pretty | clip
101-
```
102-
-->
157+
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).
103190

104191
# Notes for plugin developers [[toc](#table-of-content)]
105192

106193
# Hall of fame [[toc](#table-of-content)]
107194

108195
Thanks to all the contributors below for helping us solve issues and improve documentation :pray:
109196

110-
| author | title | url |
111-
| ------------------------------------ | ----------- | ------------------------------------------------------- |
112-
| [@author](https://github.com/author) | ... | [#12345](https://github.com/nushell/nushell/pull/12345) |
197+
| author | title | url |
198+
| ------------------------------------ | ----- | ------------------------------------------------------- |
199+
| [@author](https://github.com/author) | ... | [#12345](https://github.com/nushell/nushell/pull/12345) |
200+
201+
<!--
202+
TODO
203+
204+
https://github.com/nushell/nushell/pull/14108
205+
https://github.com/nushell/nushell/pull/14128
206+
https://github.com/nushell/nushell/pull/14229
207+
https://github.com/nushell/nushell/pull/14230
208+
https://github.com/nushell/nushell/pull/14291
209+
-->
113210

114211
# Full changelog [[toc](#table-of-content)]
212+
115213
<!-- TODO:
116214
paste the output of
117215
```nu
118216
./make_release/release-note/get-full-changelog
119217
```
120218
here
121-
-->
219+
-->

0 commit comments

Comments
 (0)