Skip to content

Commit ac1b242

Browse files
authored
Improve v0.114.0 release post text
Various improvements; fixed typos, grammar, code fencing, etc All small text adjustments that either do not change meaning or fix confusing wording.
1 parent 7094acd commit ac1b242

1 file changed

Lines changed: 36 additions & 36 deletions

File tree

blog/2026-07-04-nushell_v0_114_0.md

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ foo bar # valid
9191
foo sub baz # invalid, `sub` is not implicitly imported
9292
```
9393

94-
To have your modules keep the old behavior, you will need to export the modules contents explicitly:
94+
To have your modules keep the old behavior, you will need to export the module's contents explicitly:
9595

9696
```nushell
9797
export module foo {
@@ -118,7 +118,7 @@ Thus, explicit `use`s as recommended above will not run `export-env` blocks, whi
118118

119119
### Type System Improvements <JumpToc/> <PrBy :pr="18430" user="Bahex" />
120120

121-
This release comes with a handful of improvements to the type system, specifically the parse time type checking. But beware! Type annotations that previously seemed fine might raise errors, as they might have been passing only because typing information was insufficient to check it at parse time.
121+
This release comes with a handful of improvements to the type system, specifically the parse-time type checking. But beware! Type annotations that previously seemed fine might raise errors, as they might have been passing only because typing information was insufficient to check it at parse time.
122122

123123
#### Commands' output types are now inferred based on pipeline input type.
124124

@@ -197,24 +197,24 @@ let list = [["a" "b" "c"] [1 2 3]]
197197
let elem = $list.0
198198
```
199199

200-
Previously `$elem`'s type would be `list<oneof<int, string>>`, now `$elem`'s type is `oneof<list<int>, list<string>>`.
200+
Previously, `$elem`'s type would be `list<oneof<int, string>>`, now `$elem`'s type is `oneof<list<int>, list<string>>`.
201201

202-
#### Operator type checking now accounts of `oneof` types
202+
#### Operator type checking now accounts for `oneof` types
203203

204-
Nushell as language tries to strike a careful balance between correctness and convenience.
205-
One should be able to trust nu's type system will help them write correct and robust scripts, but nu shouldn't shouldn't get in the way of a nice REPL experience.
204+
Nushell as a language tries to strike a careful balance between correctness and convenience.
205+
One should be able to trust nu's type system will help them write correct and robust scripts, but nu shouldn't get in the way of a nice REPL experience.
206206

207207
Because of that, some operations that might be invalid but aren't definitely so do not raise parse errors and such checks are delegated to runtime.
208208

209-
For example `int`'s can only be added with `int`'s and `float`'s, yet the following code does not raise parse time error.
209+
For example, `int`'s can only be added with `int`'s and `float`'s, yet the following code does not raise a parse-time error.
210210

211211
```nushell
212212
def foo [anything: any] {
213213
10 + $anything
214214
}
215215
```
216216

217-
But previously, despite being `oneof<int, nothing>` being specific than `any`, would be rejected by the type checker for addition to `int`s.
217+
But previously, despite `oneof<int, nothing>` being more specific than `any`, it would be rejected by the type checker for addition to `int`s.
218218

219219
```nushell
220220
def foo [maybe_int: oneof<int, nothing>] {
@@ -236,13 +236,13 @@ Error: nu::parser::operator_unsupported_type
236236
╰────
237237
```
238238

239-
Now, as long as the two operands have a possibility of being valid for an operation the parse time type checker will accept the expression, leaving errors to runtime type checking.
239+
Now, as long as the two operands have a possibility of being valid for an operation the parse-time type checker will accept the expression, leaving errors to runtime type checking.
240240

241241
### Promoted `enforce-runtime-annotations` to opt-out <JumpToc/> <PrBy :pr="18359" user="Bahex" />
242242

243243
In Nushell 0.108.0, [`enforce-runtime-annotations`](https://www.nushell.sh/blog/2025-10-15-nushell_v0_108_0.html#enforce-assignment-type-annotations-at-runtime-16079-toc) experimental option was added. With this release `enforce-runtime-annotations` is promoted to being opt-out, meaning that by default this experimental option is enabled now.
244244

245-
This option enforces type checking of let assignments at runtime, catching type errors that might have been missed in parse time type checking due to insufficient type information.
245+
This option enforces type checking of let assignments at runtime, catching type errors that might have been missed in parse-time type checking due to insufficient type information.
246246

247247
If you experience any trouble with this, you can disable it via the command-line argument:
248248

@@ -274,11 +274,11 @@ This release comes with various improvements to `from xlsx` and `from ods` comma
274274
These commands' signatures previously incorrectly indicated that they return tables.
275275
They return _records_ that contain _tables_, with a table for each sheet in the file.
276276

277-
Also, signature of the `from ods` command previously had `string` as its input type rather than `binary`. This has been fixed.
277+
Also, the signature of the `from ods` command previously had `string` as its input type rather than `binary`. This has been fixed.
278278

279279
#### Support for more data types
280280

281-
Previously importing `datetime` values were supported only for `xlsx` files.
281+
Previously, importing `datetime` values were supported only for `xlsx` files.
282282

283283
This release not only adds that for `ods` files as well, but also broadens the `datetime` formats that can be imported.
284284

@@ -292,7 +292,7 @@ This release removes it.
292292

293293
Don't worry! Instead of the `--header-row` flag, `from xlsx` _and_ `from ods` get two new flags that will provide finer control over how spreadsheets are imported:
294294

295-
- `--noheaders`: What it says on the tin, identical to same flag on `from csv`, `from tsv` and `from ssv` commands.
295+
- `--noheaders`: What it says on the tin, identical to the same flag on `from csv`, `from tsv` and `from ssv` commands.
296296
- `--first-row`: This is where it gets a little interesting. `from xlsx` and `from ods` skip reading all leading empty rows. This is how it has worked for a long time.
297297
`--first-row=0` allows you to turn that off and keep those empty lines. It can also be used to start reading from an arbitrary row: `--first-row $n`
298298

@@ -389,7 +389,7 @@ Error: nu::parser::operator_incompatible_types
389389

390390
#### Better type inference of `let` bindings
391391

392-
`let` bindings in the middle of a pipeline, or at the end of it, are now properly typed based ont the pipeline input type.
392+
`let` bindings in the middle of a pipeline, or at the end of it, are now properly typed based on the pipeline input type.
393393

394394
You can observe this using `scope variables`:
395395

@@ -564,18 +564,18 @@ Error: nu::shell::error
564564
╰─────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────╯
565565
```
566566

567-
With these file relative spans, making external tools for reporting nushell errors should be much easier.
567+
With these file-relative spans, making external tools for reporting nushell errors should be much easier.
568568

569569
### Removed deprecated `grid` record input support <JumpToc/> <PrBy :pr="18276" user="Juhan280" />
570570

571-
In the last release, `grid` command was modified to accept a column name argument rather than implicitly displaying the `name` column. The implicit assumption of `name` was deprecated, along with accepting a single record rather than a table.
572-
These deprecated behaviors of `grid` command is removed with this release.
571+
In the last release, the `grid` command was modified to accept a column name argument rather than implicitly displaying the `name` column. The implicit assumption of `name` was deprecated, along with accepting a single record rather than a table.
572+
These deprecated behaviors of the `grid` command are removed with this release.
573573

574574
```nushell
575-
# This will no longer work.
575+
# This will no longer work
576576
{ name: test } | grid
577577
578-
# And should be updated to receive tables and include the column name as an argument.
578+
# …and should be updated to receive tables and include the column name as an argument
579579
[{ name: test }] | grid name
580580
```
581581

@@ -593,7 +593,7 @@ This is a breaking change.
593593

594594
Previously `iter scan` always needed an initial value to start off of (equivalent to `reduce`'s `--fold`), and to compensate for it a `--noinit` flag to remove that initial value from the output.
595595

596-
Now it's signature is identical to `reduce`:
596+
Now its signature is identical to `reduce`:
597597

598598
<div style="max-width: 100%; overflow: auto;">
599599
<div style="display: grid; grid-template-columns: auto 1fr 1fr; column-gap: 1rem; justify-items: stretch; align-items: center">
@@ -660,7 +660,7 @@ The following commands now stream:
660660
- `select column-slices`
661661
- `reject column-slices`
662662

663-
These commands don't really "stream", in that they don't return a stream. Instead they now avoid eagerly collecting input streams:
663+
These commands don't really "stream", in that they don't return a stream. Instead, they now avoid eagerly collecting input streams:
664664

665665
- `std-rfc/conversions`
666666
- `name-values`: strictly an internal change with possible performance benefits
@@ -945,9 +945,9 @@ Introducing polars bitwise commands:
945945
- `polars math bitwise-trailing-zeros` - Compute the number of trailing unset bits for each element in an integer column expression.
946946
- `polars math bitwise-xor` - Perform an aggregation of bitwise XORs over a column expression.
947947

948-
### Add non UTF-8 text support for `url encode`/`url decode` <JumpToc/> <PrBy :pr="18314" user="Bahex" />
948+
### Add non-UTF-8 text support for `url encode`/`url decode` <JumpToc/> <PrBy :pr="18314" user="Bahex" />
949949

950-
- `url encode` can now encode binary input too, adding support for encoding non UTF-8 texts
950+
- `url encode` can now encode binary input too, adding support for encoding non-UTF-8 texts
951951

952952
```ansi
953953
> '£ rates' | encode iso-8859-1 | url encode
@@ -1355,7 +1355,7 @@ This has no effect on non-whole floats.
13551355
- Added completions to `ansi gradient`'s `--fgnamed` and `--bgnamed` flags. ([#18342](https://github.com/nushell/nushell/pull/18342))
13561356
- `nu-highlight` now clears `content_type` metadata ([#18266](https://github.com/nushell/nushell/pull/18266))
13571357
- Keybinding `edit` events now support reedline's verb-based edit commands (`move`, `extend`, `cut`, `copy`, `change`, `erase`) combined with a `motion` and its parameters, enabling vi-style operator/motion keybindings to be expressed directly in config. The new commands and their fields are discoverable via `keybindings list`. ([#18396](https://github.com/nushell/nushell/pull/18396))
1358-
- The http commands now use the response body as error message when getting an error response. ([#18387](https://github.com/nushell/nushell/pull/18387))
1358+
- The `http` commands now use the response body as error message when getting an error response. ([#18387](https://github.com/nushell/nushell/pull/18387))
13591359
- If the `NU_EXPERIMENTAL_OPTIONS` environment variable is set, it will be used when running nushell with the `--login` or `--execute` flags since they also load config. ([#18392](https://github.com/nushell/nushell/pull/18392))
13601360
- Refactor commands that use sqlite pushdown so that it's easier to add other pushdown filters. ([#18398](https://github.com/nushell/nushell/pull/18398))
13611361
- Added common navigation shortcuts to `explore config` command: `hl` to collapse/expand, and `jk`/`ctrl+p/n` to go up and down. ([#18440](https://github.com/nushell/nushell/pull/18440))
@@ -1372,7 +1372,7 @@ Deprecated `str downcase`, using it shows a warning recommending `str lowercase`
13721372

13731373
### Other deprecations <JumpToc/>
13741374

1375-
- Removed the deprecated `use std/clip` `copy` and `paste` commands, they are now called `copy52` and `paste52` for the ones that use the terminal `OSC 52`, or you can use `clip copy` and `clip paste` from the experimental option `native-clip` that access the system clipboard directly. ([#18403](https://github.com/nushell/nushell/pull/18403))
1375+
- Removed the deprecated `use std/clip` `copy` and `paste` commands; they are now called `copy52` and `paste52` for the ones that use the terminal `OSC 52`, or you can use `clip copy` and `clip paste` from the experimental option `native-clip` that access the system clipboard directly. ([#18403](https://github.com/nushell/nushell/pull/18403))
13761376

13771377
## Other changes <JumpToc/>
13781378

@@ -1455,24 +1455,24 @@ Providing the metadata will cause the `table` command to render the output diffe
14551455

14561456
- `polar implode` now supports the flag `--maintain-order`
14571457
- `polars is-in` now supports the flag `--maintain-order`
1458-
- `polars pivot` not supports the flag `--always-combine-names`
1458+
- `polars pivot` now supports the flag `--always-combine-names`
14591459
- `polars replace` requires a `--default <value>` parameter when used with `--strict` and `--return-dtype` if the dtype has changed from the original dtype
14601460

14611461
### New experimental globbing engine <JumpToc/> <PrBy :pr="18109" user="fdncred" />
14621462

14631463
<ExperimentalOption option="dc-glob" />
14641464

14651465
This release introduces a new experimental feature named `dc-glob` (named for Devyn Cairn's glob).
1466-
Currently nushell has two separate globbing engines with varying features and platform support.
1466+
Currently, Nushell has two separate globbing engines with varying features and platform support.
14671467

1468-
This engine is intended to replace the existing globbing engines, and standardize on something that works well on all platforms.
1468+
This engine is intended to replace the existing globbing engines and standardize on something that works well on all platforms.
14691469
In addition, this globbing engine seems to perform faster than the existing engines.
14701470

14711471
### Additional changes <JumpToc/>
14721472

1473-
- "Command not found" error messages will now suggest full command from a category if you type just its ending, for example `sqrt` will suggest `math sqrt`. ([#18498](https://github.com/nushell/nushell/pull/18498))
1473+
- "Command not found" error messages will now suggest the full command from a category if you type just its ending; for example, `sqrt` will suggest `math sqrt`. ([#18498](https://github.com/nushell/nushell/pull/18498))
14741474
- Fixed `plugin list --help` to show the correct output type and example for the `commands` column, which contains each plugin command's name and description. ([#18357](https://github.com/nushell/nushell/pull/18357))
1475-
- Added some `@attr`s to the toolkit.nu commands so that they show up in category, search-terms, and examples. I also homogenized help casing and punctuation. ([#18350](https://github.com/nushell/nushell/pull/18350))
1475+
- Added some `@attr`s to the `toolkit.nu` commands so that they show up in category, search terms, and examples. I also homogenized help casing and punctuation. ([#18350](https://github.com/nushell/nushell/pull/18350))
14761476
- Added support for feature gating LSP functionality, specifically enable it via `--features lsp`. ([#18148](https://github.com/nushell/nushell/pull/18148))
14771477
- `http post`/`put`/`patch`/`delete` now respects `--content-type` for JSON-variant MIME types like `application/json-patch+json`. ([#18496](https://github.com/nushell/nushell/pull/18496))
14781478

@@ -1495,7 +1495,7 @@ Update the `idx` fff-search dependency and fix bugs.
14951495
- changed output to nushell values for commands that return tables
14961496
- updated some help strings to be more helpful
14971497

1498-
Files are ignored during indexing due to the use of the `ignore` crate. These are the rules for ignore https://docs.rs/ignore/latest/ignore/struct.WalkBuilder.html#ignore-rules. There's no way to override this in the current version.
1498+
Files are ignored during indexing due to the use of the `ignore` crate. These are the rules for ignore <https://docs.rs/ignore/latest/ignore/struct.WalkBuilder.html#ignore-rules>. There's no way to override this in the current version.
14991499

15001500
### Subcommand completions are now wrapped in quotes for `which` <JumpToc/> <PrBy :pr="18295" user="Mrfiregem" />
15011501

@@ -1535,7 +1535,7 @@ Tab completions for `which` and `attr complete`/`@complete` commands will now pr
15351535

15361536
### Fix nested update closure for table columns <JumpToc/> <PrBy :pr="18205" user="fdncred" />
15371537

1538-
This fixes a bug where update with a nested column path and closure (for example `rss_item.pubDate`) could evaluate the closure against a projected list and write the same result back to every row.
1538+
This fixes a bug where `update` with a nested column path and closure (for example `rss_item.pubDate`) could evaluate the closure against a projected list and write the same result back to every row.
15391539

15401540
<div style="max-width: 100%; overflow-x: auto;">
15411541
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
@@ -1729,7 +1729,7 @@ Now Nushell reports clear messages such as "negative index is not supported in c
17291729

17301730
#### `oneof<..., table>`
17311731

1732-
In some specific cases the parser could reject values provided to `oneof` typed parameters, such as rejecting table literal syntax for `oneof<.., table>`:
1732+
In some specific cases, the parser could reject values provided to `oneof` typed parameters, such as rejecting table literal syntax for `oneof<.., table>`:
17331733

17341734
```ansi :no-line-numbers
17351735
> def cmd [--flag: oneof<record, table>] {}
@@ -1749,7 +1749,7 @@ The parser no longer considers such code invalid.
17491749

17501750
#### `oneof<..., closure>`
17511751

1752-
Arguments of type `oneof<..., closure>`, could only be parsed as closures if they had a parameter list (`{|| }`).
1752+
Arguments of type `oneof<..., closure>` could only be parsed as closures if they had a parameter list (`{|| }`).
17531753

17541754
```ansi :no-line-numbers
17551755
> def cmd [--flag: oneof<list, closure>] {}
@@ -1848,7 +1848,7 @@ Float ranges without an explicit step now use more natural fractional steps, so
18481848

18491849
### Fixed stor open return type <JumpToc/> <PrBy :pr="18355" user="Bahex" />
18501850

1851-
`stor open` returns the custom value `SQLiteDatabase`, yet it's signature had `sqlite-in-memory` as the return type. This causes problems with the `enforce-runtime-annotations` experimental option:
1851+
`stor open` returns the custom value `SQLiteDatabase`, yet its signature had `sqlite-in-memory` as the return type. This causes problems with the `enforce-runtime-annotations` experimental option:
18521852

18531853
```ansi :no-line-numbers
18541854
> let db = stor open
@@ -1950,7 +1950,7 @@ Fixed a bug with how `--` was handled with `--wrapped` custom commands. Now you
19501950

19511951
### Improved Ctrl-C handling in `from json` <JumpToc/> <PrBy :pr="18414" user="fdncred" />
19521952

1953-
Ctrl+C is more responsive in `from json`, `from kdl`, and `from xml` now respond promptly to Ctrl+C when parsing large files. Pressing Ctrl+C during parsing will interrupt the command and return to the prompt. It will also produce better parse-error messages and should now show a focused snippet of the source around the error location instead of dumping the entire file content.
1953+
Ctrl+C is more responsive in `from json`, `from kdl`, and `from xml`. They now respond promptly to Ctrl+C when parsing large files. Pressing Ctrl+C during parsing will interrupt the command and return to the prompt. It will also produce better parse-error messages and should now show a focused snippet of the source around the error location instead of dumping the entire file content.
19541954

19551955
### Improved conflicting column names in `flatten` <JumpToc/> <PrBy :pr="18407" user="WindSoilder" />
19561956

0 commit comments

Comments
 (0)