Skip to content

Commit 8b424fc

Browse files
committed
Final with ToC
1 parent 010d226 commit 8b424fc

File tree

1 file changed

+86
-43
lines changed

1 file changed

+86
-43
lines changed

blog/2025-04-29-nushell_0_104_0.md

Lines changed: 86 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,56 @@ As part of this release, we also publish a set of optional [plugins](https://www
2020

2121
# Table of contents
2222

23+
- [_Highlights and themes of this release_](#highlights-and-themes-of-this-release-toc)
24+
- [_New Job-Control Features_](#new-job-control-features-toc)
25+
- [_Inter-Job Messaging (Experimental)_](#inter-job-messaging-experimental-toc)
26+
- [_Job tags_](#job-tags-toc)
27+
- [_New `datetime` and `duration` Features_](#new-datetime-and-duration-features-toc)
28+
- [_New `date from-human` command_](#new-date-from-human-command-toc)
29+
- [_`into datetime` now accepts a record_](#into-datetime-now-accepts-a-record-toc)
30+
- [_`into duration` now accepts a record_](#into-duration-now-accepts-a-record-toc)
31+
- [_`into datetime --format` can now parse dates and times separately_](#into-datetime-format-can-now-parse-dates-and-times-separately-toc)
32+
- [_`into duration` now accepts floats_](#into-duration-now-accepts-floats-toc)
33+
- [_New Polars commands_](#new-polars-commands-toc)
34+
- [_Changes_](#changes-toc)
35+
- [_Additions_](#additions-toc)
36+
- [_`kill` now accepts list spreading_](#kill-now-accepts-list-spreading-toc)
37+
- [_Custom indicator for missing table values_](#custom-indicator-for-missing-table-values-toc)
38+
- [_Some `math` commands now work with bounded ranges_](#some-math-commands-now-work-with-bounded-ranges-toc)
39+
- [_The executable directory is now added to `$NU_PLUGIN_DIRS` by default_](#the-executable-directory-is-now-added-to-nu-plugin-dirs-by-default-toc)
40+
- [_`env-conversions` helpers added to the standard library_](#env-conversions-helpers-added-to-the-standard-library-toc)
41+
- [_Proxy support for `http` commands_](#proxy-support-for-http-commands-toc)
42+
- [_Tab completion when importing the standard library and its exports_](#tab-completion-when-importing-the-standard-library-and-its-exports-toc)
43+
- [_New columns available from `ps -l` on macOS_](#new-columns-available-from-ps-l-on-macos-toc)
44+
- [_LSP: Snippet-style completions_](#lsp-snippet-style-completions-toc)
45+
- [_`debug --raw-value`_](#debug-raw-value-toc)
46+
- [_More info from `describe --detailed`_](#more-info-from-describe-detailed-toc)
47+
- [_Support `PATHEXT` for additional extensions on Windows_](#support-pathext-for-additional-extensions-on-windows-toc)
48+
- [_Execute Nushell scripts on the Path in Windows_](#execute-nushell-scripts-on-the-path-in-windows-toc)
49+
- [_New flag `glob --follow-symlinks`_](#new-flag-glob-follow-symlinks-toc)
50+
- [_Substring match algorithm_](#substring-match-algorithm-toc)
51+
- [_Breaking changes_](#breaking-changes-toc)
52+
- [_Parse human date time explicitly_](#parse-human-date-time-explicitly-toc)
53+
- [_`str join` formatting for `datetime` values has changed_](#str-join-formatting-for-datetime-values-has-changed-toc)
54+
- [_`history` with sqlite uses datetimes now_](#history-with-sqlite-uses-datetimes-now-toc)
55+
- [_`date` is now `datetime`_](#date-is-now-datetime-toc)
56+
- [_Deprecations_](#deprecations-toc)
57+
- [_`positional` completer option_](#positional-completer-option-toc)
58+
- [_Removals_](#removals-toc)
59+
- [_Removed `-s` and `-p` in `do`_](#removed-s-and-p-in-do-toc)
60+
- [_Bug fixes and other changes_](#bug-fixes-and-other-changes-toc)
61+
- [_Notes for plugin developers_](#notes-for-plugin-developers-toc)
62+
- [_Convert `IoError` into `LabeledError`_](#convert-ioerror-into-labelederror-toc)
63+
- [_New Repo for Plugin Examples_](#new-repo-for-plugin-examples-toc)
64+
- [_Hall of fame_](#hall-of-fame-toc)
65+
- [_Full changelog_](#full-changelog-toc)
2366
<!-- 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`. -->
2467

25-
# Highlights and themes of this release
68+
# Highlights and themes of this release [[toc](#table-of-contents)]
2669

27-
## New Job-Control Features
70+
## New Job-Control Features [[toc](#table-of-contents)]
2871

29-
### Inter-Job Messaging (Experimental)
72+
### Inter-Job Messaging (Experimental) [[toc](#table-of-contents)]
3073

3174
Jobs can now communicate with other jobs. The following commands were added in
3275
[#15253](https://github.com/nushell/nushell/pull/15253):
@@ -38,15 +81,15 @@ Jobs can now communicate with other jobs. The following commands were added in
3881

3982
See `help job <subcommand>` for details.
4083

41-
### Job tags
84+
### Job tags [[toc](#table-of-contents)]
4285

4386
Jobs can now be tagged using `job tag`, added in [#15555](https://github.com/nushell/nushell/pull/15555).
4487

45-
## New `datetime` and `duration` Features
88+
## New `datetime` and `duration` Features [[toc](#table-of-contents)]
4689

4790
Thanks to [@LoicRiegel](https://github.com/LoicRiegel) for a number of `datetime` and `duration` features in this release:
4891

49-
### New `date from-human` command
92+
### New `date from-human` command [[toc](#table-of-contents)]
5093

5194
The new `date from-human` command introduced in [#15495](https://github.com/nushell/nushell/pull/15495) is now used to parse human-language date forms like _"tomorrow"_ into `datetime` values.
5295

@@ -61,7 +104,7 @@ The equivalent functionality from `into datetime` has been removed from that com
61104
See a full overview of the [breaking changes](#breaking-changes)
62105
:::
63106

64-
### `into datetime` now accepts a record
107+
### `into datetime` now accepts a record [[toc](#table-of-contents)]
65108

66109
With [#15455](https://github.com/nushell/nushell/pull/15455), it is now possible to construct a datetime from a record input. If the timezone is not specified, the locale is used:
67110

@@ -70,7 +113,7 @@ With [#15455](https://github.com/nushell/nushell/pull/15455), it is now possible
70113
# => Sun, 30 Mar 2025 12:15:59 +0200 (2 weeks ago)
71114
```
72115

73-
### `into duration` now accepts a record
116+
### `into duration` now accepts a record [[toc](#table-of-contents)]
74117

75118
With [#15600](https://github.com/nushell/nushell/pull/15600), it is now possible to construct a datetime from a record input. If the timezone is not specified, the local is used:
76119

@@ -79,7 +122,7 @@ With [#15600](https://github.com/nushell/nushell/pull/15600), it is now possible
79122
# => -10wk 1day 2hr 3min 4sec 5ms 6µs 7ns
80123
```
81124

82-
### `into datetime --format` can now parse dates and times separately
125+
### `into datetime --format` can now parse dates and times separately [[toc](#table-of-contents)]
83126

84127
Previously, `into datetime --format` required both a date and a time. With [#15544](https://github.com/nushell/nushell/pull/15544),
85128
each can be created separately. The system's local timezone will be used
@@ -92,7 +135,7 @@ For example, to parse a `DD/MM/YYYY`:
92135
# => Mon, 25 Mar 2024 00:00:00 +0100 (a year ago)
93136
```
94137

95-
### `into duration` now accepts floats
138+
### `into duration` now accepts floats [[toc](#table-of-contents)]
96139

97140
With [#15297](https://github.com/nushell/nushell/pull/15297), `into duration` now accepts floats as a valid input type:
98141

@@ -101,7 +144,7 @@ With [#15297](https://github.com/nushell/nushell/pull/15297), `into duration` no
101144
# => 1day 12hr
102145
```
103146

104-
## New Polars commands
147+
## New Polars commands [[toc](#table-of-contents)]
105148

106149
The following `polars` commands have been added in this release:
107150

@@ -114,27 +157,27 @@ The following `polars` commands have been added in this release:
114157
- `polars over` ([#15551](https://github.com/nushell/nushell/pull/15551) by [@pyz4](https://github.com/pyz4))
115158
- `polars truncate` ([#15582](https://github.com/nushell/nushell/pull/15582) by [@pyz4](https://github.com/pyz4))
116159

117-
# Changes
160+
# Changes [[toc](#table-of-contents)]
118161

119-
## Additions
162+
## Additions [[toc](#table-of-contents)]
120163

121-
### `kill` now accepts list spreading
164+
### `kill` now accepts list spreading [[toc](#table-of-contents)]
122165

123166
In [#15558](https://github.com/nushell/nushell/pull/15558) from [@Mrfiregem](https://github.com/Mrfiregem), the signature of the `kill` command was changed so that it can accept multiple arguments via the list spreading operator. For example:
124167

125168
```nushell
126169
ps | where name == bash | kill ...$in.pid
127170
```
128171

129-
### Custom indicator for missing table values
172+
### Custom indicator for missing table values [[toc](#table-of-contents)]
130173

131174
Missing values (not `null`) are represented by ❎ in tables. [#15647](https://github.com/nushell/nushell/pull/15647) from [@Bahex](https://github.com/Bahex) makes this indicator configurable. For example:
132175

133176
```nushell
134177
$env.config.table.missing_symbol = " ∅ "
135178
```
136179

137-
### Some `math` commands now work with bounded ranges
180+
### Some `math` commands now work with bounded ranges [[toc](#table-of-contents)]
138181

139182
With [#15319](https://github.com/nushell/nushell/pull/15319) from [@LoicRiegel](https://github.com/LoicRiegel), the following commands have been updated to allow bounded ranges as input:
140183

@@ -159,102 +202,102 @@ Example:
159202
# => ╰───┴────╯
160203
```
161204

162-
### The executable directory is now added to `$NU_PLUGIN_DIRS` by default
205+
### The executable directory is now added to `$NU_PLUGIN_DIRS` by default [[toc](#table-of-contents)]
163206

164207
Many distributions (including our binary distributions) place plugins in the same directory as the Nushell executable. With [#15380](https://github.com/nushell/nushell/pull/15380) from [@NotTheDr01ds](https://github.com/NotTheDr01ds), plugins in this type of environment will now work out-of-the-box using `plugin register`.
165208

166-
### `env-conversions` helpers added to the standard library
209+
### `env-conversions` helpers added to the standard library [[toc](#table-of-contents)]
167210

168211
Previously, the default `$env.ENV_CONVERSION` for `PATH` could be "reused" in other path-related conversions. In a previous release, this conversion was removed and became Rust-based. [#15569](https://github.com/nushell/nushell/pull/15569) by [@NotTheDr01ds](https://github.com/NotTheDr01ds) adds the equivalent helper to the standard library so that it can be easily used.
169212

170-
### Proxy support for `http` commands
213+
### Proxy support for `http` commands [[toc](#table-of-contents)]
171214

172215
With [#15597](https://github.com/nushell/nushell/pull/15597) from [@scarlet-storm](https://github.com/scarlet-storm), commands like `http get` can now utilize a proxy using environment variables.
173216

174-
### Tab completion when importing the standard library and its exports
217+
### Tab completion when importing the standard library and its exports [[toc](#table-of-contents)]
175218

176219
With [#15270](https://github.com/nushell/nushell/pull/15270), [@blindFS](https://github.com/blindFS) enabled tab-completion for the standard library and its exports with the `use` (and related) commands.
177220

178-
### New columns available from `ps -l` on macOS
221+
### New columns available from `ps -l` on macOS [[toc](#table-of-contents)]
179222

180223
[#15341](https://github.com/nushell/nushell/pull/15341) from [@fdncred](https://github.com/fdncred) adds the following columns to `ps -l` on macOS:
181224

182225
- `user_id`
183226
- `priority`
184227
- `process_threads`
185228

186-
### LSP: Snippet-style completions
229+
### LSP: Snippet-style completions [[toc](#table-of-contents)]
187230

188231
In [#15494](https://github.com/nushell/nushell/pull/15494), [@blindFS](https://github.com/blindFS) added the ability for completions of built-in commands to insert a snippet with placeholders for its arguments.
189232

190233
In addition, you'll find numerous LSP fixes below from [@blindFS](https://github.com/blindFS).
191234

192-
### `debug --raw-value`
235+
### `debug --raw-value` [[toc](#table-of-contents)]
193236

194237
[@fdncred](https://github.com/fdncred) added a `--raw-value` option to the `debug` command in [15581](https://github.com/nushell/nushell/pull/15581) to allow retrieval of only the debug string part of the Nushell value.
195238

196-
### More info from `describe --detailed`
239+
### More info from `describe --detailed` [[toc](#table-of-contents)]
197240

198241
In [#15591](https://github.com/nushell/nushell/pull/15591), [@fdncred](https://github.com/fdncred) added more details to the `describe --detailed` output, including the Rust data type, the Nushell data type, and the value.
199242

200-
### Support `PATHEXT` for additional extensions on Windows
243+
### Support `PATHEXT` for additional extensions on Windows [[toc](#table-of-contents)]
201244

202245
With the changes in [#15611](https://github.com/nushell/nushell/pull/15611) by [@hfrentzel](https://github.com/hfrentzel), Nushell will now automatically attempt to execute scripts using any extension found in the `PATHEXT` environment variable on Windows.
203246

204-
### Execute Nushell scripts on the Path in Windows
247+
### Execute Nushell scripts on the Path in Windows [[toc](#table-of-contents)]
205248

206249
Also, with [#15486](https://github.com/nushell/nushell/pull/15486) from [@mztikk](https://github.com/mztikk), Nushell scripts can be more easily executed from any directory in the `Path`.
207250

208-
### New flag `glob --follow-symlinks`
251+
### New flag `glob --follow-symlinks` [[toc](#table-of-contents)]
209252

210253
[@sebasnallar](https://github.com/sebasnallar) added `--follow-symlinks` to ... folllow symlinks when globbing ([#15626](https://github.com/nushell/nushell/pull/15626))
211254

212-
### Substring match algorithm
255+
### Substring match algorithm [[toc](#table-of-contents)]
213256

214257
In [#15511](https://github.com/nushell/nushell/pull/15511), [@vansh284](https://github.com/vansh284) added the option to use substring matching for completions. Previously, only prefix and fuzzy matching were allowed. Users can now set `$env.config.completions.algorithm` to `"substring"` to enable this.
215258

216259
Custom completers already had the ability to use substring matching by setting `positional: false` in their [options](https://www.nushell.sh/book/custom_completions.html#options-for-custom-completions). However, `positional` has now been deprecated, and completers should set `completion_algorithm: "substring"` to maintain the same behavior.
217260

218-
## Breaking changes
261+
## Breaking changes [[toc](#table-of-contents)]
219262

220-
### Parse human date time explicitly
263+
### Parse human date time explicitly [[toc](#table-of-contents)]
221264

222265
`into datetime` used to parse not only strictly formatted date time strings, but also human readable ones. This created some situations where unexpected values might result from `into datetime`. This functionality has been removed.
223266

224267
Instead, users can now explicitly choose to opt-in to that functionality using the new `date from-human` command added in [#15495](https://github.com/nushell/nushell/pull/15495) by [@LoicRiegel](https://github.com/LoicRiegel).
225268

226-
### `str join` formatting for `datetime` values has changed
269+
### `str join` formatting for `datetime` values has changed [[toc](#table-of-contents)]
227270

228271
When a `datetime` is passed to `str join`, the resulting format of the string has changed. With [#15629](https://github.com/nushell/nushell/pull/15629) from [@LoicRiegel](https://github, it will now format positive dates using RFC2822 and negative dates using RFC3339.
229272

230273
This could be a breaking change if you depend on a particular format of the output of `str join`. Consider using `format date` before `str join`.
231274

232-
### `history` with sqlite uses datetimes now
275+
### `history` with sqlite uses datetimes now [[toc](#table-of-contents)]
233276

234277
Previously, the `history` command would return a `start_timestamp` with a `string` when using the SQLite backend. With
235278
[#15630](https://github.com/nushell/nushell/pull/15630), it now returns an actual Nushell `datetime`.
236279

237280
If you were previously relying on a `string` value from that column, you can easily convert it using `format date`.
238281

239-
### `date` is now `datetime`
282+
### `date` is now `datetime` [[toc](#table-of-contents)]
240283

241284
The `describe` command previously incorrectly reported `datetime` values as `date`. This has been fixed in [#15264](https://github.com/nushell/nushell/pull/15264).
242285

243286
If you were previously checking the type of a value using `describe`, you should change occurrences of `date` to `datetime`.
244287

245-
## Deprecations
288+
## Deprecations [[toc](#table-of-contents)]
246289

247-
### `positional` completer option
290+
### `positional` completer option [[toc](#table-of-contents)]
248291

249292
The `positional` [option](https://www.nushell.sh/book/custom_completions.html#options-for-custom-completions) available to custom completers has been deprecated. See the section about the [Substring match algorithm](#substring-match-algorithm-toc) above for details.
250293

251-
## Removals
294+
## Removals [[toc](#table-of-contents)]
252295

253-
### Removed `-s` and `-p` in `do`
296+
### Removed `-s` and `-p` in `do` [[toc](#table-of-contents)]
254297

255298
We deprecated the `-s` and `-p` flags and planned to remove them in version 0.102.0. We forgot about it for a couple of releases, but [#15456](https://github.com/nushell/nushell/pull/15456) by [WindSoilder](https://github.com/WindSoilder) finally completes this removal.
256299

257-
## Bug fixes and other changes
300+
## Bug fixes and other changes [[toc](#table-of-contents)]
258301

259302
| author | title | link |
260303
| ------------------------------------------------ | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
@@ -312,17 +355,17 @@ We deprecated the `-s` and `-p` flags and planned to remove them in version 0.10
312355
| [@zhiburt](https://github.com/zhiburt) | Fix #15394 for `table -e` wrapping issue | [#15407](https://github.com/nushell/nushell/pull/15407) |
313356
| [@zhiburt](https://github.com/zhiburt) | fix f25525b | [#15500](https://github.com/nushell/nushell/pull/15500) |
314357

315-
# Notes for plugin developers
358+
# Notes for plugin developers [[toc](#table-of-contents)]
316359

317-
## Convert `IoError` into `LabeledError`
360+
## Convert `IoError` into `LabeledError` [[toc](#table-of-contents)]
318361

319362
In version 0.102.0 `IoError`s were added on top of `std::io::Error`s. [@132ikl](https://github.com/132ikl) made it easier in [#15327](https://github.com/nushell/nushell/pull/15327) to return these in `SimplePluginCommand`s.
320363

321-
## New Repo for Plugin Examples
364+
## New Repo for Plugin Examples [[toc](#table-of-contents)]
322365

323366
[@cptpiepmatz](https://github.com/cptpiepmatz) has created a [new repository](https://github.com/nushell/plugin-examples) for plugin examples. It includes various examples demonstrating how to write plugins with different features and in multiple languages, including Nu. The existing plugin examples in the main repository will be moved there soon.
324367

325-
# Hall of fame
368+
# Hall of fame [[toc](#table-of-contents)]
326369

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

@@ -377,7 +420,7 @@ Thanks to all the contributors below for helping us solve issues, improve docume
377420
| [@pyz4](https://github.com/pyz4) | feat(polars): enable parsing decimals in polars schemas | [#15632](https://github.com/nushell/nushell/pull/15632) |
378421
| [@pyz4](https://github.com/pyz4) | feat(polars): enable parsing strings as dates and datetime in polars schema | [#15645](https://github.com/nushell/nushell/pull/15645) |
379422

380-
# Full changelog
423+
# Full changelog [[toc](#table-of-contents)]
381424

382425
| author | title | link |
383426
| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |

0 commit comments

Comments
 (0)