Skip to content

Commit 830e068

Browse files
committed
add toc
1 parent 4d3c31b commit 830e068

File tree

1 file changed

+70
-36
lines changed

1 file changed

+70
-36
lines changed

blog/2025-06-10-nushell_0_105_0.md

Lines changed: 70 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,43 @@ As part of this release, we also publish a set of optional [plugins](https://www
2222

2323
# Table of contents
2424

25+
- [_Highlights and themes of this release_](#highlights-and-themes-of-this-release-toc)
26+
- [_One `where` to rule them all_](#one-where-to-rule-them-all-toc)
27+
- [_Better deprecations_](#better-deprecations-toc)
28+
- [_`oneof` the things_](#oneof-the-things-toc)
29+
- [_Case-sensitive cell-paths or not`!`_](#case-sensitive-cell-paths-or-not-toc)
30+
- [_`recurse`'ively explore nested values_](#recurse-ively-explore-nested-values-toc)
31+
- [_No more `openssl`_](#no-more-openssl-toc)
32+
- [_Better Windows releases_](#better-windows-releases-toc)
33+
- [_HTTP by default_](#http-by-default-toc)
34+
- [_More Polars_](#more-polars-toc)
35+
- [_Changes_](#changes-toc)
36+
- [_Additions_](#additions-toc)
37+
- [_Ignore fields in simple `parse` patterns with `_`_](#ignore-fields-in-simple-parse-patterns-with-toc)
38+
- [_Lazy closure evaluation for `default`_](#lazy-closure-evaluation-for-default-toc)
39+
- [_`path join` can now read byte stream input_](#path-join-can-now-read-byte-stream-input-toc)
40+
- [_`run-external` spreads command if it's a list_](#run-external-spreads-command-if-it-s-a-list-toc)
41+
- [_Improvements to `bench`_](#improvements-to-bench-toc)
42+
- [_`overlay new -r` can now reset overlays_](#overlay-new-r-can-now-reset-overlays-toc)
43+
- [_See env variables as externals would_](#see-env-variables-as-externals-would-toc)
44+
- [_Use PowerShell scripts from the `$env.PATH`_](#use-powershell-scripts-from-the-env-path-toc)
45+
- [_Make your table look like they are from neovim_](#make-your-table-look-like-they-are-from-neovim-toc)
46+
- [_Center columns via `to md --center`_](#center-columns-via-to-md-center-toc)
47+
- [_Prefer OSC 9;9 on Windows over OSC 7_](#prefer-osc-9-9-on-windows-over-osc-7-toc)
48+
- [_Disable expensive calculations with `gstat --disable-tag`_](#disable-expensive-calculations-with-gstat-disable-tag-toc)
49+
- [_Know what `open` and `save` can do with `std/help`_](#know-what-open-and-save-can-do-with-std-help-toc)
50+
- [_Content type of `view span`_](#content-type-of-view-span-toc)
51+
- [_Breaking changes_](#breaking-changes-toc)
52+
- [_Cell-paths with case-sensitivity and without`!`_](#cell-paths-with-case-sensitivity-and-without-toc)
53+
- [_Paths on lazy frames now produce expressions_](#paths-on-lazy-frames-now-produce-expressions-toc)
54+
- [_Bug fixes and other changes_](#bug-fixes-and-other-changes-toc)
55+
- [_Notes for plugin developers_](#notes-for-plugin-developers-toc)
56+
- [_Construct `IoError` from `std::io::Error` instead of `std::io::ErrorKind`_](#construct-ioerror-from-std-io-error-instead-of-std-io-errorkind-toc)
57+
- [_Hall of fame_](#hall-of-fame-toc)
58+
- [_Full changelog_](#full-changelog-toc)
2559
<!-- TODO: once all the content below is finished and committed, `use nu_scripts/make_release/release-note/notes.nu *` and run `write-toc $this_file`. -->
2660

27-
# Highlights and themes of this release
61+
# Highlights and themes of this release [[toc](#table-of-contents)]
2862

2963
<!-- NOTE: if you wanna write a section about a breaking change, when it's a very important one,
3064
please add the following snippet to have a "warning" banner :)
@@ -40,7 +74,7 @@ As part of this release, we also publish a set of optional [plugins](https://www
4074
for the list of available *containers*
4175
-->
4276

43-
## One `where` to rule them all
77+
## One `where` to rule them all [[toc](#table-of-contents)]
4478

4579
`where` used to support only row conditions and literal closures for filtering rows.
4680
If you wanted to use stored closures, you had to use `filter`.
@@ -50,7 +84,7 @@ In [#15697](https://github.com/nushell/nushell/pull/15697), [@Bahex](https://git
5084

5185
Now, `where` can be used as a drop-in replacement for `filter`.
5286

53-
## Better deprecations
87+
## Better deprecations [[toc](#table-of-contents)]
5488

5589
You can now use the `@deprecated` attribute on custom commands to mark them as deprecated, thanks to [@132ikl](https://github.com/132ikl) in [#15770](https://github.com/nushell/nushell/pull/15770). Pass a string as the first argument to show a custom deprecation message. You can also add flags to give more details:
5690

@@ -67,7 +101,7 @@ For example:
67101
def my-old-command [] {}
68102
```
69103

70-
## `oneof` the things
104+
## `oneof` the things [[toc](#table-of-contents)]
71105

72106
Built-in commands have long used `SyntaxShape::OneOf` to accept multiple possible types.
73107
Custom commands couldn't do this until [#15646](https://github.com/nushell/nushell/pull/15646), when [@Bahex](https://github.com/Bahex) added the `oneof<...>` type to declare type alternatives.
@@ -80,7 +114,7 @@ def foo [
80114
] { .. }
81115
```
82116

83-
## Case-sensitive cell-paths or not`!`
117+
## Case-sensitive cell-paths or not`!` [[toc](#table-of-contents)]
84118

85119
Before, it wasn't clear if cell-paths were case-sensitive, so some commands expected case sensitivity while others didn't.
86120
[@Bahex](https://github.com/Bahex) fixed this in [#15692](https://github.com/nushell/nushell/pull/15692).
@@ -104,7 +138,7 @@ The `--sensitive` and `--insensitive` flags still work but some are now deprecat
104138

105139
You can also use the new syntax to say: get `"foo"` case-insensitively, or return nothing if not found: `get foo?!`.
106140

107-
## `recurse`'ively explore nested values
141+
## `recurse`'ively explore nested values [[toc](#table-of-contents)]
108142

109143
This release adds a new `recurse` command in `std-rfc/iter`, as an equivalent to jq's `recurse`/`..`.
110144

@@ -158,20 +192,20 @@ http get 'https://www.nushell.sh/rss.xml'
158192
# => This week in Nushell #296
159193
```
160194

161-
## No more `openssl`
195+
## No more `openssl` [[toc](#table-of-contents)]
162196

163-
If you've built nushell on Linux, you probably had to install openssl libraries because we linked to it by default.
164-
This version switches fully to [rustls](https://github.com/rustls/rustls), a pure Rust TLS library, making builds simpler.
197+
If you've built nushell on Linux, you probably had to install openssl libraries because we linked to it by default.
198+
This version switches fully to [rustls](https://github.com/rustls/rustls), a pure Rust TLS library, making builds simpler.
165199
The change was made by [@cptpiepmatz](https://github.com/cptpiepmatz) in [#15810](https://github.com/nushell/nushell/pull/15810), and [#15812](https://github.com/nushell/nushell/pull/15812) added support for older platforms.
166200

167201
If you still need openssl, build with `--no-default-features --features plugin,trash-support,sqlite,native-tls`.
168202

169-
## Better Windows releases
203+
## Better Windows releases [[toc](#table-of-contents)]
170204

171205
Thanks to [@hustcer](https://github.com/hustcer), our Windows releases are now much improved.
172206
Check out the [Nushell 0.104.1 blog post](https://www.nushell.sh/blog/2025-05-23-nushell_0_104_1.html) for more details.
173207

174-
## HTTP by default
208+
## HTTP by default [[toc](#table-of-contents)]
175209

176210
Running `http get example.com` used to fail because the command needed a full URL.
177211
[@noahfraiture](https://github.com/noahfraiture) fixed this in [#15804](https://github.com/nushell/nushell/pull/15804) by letting Nushell add `http://` when the scheme is missing.
@@ -180,7 +214,7 @@ Now you can write:
180214
- `http get example.com`
181215
- `http get :8000` goes to [http://localhost:8000](http://localhost:8000)
182216

183-
## More Polars
217+
## More Polars [[toc](#table-of-contents)]
184218

185219
This release adds several new `polars` commands:
186220

@@ -194,11 +228,11 @@ Thanks to [@pyz4](https://github.com/pyz4), `polars unique` ([#15771](https://gi
194228

195229
[@pyz4](https://github.com/pyz4) also added new `polars math` expressions in [#15822](https://github.com/nushell/nushell/pull/15822).
196230

197-
# Changes
231+
# Changes [[toc](#table-of-contents)]
198232

199-
## Additions
233+
## Additions [[toc](#table-of-contents)]
200234

201-
### Ignore fields in simple `parse` patterns with `_`
235+
### Ignore fields in simple `parse` patterns with `_` [[toc](#table-of-contents)]
202236

203237
[@132ikl](https://github.com/132ikl) added the option to use the placeholder `_` to ignore fields in [#15873](https://github.com/nushell/nushell/pull/15873).
204238

@@ -211,7 +245,7 @@ Thanks to [@pyz4](https://github.com/pyz4), `polars unique` ([#15771](https://gi
211245
# => ╰───┴───────╯
212246
```
213247

214-
### Lazy closure evaluation for `default`
248+
### Lazy closure evaluation for `default` [[toc](#table-of-contents)]
215249

216250
`default` can now take a closure for a default value instead of a direct value thanks to [@Mrfiregem](https://github.com/Mrfiregem) in [#15654](https://github.com/nushell/nushell/pull/15654).
217251
These closure are lazily evaluated and cached.
@@ -221,15 +255,15 @@ ls | default { sleep 5sec; 'N/A' } name # => No-op since `name` column is never
221255
ls | default { sleep 5sec; 'N/A' } foo bar # => creates columns `foo` and `bar`; only takes 5 seconds since closure result is cached
222256
```
223257

224-
### `path join` can now read byte stream input
258+
### `path join` can now read byte stream input [[toc](#table-of-contents)]
225259

226260
When commands return a path, thanks to [@Mrfiregem](https://github.com/Mrfiregem) in [#15736](https://github.com/nushell/nushell/pull/15736), you can now call `path join` directly without having to use `collect`.
227261

228262
```nu
229263
^pwd | path join foo
230264
```
231265

232-
### `run-external` spreads command if it's a list
266+
### `run-external` spreads command if it's a list [[toc](#table-of-contents)]
233267

234268
With the addition of [#15776](https://github.com/nushell/nushell/pull/15776) by [@Mrfiregem](https://github.com/Mrfiregem), `run-external` (or calling an external) can now use a list to support arguments.
235269

@@ -238,7 +272,7 @@ $env.config.buffer_editor = ["emacsclient", "-s", "light", "-t"]
238272
run-external $env.config.buffer_editor foo.text
239273
```
240274

241-
### Improvements to `bench`
275+
### Improvements to `bench` [[toc](#table-of-contents)]
242276

243277
[@Tyarel8](https://github.com/Tyarel8) added some improvements to `bench` in [#15843](https://github.com/nushell/nushell/pull/15843) and [#15856](https://github.com/nushell/nushell/pull/15856).
244278
It is now possible to pass multiple closures into `bench` to compare and added the flags:
@@ -249,20 +283,20 @@ It is now possible to pass multiple closures into `bench` to compare and added t
249283
- `--conclude`
250284
- `--ignore-errors`
251285

252-
### `overlay new -r` can now reset overlays
286+
### `overlay new -r` can now reset overlays [[toc](#table-of-contents)]
253287

254288
[@WindSoilder](https://github.com/WindSoilder) added the option to reset new overlays via `overlay new -r` in [#15849](https://github.com/nushell/nushell/pull/15849).
255289

256-
### See env variables as externals would
290+
### See env variables as externals would [[toc](#table-of-contents)]
257291

258292
In [#15875](https://github.com/nushell/nushell/pull/15875) did [@cptpiepmatz](https://github.com/cptpiepmatz) add the command `debug env` to get a record of how an external would get the environment variables.
259293
This includes handling the `$env.PATH` and all env conversions.
260294

261-
### Use PowerShell scripts from the `$env.PATH`
295+
### Use PowerShell scripts from the `$env.PATH` [[toc](#table-of-contents)]
262296

263297
[@fdncred](https://github.com/fdncred) made it possible in [#15760](https://github.com/nushell/nushell/pull/15760) to execute powershell scripts from anywhere if they are in the `$env.PATH`.
264298

265-
### Make your table look like they are from neovim
299+
### Make your table look like they are from neovim [[toc](#table-of-contents)]
266300

267301
[@gmr458](https://github.com/gmr458) added the new table mode `"single"` to `$env.config.table.mode` in [#15672](https://github.com/nushell/nushell/pull/15672).
268302
It looks like the `"default"` with sharp corners or `"heavy"` with thinner lines:
@@ -278,7 +312,7 @@ scope commands | select name category | first 2
278312
# => └───┴───────┴──────────┘
279313
```
280314

281-
### Center columns via `to md --center`
315+
### Center columns via `to md --center` [[toc](#table-of-contents)]
282316

283317
[@lazenga](https://github.com/lazenga) added in [#15861](https://github.com/nushell/nushell/pull/15861) the flag `--center` to `to md`.
284318
With it you can pass a list of cell-paths to center in the markdown output.
@@ -291,38 +325,38 @@ version | select version build_time | transpose k v | to md --center [v] --prett
291325
# => | build_time | 2025-06-08 23:31:40 +02:00 |
292326
```
293327

294-
### Prefer OSC 9;9 on Windows over OSC 7
328+
### Prefer OSC 9;9 on Windows over OSC 7 [[toc](#table-of-contents)]
295329

296330
[@ofek](https://github.com/ofek) made `$env.config.shell_integration.osc7 = false` by default on Windows in favor of `$env.config.shell_integration.osc9_9 = true` in [#15914](https://github.com/nushell/nushell/pull/15914).
297331

298-
### Disable expensive calculations with `gstat --disable-tag`
332+
### Disable expensive calculations with `gstat --disable-tag` [[toc](#table-of-contents)]
299333

300334
In [#15893](https://github.com/nushell/nushell/pull/15893) did [@snickerdoodle2](https://github.com/snickerdoodle2) add the option `--disable-tag` to disable some of the heavy calculations of the `gstat` plugin.
301335

302-
### Know what `open` and `save` can do with `std/help`
336+
### Know what `open` and `save` can do with `std/help` [[toc](#table-of-contents)]
303337

304338
`open` and `save` can use `from` and `to` to convert data types.
305339
With the addition of [@weirdan](https://github.com/weirdan) in [#15651](https://github.com/nushell/nushell/pull/15651),
306340
the `std/help` command can now show these conversions.
307341

308-
### Content type of `view span`
342+
### Content type of `view span` [[toc](#table-of-contents)]
309343

310344
[@weirdan](https://github.com/weirdan) added in [#15842](https://github.com/nushell/nushell/pull/15842) a content type to `view span`.
311345
If your display hook highlights content types, will this be a nice addition.
312346

313-
## Breaking changes
347+
## Breaking changes [[toc](#table-of-contents)]
314348

315-
### Cell-paths with case-sensitivity and without`!`
349+
### Cell-paths with case-sensitivity and without`!` [[toc](#table-of-contents)]
316350

317351
The new cell-path syntax `!`, introduced by [@Bahex](https://github.com/Bahex) in [#15692](https://github.com/nushell/nushell/pull/15692), may break some commands.
318352
If your commands relied on case-insensitive paths, please check your code.
319353

320-
### Paths on lazy frames now produce expressions
354+
### Paths on lazy frames now produce expressions [[toc](#table-of-contents)]
321355

322356
Thanks to [@ayax79](https://github.com/ayax79) in [#15891](https://github.com/nushell/nushell/pull/15891), paths on lazy frames now generate expressions.
323357
You will need to use `polar collect` to evaluate them.
324358

325-
## Bug fixes and other changes
359+
## Bug fixes and other changes [[toc](#table-of-contents)]
326360

327361
<!-- TODO: remove these tables after proper text segments -->
328362
|author|title|link|
@@ -361,14 +395,14 @@ You will need to use `polar collect` to evaluate them.
361395
|[@zhiburt](https://github.com/zhiburt)|Fix #15653 regression with not counting padding properly|[#15704](https://github.com/nushell/nushell/pull/15704)|
362396
|[@zhiburt](https://github.com/zhiburt)|nu-table: (table --expand) Remove unnecessary use of truncate logic|[#15727](https://github.com/nushell/nushell/pull/15727)|
363397

364-
# Notes for plugin developers
398+
# Notes for plugin developers [[toc](#table-of-contents)]
365399

366-
## Construct `IoError` from `std::io::Error` instead of `std::io::ErrorKind`
400+
## Construct `IoError` from `std::io::Error` instead of `std::io::ErrorKind` [[toc](#table-of-contents)]
367401

368402
To give us better control over IO errors, [@cptpiepmatz](https://github.com/cptpiepmatz) changed in [#15777](https://github.com/nushell/nushell/pull/15777) how `IoError`s are created. Now they’re built directly from `std::io::Error` instead of just the `ErrorKind`.
369403
Just remove the calls to `.kind()` and you're good to go.
370404

371-
# Hall of fame
405+
# Hall of fame [[toc](#table-of-contents)]
372406

373407
Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! :pray:
374408

@@ -418,7 +452,7 @@ Thanks to all the contributors below for helping us solve issues, improve docume
418452
|[@ysthakur](https://github.com/ysthakur)|Bump to 0.104.1 dev version|[#15669](https://github.com/nushell/nushell/pull/15669)|
419453
|[@ysthakur](https://github.com/ysthakur)|Use Default for making Suggestions in attribute_completions|[#15764](https://github.com/nushell/nushell/pull/15764)|
420454

421-
# Full changelog
455+
# Full changelog [[toc](#table-of-contents)]
422456

423457
<!-- TODO:
424458
- `use nu_scripts/make_release/release-note/notes.nu *`

0 commit comments

Comments
 (0)