From a09891952efd45a3b69cd5386d94ea5d498beac6 Mon Sep 17 00:00:00 2001 From: hustcer Date: Sun, 12 Oct 2025 10:56:39 +0800 Subject: [PATCH 1/2] Fix typos --- blog/2024-04-02-nushell_0_92_0.md | 428 +++++++++++++++-------------- blog/2025-04-29-nushell_0_104_0.md | 93 ++++--- typos.toml | 5 +- 3 files changed, 274 insertions(+), 252 deletions(-) diff --git a/blog/2024-04-02-nushell_0_92_0.md b/blog/2024-04-02-nushell_0_92_0.md index bb3d98a135f..3d5504f3917 100644 --- a/blog/2024-04-02-nushell_0_92_0.md +++ b/blog/2024-04-02-nushell_0_92_0.md @@ -23,58 +23,59 @@ The optional dataframe functionality is available by `cargo install nu --feature 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_`. # Table of content -- [*Themes of this release / New features*](#themes-of-this-release-new-features-toc) - - [*External command output changes*](#external-command-output-changes-toc) - - [*Scoped file redirections*](#scoped-file-redirections-toc) - - [*Tilde expansion*](#tilde-expansion-toc) - - [*Support for `XDG_CONFIG_HOME`*](#support-for-xdg-config-home-toc) - - [*Incorporating the `extra` feature by default*](#incorporating-the-extra-feature-by-default-toc) - - [*Persistent plugins*](#persistent-plugins-toc) - - [*Plugin API overhaul*](#plugin-api-overhaul-toc) - - [*Plugin engine calls*](#plugin-engine-calls-toc) - - [*Improved plugin custom values*](#improved-plugin-custom-values-toc) - - [*Plugin test support crate*](#plugin-test-support-crate-toc) - - [*Official plugin template*](#official-plugin-template-toc) - - [*Debugging support and proof-of-concept profiler*](#debugging-support-and-proof-of-concept-profiler-toc) - - [*Support for binary data in `explore`*](#support-for-binary-data-in-explore-toc) - - [*Performance improvements*](#performance-improvements-toc) - - [*Hall of fame*](#hall-of-fame-toc) - - [*Bug fixes*](#bug-fixes-toc) - - [*Enhancing the documentation*](#enhancing-the-documentation-toc) - - [*Our set of commands is evolving*](#our-set-of-commands-is-evolving-toc) - - [*New commands*](#new-commands-toc) - - [*`plugin list`*](#plugin-list-toc) - - [*`plugin stop`*](#plugin-stop-toc) - - [*`debug profile`*](#debug-profile-toc) - - [*`uname`*](#uname-toc) - - [*`query db --params`*](#query-db-params-toc) - - [*`detect columns --guess`*](#detect-columns-guess-toc) - - [*Changes to existing commands*](#changes-to-existing-commands-toc) - - [*`echo`*](#echo-toc) - - [*`table`*](#table-toc) - - [*`into bits`*](#into-bits-toc) - - [*`nu-check`*](#nu-check-toc) - - [*`mkdir`*](#mkdir-toc) - - [*`ls`*](#ls-toc) - - [*`version`*](#version-toc) - - [*`filter`*](#filter-toc) - - [*`insert`*](#insert-toc) - - [*`do`*](#do-toc) - - [*`complete`*](#complete-toc) - - [*`ignore`*](#ignore-toc) - - [*`export use`*](#export-use-toc) - - [*`sleep`*](#sleep-toc) - - [*`into sqlite`*](#into-sqlite-toc) - - [*`to json`*](#to-json-toc) - - [*`du`*](#du-toc) - - [*`histogram`*](#histogram-toc) - - [*`into string`*](#into-string-toc) - - [*Deprecated commands*](#deprecated-commands-toc) - - [*`run-external` flags*](#run-external-flags-toc) - - [*Removed commands*](#removed-commands-toc) - - [*`str escape-glob`*](#str-escape-glob-toc) -- [*Breaking changes*](#breaking-changes-toc) -- [*Full changelog*](#full-changelog-toc) + +- [_Themes of this release / New features_](#themes-of-this-release-new-features-toc) + - [_External command output changes_](#external-command-output-changes-toc) + - [_Scoped file redirections_](#scoped-file-redirections-toc) + - [_Tilde expansion_](#tilde-expansion-toc) + - [_Support for `XDG_CONFIG_HOME`_](#support-for-xdg-config-home-toc) + - [_Incorporating the `extra` feature by default_](#incorporating-the-extra-feature-by-default-toc) + - [_Persistent plugins_](#persistent-plugins-toc) + - [_Plugin API overhaul_](#plugin-api-overhaul-toc) + - [_Plugin engine calls_](#plugin-engine-calls-toc) + - [_Improved plugin custom values_](#improved-plugin-custom-values-toc) + - [_Plugin test support crate_](#plugin-test-support-crate-toc) + - [_Official plugin template_](#official-plugin-template-toc) + - [_Debugging support and proof-of-concept profiler_](#debugging-support-and-proof-of-concept-profiler-toc) + - [_Support for binary data in `explore`_](#support-for-binary-data-in-explore-toc) + - [_Performance improvements_](#performance-improvements-toc) + - [_Hall of fame_](#hall-of-fame-toc) + - [_Bug fixes_](#bug-fixes-toc) + - [_Enhancing the documentation_](#enhancing-the-documentation-toc) + - [_Our set of commands is evolving_](#our-set-of-commands-is-evolving-toc) + - [_New commands_](#new-commands-toc) + - [_`plugin list`_](#plugin-list-toc) + - [_`plugin stop`_](#plugin-stop-toc) + - [_`debug profile`_](#debug-profile-toc) + - [_`uname`_](#uname-toc) + - [_`query db --params`_](#query-db-params-toc) + - [_`detect columns --guess`_](#detect-columns-guess-toc) + - [_Changes to existing commands_](#changes-to-existing-commands-toc) + - [_`echo`_](#echo-toc) + - [_`table`_](#table-toc) + - [_`into bits`_](#into-bits-toc) + - [_`nu-check`_](#nu-check-toc) + - [_`mkdir`_](#mkdir-toc) + - [_`ls`_](#ls-toc) + - [_`version`_](#version-toc) + - [_`filter`_](#filter-toc) + - [_`insert`_](#insert-toc) + - [_`do`_](#do-toc) + - [_`complete`_](#complete-toc) + - [_`ignore`_](#ignore-toc) + - [_`export use`_](#export-use-toc) + - [_`sleep`_](#sleep-toc) + - [_`into sqlite`_](#into-sqlite-toc) + - [_`to json`_](#to-json-toc) + - [_`du`_](#du-toc) + - [_`histogram`_](#histogram-toc) + - [_`into string`_](#into-string-toc) + - [_Deprecated commands_](#deprecated-commands-toc) + - [_`run-external` flags_](#run-external-flags-toc) + - [_Removed commands_](#removed-commands-toc) + - [_`str escape-glob`_](#str-escape-glob-toc) +- [_Breaking changes_](#breaking-changes-toc) +- [_Full changelog_](#full-changelog-toc) # Themes of this release / New features [[toc](#table-of-content)] @@ -88,21 +89,26 @@ With [#11934](https://github.com/nushell/nushell/pull/11934), we improved the pe As part of this effort, Nushell now streams external command output in more places where it is possible. Namely, parentheses no longer collect external command output and are now solely for grouping and precedence. For example, take this pipeline: + ```nushell (nu -c "for x in 1.. { try { print $x } catch { break } }") | lines | first ``` + In previous versions, this would collect the output of `nu` and would not print anything until `ctrl+c` was pressed. Now, this will immediately print the first line and then immediately finish the pipeline. So now, external command output will only be collected if it's being turned into a value (or if it's passed to an internal command that collects its input). For example, external commands will be collected if it's a command argument: + ```nushell print (^external) ``` + Or, if it's being stored in record, list, table, or variable: + ```nushell { result: (^external) @@ -118,17 +124,21 @@ let result = ^external In these cases, if an external command is in "return position" (it's the last command), then its output will be collected into a value instead of writing to the terminal/stdio. For example, the code below used to print `"text"` twice and then return an empty list: + ```nushell 1..2 | each { nu -c 'print text' } ``` + But now, this will collect the output of `nu`, giving the list `['text', 'text']`. To achieve the old behavior, you can return `null` instead: + ```nushell 1..2 | each { nu -c "print text"; null } # or, you could use a `for` loop ``` Only a few commands take a closure but do not use it to compute a value: + - `do` - `with-env` - `collect` @@ -139,9 +149,11 @@ These commands will not collect external command output from the closure and wil Another notable change is that external command output will no longer be implicitly ignored. For example, external commands in subexpressions that were not the last command used to have their output discarded: + ```nushell (^echo first; ^echo last) ``` + Before, this would only print `last`, but now this prints both `first` and `last`. One final change to note is that external command output now has trailing new lines removed by default. @@ -153,7 +165,7 @@ The exceptions are if the external command is being redirected to a file, anothe See a full overview of the [breaking changes](#breaking-changes-toc) ::: -File redirections (`o>`, `e>`, `o+e>`, etc.) now apply to all ***external*** commands inside an expression. +File redirections (`o>`, `e>`, `o+e>`, etc.) now apply to all **_external_** commands inside an expression. For example, the snippet below will redirect stderr from both commands into `err.log`. ```nushell @@ -182,6 +194,7 @@ See a full overview of the [breaking changes](#breaking-changes-toc) ::: Building off of last release's [work with globs](/blog/2024-03-05-nushell_0_91_0.html#handling-globs-for-variables-toc), this version makes similar changes to tilde expansion in [#12232](https://github.com/nushell/nushell/pull/12232). Now, tildes will be expanded to the home directory only if it's part of a glob. + ```nushell ls ~/dir # expands tilde ls "~/dir" # does not expand tilde @@ -217,6 +230,7 @@ This was done to simplify the distribution of Nushell to have a canonical set of (Now only the `dataframe` feature remains to add a major set of commands, but work is underway to allow you to add this simply as a plugin) If your current build of nushell does not have the `extra` feature enabled, then you should have access to more commands in this new release: + - `update cells` provides an easy way to update all cells of a table using a closure. - `each while` is like the `each` command, except it stops once a null value is returned by the closure. - `into bits` returns the stringified binary representation of a value. @@ -700,6 +714,7 @@ Fixed an issue with `sleep` in [#12235](https://github.com/nushell/nushell/pull/ #### `into sqlite` [[toc](#table-of-content)] `into sqlite` has had a few bug fixes: + - Ctrl+c handling in `into sqlite` was fixed with [#12130](https://github.com/nushell/nushell/pull/12130). - Insertion of null values was fixed with [#12328](https://github.com/nushell/nushell/pull/12328). - Column ordering for INSERT was fixed in [#11429](https://github.com/nushell/nushell/issues/11429). @@ -734,6 +749,7 @@ All preexisting flags for `run-external` are now deprecated. This is because `run-external` now interacts with pipe and file redirections just like if an external command had been run directly. I.e., `run-external cmd` should be the same as just `^cmd`. The only difference is that `run-external` may have additional flags added in the future for other functionality. + - To achieve the old `--redirect-stdout` behavior, simply use a pipe `|`. - Instead of `--redirect-stderr`, use the stderr pipe `e>|`, or use a regular pipe `|` for internal commands that use stderr directly (i.e., `save --stderr` and `tee --stderr`). - Instead of `--redirect-combine`, use the stdout and stderr pipe `o+e>|`. @@ -768,189 +784,189 @@ external command output now has trailing new lines trimmed by default, so the `- # Full changelog [[toc](#table-of-content)] - [IanManske](https://github.com/IanManske) created - - [`mkdir` umask fix](https://github.com/nushell/nushell/pull/12354) - - [Use safe `nix` API instead of `libc`](https://github.com/nushell/nushell/pull/12315) - - [Fix file redirection for externals streams](https://github.com/nushell/nushell/pull/12321) - - [Make `Record.cols` private](https://github.com/nushell/nushell/pull/12317) - - [Add `command_prelude` module](https://github.com/nushell/nushell/pull/12291) - - [Cancel old CI runs on commit](https://github.com/nushell/nushell/pull/12298) - - [Always pretty print binary values in `table`](https://github.com/nushell/nushell/pull/12294) - - [Use rest argument in `export use` to match `use`](https://github.com/nushell/nushell/pull/12228) - - [Fix wrong stdout with `e>|`](https://github.com/nushell/nushell/pull/12227) - - [Fix `$in` value for `insert` closure](https://github.com/nushell/nushell/pull/12209) - - [IO and redirection overhaul](https://github.com/nushell/nushell/pull/11934) - - [Fix ignored clippy lints](https://github.com/nushell/nushell/pull/12160) - - [Fix clippy lints](https://github.com/nushell/nushell/pull/12139) - - [Fix `chrono` deprecation warnings](https://github.com/nushell/nushell/pull/12091) - - [Fix clippy lints](https://github.com/nushell/nushell/pull/12094) - - [Fix broken doc link](https://github.com/nushell/nushell/pull/12092) + - [`mkdir` umask fix](https://github.com/nushell/nushell/pull/12354) + - [Use safe `nix` API instead of `libc`](https://github.com/nushell/nushell/pull/12315) + - [Fix file redirection for externals streams](https://github.com/nushell/nushell/pull/12321) + - [Make `Record.cols` private](https://github.com/nushell/nushell/pull/12317) + - [Add `command_prelude` module](https://github.com/nushell/nushell/pull/12291) + - [Cancel old CI runs on commit](https://github.com/nushell/nushell/pull/12298) + - [Always pretty print binary values in `table`](https://github.com/nushell/nushell/pull/12294) + - [Use rest argument in `export use` to match `use`](https://github.com/nushell/nushell/pull/12228) + - [Fix wrong stdout with `e>|`](https://github.com/nushell/nushell/pull/12227) + - [Fix `$in` value for `insert` closure](https://github.com/nushell/nushell/pull/12209) + - [IO and redirection overhaul](https://github.com/nushell/nushell/pull/11934) + - [Fix ignored clippy lints](https://github.com/nushell/nushell/pull/12160) + - [Fix clippy lints](https://github.com/nushell/nushell/pull/12139) + - [Fix `chrono` deprecation warnings](https://github.com/nushell/nushell/pull/12091) + - [Fix clippy lints](https://github.com/nushell/nushell/pull/12094) + - [Fix broken doc link](https://github.com/nushell/nushell/pull/12092) - [Jasha10](https://github.com/Jasha10) created - - [Fix dead links in CONTRIBUTING.md](https://github.com/nushell/nushell/pull/12353) + - [Fix dead links in CONTRIBUTING.md](https://github.com/nushell/nushell/pull/12353) - [sholderbach](https://github.com/sholderbach) created - - [Refactor `Record` to use a single backing `Vec`](https://github.com/nushell/nushell/pull/12326) - - [Remove ambiguous `into bits` impl for `date`](https://github.com/nushell/nushell/pull/12313) - - [Reuse existing small allocations if possible](https://github.com/nushell/nushell/pull/12335) - - [Elide clone in `V::follow_cell_path` for record](https://github.com/nushell/nushell/pull/12325) - - [Use nightly clippy to kill dead code/fix style](https://github.com/nushell/nushell/pull/12334) - - [Avoid uses of `Record` internals again](https://github.com/nushell/nushell/pull/12312) - - [Fix #10131](https://github.com/nushell/nushell/pull/12310) - - [Rename `Value::CustomValue` to `Value::Custom`](https://github.com/nushell/nushell/pull/12309) - - [Deduplicate `nix` dependency versions](https://github.com/nushell/nushell/pull/12307) - - [Benchmark table creation and access](https://github.com/nushell/nushell/pull/12293) - - [Fix `return` in `filter` closure eval](https://github.com/nushell/nushell/pull/12292) - - [Follow API guidelines for public types](https://github.com/nushell/nushell/pull/12283) - - [Remove dead `impl PluginEncoder for EncodingType`](https://github.com/nushell/nushell/pull/12284) - - [Style: move some `Option` if/else to method chains](https://github.com/nushell/nushell/pull/12285) - - [Refactor source cache into `CachedFile` struct](https://github.com/nushell/nushell/pull/12240) - - [Respond to nightly clippy](https://github.com/nushell/nushell/pull/12174) - - [Update contributor image generation with new upper bound](https://github.com/nushell/nushell/pull/12198) - - [Disable `fmt` feature of `polars(-core)`](https://github.com/nushell/nushell/pull/12151) - - [Minor refactor in `to html`](https://github.com/nushell/nushell/pull/12172) - - [Remove the rarely used std-lib issue template](https://github.com/nushell/nushell/pull/12173) - - [Bump `arboard` from `3.3.0` to `3.3.2`](https://github.com/nushell/nushell/pull/12178) - - [Refactor benches for more command benchmarks](https://github.com/nushell/nushell/pull/12171) - - [Include benchmarks in the CI clippy run](https://github.com/nushell/nushell/pull/12165) - - [Bump `iana-time-zone` due to yanked locked version](https://github.com/nushell/nushell/pull/12162) - - [Remove outdated doccomment on `EngineState`](https://github.com/nushell/nushell/pull/12158) - - [Bump `reedline` to dev (and `strum`)](https://github.com/nushell/nushell/pull/12150) - - [Restructure `nu-protocol` in more meaningful units](https://github.com/nushell/nushell/pull/11917) - - [Remove feat `extra` and include in default](https://github.com/nushell/nushell/pull/12140) - - [Reschedule dependabot PR opening to Wednesday](https://github.com/nushell/nushell/pull/12082) - - [Bump version to `0.91.1`](https://github.com/nushell/nushell/pull/12085) + - [Refactor `Record` to use a single backing `Vec`](https://github.com/nushell/nushell/pull/12326) + - [Remove ambiguous `into bits` impl for `date`](https://github.com/nushell/nushell/pull/12313) + - [Reuse existing small allocations if possible](https://github.com/nushell/nushell/pull/12335) + - [Elide clone in `V::follow_cell_path` for record](https://github.com/nushell/nushell/pull/12325) + - [Use nightly clippy to kill dead code/fix style](https://github.com/nushell/nushell/pull/12334) + - [Avoid uses of `Record` internals again](https://github.com/nushell/nushell/pull/12312) + - [Fix #10131](https://github.com/nushell/nushell/pull/12310) + - [Rename `Value::CustomValue` to `Value::Custom`](https://github.com/nushell/nushell/pull/12309) + - [Deduplicate `nix` dependency versions](https://github.com/nushell/nushell/pull/12307) + - [Benchmark table creation and access](https://github.com/nushell/nushell/pull/12293) + - [Fix `return` in `filter` closure eval](https://github.com/nushell/nushell/pull/12292) + - [Follow API guidelines for public types](https://github.com/nushell/nushell/pull/12283) + - [Remove dead `impl PluginEncoder for EncodingType`](https://github.com/nushell/nushell/pull/12284) + - [Style: move some `Option` if/else to method chains](https://github.com/nushell/nushell/pull/12285) + - [Refactor source cache into `CachedFile` struct](https://github.com/nushell/nushell/pull/12240) + - [Respond to nightly clippy](https://github.com/nushell/nushell/pull/12174) + - [Update contributor image generation with new upper bound](https://github.com/nushell/nushell/pull/12198) + - [Disable `fmt` feature of `polars(-core)`](https://github.com/nushell/nushell/pull/12151) + - [Minor refactor in `to html`](https://github.com/nushell/nushell/pull/12172) + - [Remove the rarely used std-lib issue template](https://github.com/nushell/nushell/pull/12173) + - [Bump `arboard` from `3.3.0` to `3.3.2`](https://github.com/nushell/nushell/pull/12178) + - [Refactor benches for more command benchmarks](https://github.com/nushell/nushell/pull/12171) + - [Include benchmarks in the CI clippy run](https://github.com/nushell/nushell/pull/12165) + - [Bump `iana-time-zone` due to yanked locked version](https://github.com/nushell/nushell/pull/12162) + - [Remove outdated doccomment on `EngineState`](https://github.com/nushell/nushell/pull/12158) + - [Bump `reedline` to dev (and `strum`)](https://github.com/nushell/nushell/pull/12150) + - [Restructure `nu-protocol` in more meaningful units](https://github.com/nushell/nushell/pull/11917) + - [Remove feat `extra` and include in default](https://github.com/nushell/nushell/pull/12140) + - [Reschedule dependabot PR opening to Wednesday](https://github.com/nushell/nushell/pull/12082) + - [Bump version to `0.91.1`](https://github.com/nushell/nushell/pull/12085) - [merelymyself](https://github.com/merelymyself) created - - [Make autocd return exit code 0](https://github.com/nushell/nushell/pull/12337) - - [Exposed the recursion limit value as a config option](https://github.com/nushell/nushell/pull/12308) + - [Make autocd return exit code 0](https://github.com/nushell/nushell/pull/12337) + - [Exposed the recursion limit value as a config option](https://github.com/nushell/nushell/pull/12308) - [devyn](https://github.com/devyn) created - - [Remove serde derive for `ShellError`, replace via `LabeledError`](https://github.com/nushell/nushell/pull/12319) - - [Fix build of nu-protocol without plugin feature enabled](https://github.com/nushell/nushell/pull/12323) - - [Change PluginCommand API to be more like Command](https://github.com/nushell/nushell/pull/12279) - - [Add example tests (nu-plugin-test-support) for plugins in repo](https://github.com/nushell/nushell/pull/12281) - - [Fix #12280: replace `difference` crate with `similar`](https://github.com/nushell/nushell/pull/12282) - - [Make some of the stream tests more robust against bad timeouts](https://github.com/nushell/nushell/pull/12271) - - [Support for getting help text from a plugin command](https://github.com/nushell/nushell/pull/12243) - - [Add test support crate for plugin developers](https://github.com/nushell/nushell/pull/12259) - - [Misc doc fixes](https://github.com/nushell/nushell/pull/12266) - - [Better generic errors for plugins (and perhaps scripts)](https://github.com/nushell/nushell/pull/12236) - - [Address feedback from PR #12229](https://github.com/nushell/nushell/pull/12242) - - [Refactor `PluginCustomValue::render_to_base_value_in`](https://github.com/nushell/nushell/pull/12244) - - [Refactor PipelineDataHeader ⇄ PipelineData mapping](https://github.com/nushell/nushell/pull/12248) - - [Make EngineState clone cheaper with Arc on all of the heavy objects](https://github.com/nushell/nushell/pull/12229) - - [Merge stream_example into example plugin and clean up names](https://github.com/nushell/nushell/pull/12234) - - [Fix broken build: replace value_string() straggler](https://github.com/nushell/nushell/pull/12237) - - [Make custom value type handling more consistent](https://github.com/nushell/nushell/pull/12230) - - [Support `into string` for custom values](https://github.com/nushell/nushell/pull/12231) - - [Support for custom values in plugin examples](https://github.com/nushell/nushell/pull/12213) - - [Fix zip signature to mention closure input type](https://github.com/nushell/nushell/pull/12216) - - [Add `Value::recurse_mut()` to save duplicated code in `PluginCustomValue`](https://github.com/nushell/nushell/pull/12218) - - [Allow plugins to set environment variables in their caller's scope](https://github.com/nushell/nushell/pull/12204) - - [Reorganize plugin API around commands](https://github.com/nushell/nushell/pull/12170) - - [MsgPack deserializer: improve handling of EOF](https://github.com/nushell/nushell/pull/12183) - - [More robustness improvements to plugin persistence tests](https://github.com/nushell/nushell/pull/12185) - - [Fix locking soundness in PersistentPlugin](https://github.com/nushell/nushell/pull/12182) - - [Disable plugin GC tests on macOS](https://github.com/nushell/nushell/pull/12177) - - [Add environment engine calls for plugins](https://github.com/nushell/nushell/pull/12166) - - [Sync with the plugin garbage collector when setting config](https://github.com/nushell/nushell/pull/12152) - - [Support for all custom value operations on plugin custom values](https://github.com/nushell/nushell/pull/12088) - - [Make the plugin persistence GC delay test more reliable](https://github.com/nushell/nushell/pull/12153) - - [Fix unused IntoSpanned warning in nu_parser::parse_keywords when 'plugin' feature not enabled](https://github.com/nushell/nushell/pull/12144) - - [Keep plugins persistently running in the background](https://github.com/nushell/nushell/pull/12064) - - [Add support for engine calls from plugins](https://github.com/nushell/nushell/pull/12029) - - [Improve the error message for a plugin version mismatch](https://github.com/nushell/nushell/pull/12122) - - [Change the ignore command to use drain() instead of collecting a value](https://github.com/nushell/nushell/pull/12120) + - [Remove serde derive for `ShellError`, replace via `LabeledError`](https://github.com/nushell/nushell/pull/12319) + - [Fix build of nu-protocol without plugin feature enabled](https://github.com/nushell/nushell/pull/12323) + - [Change PluginCommand API to be more like Command](https://github.com/nushell/nushell/pull/12279) + - [Add example tests (nu-plugin-test-support) for plugins in repo](https://github.com/nushell/nushell/pull/12281) + - [Fix #12280: replace `difference` crate with `similar`](https://github.com/nushell/nushell/pull/12282) + - [Make some of the stream tests more robust against bad timeouts](https://github.com/nushell/nushell/pull/12271) + - [Support for getting help text from a plugin command](https://github.com/nushell/nushell/pull/12243) + - [Add test support crate for plugin developers](https://github.com/nushell/nushell/pull/12259) + - [Misc doc fixes](https://github.com/nushell/nushell/pull/12266) + - [Better generic errors for plugins (and perhaps scripts)](https://github.com/nushell/nushell/pull/12236) + - [Address feedback from PR #12229](https://github.com/nushell/nushell/pull/12242) + - [Refactor `PluginCustomValue::render_to_base_value_in`](https://github.com/nushell/nushell/pull/12244) + - [Refactor PipelineDataHeader ⇄ PipelineData mapping](https://github.com/nushell/nushell/pull/12248) + - [Make EngineState clone cheaper with Arc on all of the heavy objects](https://github.com/nushell/nushell/pull/12229) + - [Merge stream_example into example plugin and clean up names](https://github.com/nushell/nushell/pull/12234) + - [Fix broken build: replace value_string() straggler](https://github.com/nushell/nushell/pull/12237) + - [Make custom value type handling more consistent](https://github.com/nushell/nushell/pull/12230) + - [Support `into string` for custom values](https://github.com/nushell/nushell/pull/12231) + - [Support for custom values in plugin examples](https://github.com/nushell/nushell/pull/12213) + - [Fix zip signature to mention closure input type](https://github.com/nushell/nushell/pull/12216) + - [Add `Value::recurse_mut()` to save duplicated code in `PluginCustomValue`](https://github.com/nushell/nushell/pull/12218) + - [Allow plugins to set environment variables in their caller's scope](https://github.com/nushell/nushell/pull/12204) + - [Reorganize plugin API around commands](https://github.com/nushell/nushell/pull/12170) + - [MsgPack deserializer: improve handling of EOF](https://github.com/nushell/nushell/pull/12183) + - [More robustness improvements to plugin persistence tests](https://github.com/nushell/nushell/pull/12185) + - [Fix locking soundness in PersistentPlugin](https://github.com/nushell/nushell/pull/12182) + - [Disable plugin GC tests on macOS](https://github.com/nushell/nushell/pull/12177) + - [Add environment engine calls for plugins](https://github.com/nushell/nushell/pull/12166) + - [Sync with the plugin garbage collector when setting config](https://github.com/nushell/nushell/pull/12152) + - [Support for all custom value operations on plugin custom values](https://github.com/nushell/nushell/pull/12088) + - [Make the plugin persistence GC delay test more reliable](https://github.com/nushell/nushell/pull/12153) + - [Fix unused IntoSpanned warning in nu_parser::parse_keywords when 'plugin' feature not enabled](https://github.com/nushell/nushell/pull/12144) + - [Keep plugins persistently running in the background](https://github.com/nushell/nushell/pull/12064) + - [Add support for engine calls from plugins](https://github.com/nushell/nushell/pull/12029) + - [Improve the error message for a plugin version mismatch](https://github.com/nushell/nushell/pull/12122) + - [Change the ignore command to use drain() instead of collecting a value](https://github.com/nushell/nushell/pull/12120) - [WindSoilder](https://github.com/WindSoilder) created - - [detect columns: intruduce a --guess flag, remove --legacy](https://github.com/nushell/nushell/pull/12333) - - [Change default algorithm in `detect columns`](https://github.com/nushell/nushell/pull/12277) - - [ls, rm, cp, open, touch, mkdir: Don't expand tilde if input path is quoted string or a variable.](https://github.com/nushell/nushell/pull/12232) - - [remove str escape-glob command](https://github.com/nushell/nushell/pull/12241) - - [remove test warnings](https://github.com/nushell/nushell/pull/12201) - - [clean cp tests](https://github.com/nushell/nushell/pull/12202) - - [`do` command: Make closure support default parameters and type checking](https://github.com/nushell/nushell/pull/12056) - - [fix ls with empty string](https://github.com/nushell/nushell/pull/12086) + - [detect columns: intruduce a --guess flag, remove --legacy](https://github.com/nushell/nushell/pull/12333) + - [Change default algorithm in `detect columns`](https://github.com/nushell/nushell/pull/12277) + - [ls, rm, cp, open, touch, mkdir: Don't expand tilde if input path is quoted string or a variable.](https://github.com/nushell/nushell/pull/12232) + - [remove str escape-glob command](https://github.com/nushell/nushell/pull/12241) + - [remove test warnings](https://github.com/nushell/nushell/pull/12201) + - [clean cp tests](https://github.com/nushell/nushell/pull/12202) + - [`do` command: Make closure support default parameters and type checking](https://github.com/nushell/nushell/pull/12056) + - [fix ls with empty string](https://github.com/nushell/nushell/pull/12086) - [dead10ck](https://github.com/dead10ck) created - - [into sqlite: Fix insertion of null values](https://github.com/nushell/nushell/pull/12328) + - [into sqlite: Fix insertion of null values](https://github.com/nushell/nushell/pull/12328) - [fdncred](https://github.com/fdncred) created - - [add a few more logging statements for debugging startup](https://github.com/nushell/nushell/pull/12316) - - [keep sqlparser at 39 until polars is upgraded](https://github.com/nushell/nushell/pull/12311) - - [cleanup coreutils tagging](https://github.com/nushell/nushell/pull/12286) - - [bump rust-toolchain to 1.75.0](https://github.com/nushell/nushell/pull/12258) - - [remove stdlib logging env variables](https://github.com/nushell/nushell/pull/12196) - - [Revert "fix: now sqlite insert handles column names as expected"](https://github.com/nushell/nushell/pull/12112) - - [fix `du` `--exclude` globbing bug](https://github.com/nushell/nushell/pull/12093) + - [add a few more logging statements for debugging startup](https://github.com/nushell/nushell/pull/12316) + - [keep sqlparser at 39 until polars is upgraded](https://github.com/nushell/nushell/pull/12311) + - [cleanup coreutils tagging](https://github.com/nushell/nushell/pull/12286) + - [bump rust-toolchain to 1.75.0](https://github.com/nushell/nushell/pull/12258) + - [remove stdlib logging env variables](https://github.com/nushell/nushell/pull/12196) + - [Revert "fix: now sqlite insert handles column names as expected"](https://github.com/nushell/nushell/pull/12112) + - [fix `du` `--exclude` globbing bug](https://github.com/nushell/nushell/pull/12093) - [AucaCoyan](https://github.com/AucaCoyan) created - - [:recycle: rework some help strings](https://github.com/nushell/nushell/pull/12306) - - [:bug: remove 3 backticks messing the `hover`](https://github.com/nushell/nushell/pull/12273) + - [:recycle: rework some help strings](https://github.com/nushell/nushell/pull/12306) + - [:bug: remove 3 backticks messing the `hover`](https://github.com/nushell/nushell/pull/12273) - [app/dependabot](https://github.com/app/dependabot) created - - [Bump sqlparser from 0.43.1 to 0.44.0](https://github.com/nushell/nushell/pull/12302) - - [Bump ical from 0.10.0 to 0.11.0](https://github.com/nushell/nushell/pull/12303) - - [Bump rayon from 1.9.0 to 1.10.0](https://github.com/nushell/nushell/pull/12301) - - [Bump base64 from 0.21.7 to 0.22.0](https://github.com/nushell/nushell/pull/12188) - - [Bump heck from 0.4.1 to 0.5.0](https://github.com/nushell/nushell/pull/12187) - - [Bump uuid from 1.7.0 to 1.8.0](https://github.com/nushell/nushell/pull/12246) - - [Bump rayon from 1.8.1 to 1.9.0](https://github.com/nushell/nushell/pull/12186) - - [Bump miette from 7.1.0 to 7.2.0](https://github.com/nushell/nushell/pull/12189) - - [Bump softprops/action-gh-release from 2.0.1 to 2.0.4](https://github.com/nushell/nushell/pull/12191) - - [Bump actions/checkout from 4.1.1 to 4.1.2](https://github.com/nushell/nushell/pull/12192) - - [Bump windows from 0.52.0 to 0.54.0](https://github.com/nushell/nushell/pull/12037) - - [Bump scraper from 0.18.1 to 0.19.0](https://github.com/nushell/nushell/pull/12060) - - [Bump open from 5.0.1 to 5.1.1](https://github.com/nushell/nushell/pull/12061) - - [Bump mockito from 1.3.0 to 1.4.0](https://github.com/nushell/nushell/pull/12063) + - [Bump sqlparser from 0.43.1 to 0.44.0](https://github.com/nushell/nushell/pull/12302) + - [Bump ical from 0.10.0 to 0.11.0](https://github.com/nushell/nushell/pull/12303) + - [Bump rayon from 1.9.0 to 1.10.0](https://github.com/nushell/nushell/pull/12301) + - [Bump base64 from 0.21.7 to 0.22.0](https://github.com/nushell/nushell/pull/12188) + - [Bump heck from 0.4.1 to 0.5.0](https://github.com/nushell/nushell/pull/12187) + - [Bump uuid from 1.7.0 to 1.8.0](https://github.com/nushell/nushell/pull/12246) + - [Bump rayon from 1.8.1 to 1.9.0](https://github.com/nushell/nushell/pull/12186) + - [Bump miette from 7.1.0 to 7.2.0](https://github.com/nushell/nushell/pull/12189) + - [Bump softprops/action-gh-release from 2.0.1 to 2.0.4](https://github.com/nushell/nushell/pull/12191) + - [Bump actions/checkout from 4.1.1 to 4.1.2](https://github.com/nushell/nushell/pull/12192) + - [Bump windows from 0.52.0 to 0.54.0](https://github.com/nushell/nushell/pull/12037) + - [Bump scraper from 0.18.1 to 0.19.0](https://github.com/nushell/nushell/pull/12060) + - [Bump open from 5.0.1 to 5.1.1](https://github.com/nushell/nushell/pull/12061) + - [Bump mockito from 1.3.0 to 1.4.0](https://github.com/nushell/nushell/pull/12063) - [FilipAndersson245](https://github.com/FilipAndersson245) created - - [Fixes broken bench](https://github.com/nushell/nushell/pull/12297) - - [Boxes record for smaller Value enum.](https://github.com/nushell/nushell/pull/12252) - - [Divan extra benchmarks](https://github.com/nushell/nushell/pull/12025) + - [Fixes broken bench](https://github.com/nushell/nushell/pull/12297) + - [Boxes record for smaller Value enum.](https://github.com/nushell/nushell/pull/12252) + - [Divan extra benchmarks](https://github.com/nushell/nushell/pull/12025) - [dmatos2012](https://github.com/dmatos2012) created - - [Initial implementation for uutils uname](https://github.com/nushell/nushell/pull/11684) + - [Initial implementation for uutils uname](https://github.com/nushell/nushell/pull/11684) - [schrieveslaach](https://github.com/schrieveslaach) created - - [Send LSP Completion Item Kind](https://github.com/nushell/nushell/pull/11443) + - [Send LSP Completion Item Kind](https://github.com/nushell/nushell/pull/11443) - [Dorumin](https://github.com/Dorumin) created - - [Initial --params implementation](https://github.com/nushell/nushell/pull/12249) + - [Initial --params implementation](https://github.com/nushell/nushell/pull/12249) - [abusch](https://github.com/abusch) created - - [Move more dependencies to workspace level](https://github.com/nushell/nushell/pull/12270) - - [Introduce workspace dependencies](https://github.com/nushell/nushell/pull/12043) + - [Move more dependencies to workspace level](https://github.com/nushell/nushell/pull/12270) + - [Introduce workspace dependencies](https://github.com/nushell/nushell/pull/12043) - [zhiburt](https://github.com/zhiburt) created - - [nu-explore/ Use hex-dump for binary data](https://github.com/nushell/nushell/pull/12184) + - [nu-explore/ Use hex-dump for binary data](https://github.com/nushell/nushell/pull/12184) - [lavafroth](https://github.com/lavafroth) created - - [fix: use environment variables to prevent command_not_found from recursing](https://github.com/nushell/nushell/pull/11090) + - [fix: use environment variables to prevent command_not_found from recursing](https://github.com/nushell/nushell/pull/11090) - [YizhePKU](https://github.com/YizhePKU) created - - [Fix: missing parse error when extra tokens are given to let bindings](https://github.com/nushell/nushell/pull/12238) - - [Fix inaccurate sleep duration](https://github.com/nushell/nushell/pull/12235) + - [Fix: missing parse error when extra tokens are given to let bindings](https://github.com/nushell/nushell/pull/12238) + - [Fix inaccurate sleep duration](https://github.com/nushell/nushell/pull/12235) - [dannou812](https://github.com/dannou812) created - - [`to json -r` not removing whitespaces fix](https://github.com/nushell/nushell/pull/11948) + - [`to json -r` not removing whitespaces fix](https://github.com/nushell/nushell/pull/11948) - [JoaoFidalgo1403](https://github.com/JoaoFidalgo1403) created - - [Fix usage of --tabs flag while converting to json](https://github.com/nushell/nushell/pull/12251) + - [Fix usage of --tabs flag while converting to json](https://github.com/nushell/nushell/pull/12251) - [Tastaturtaste](https://github.com/Tastaturtaste) created - - [Use the system clipboard only for explicit copy/paste operations. Addresses issue 11907](https://github.com/nushell/nushell/pull/12179) + - [Use the system clipboard only for explicit copy/paste operations. Addresses issue 11907](https://github.com/nushell/nushell/pull/12179) - [sarubo](https://github.com/sarubo) created - - [Adjust permissions using `umask` in `mkdir`](https://github.com/nushell/nushell/pull/12207) + - [Adjust permissions using `umask` in `mkdir`](https://github.com/nushell/nushell/pull/12207) - [thomassimmer](https://github.com/thomassimmer) created - - [Fix histogram error message](https://github.com/nushell/nushell/pull/12197) + - [Fix histogram error message](https://github.com/nushell/nushell/pull/12197) - [ysthakur](https://github.com/ysthakur) created - - [Canonicalize each component of config files](https://github.com/nushell/nushell/pull/12167) - - [Use XDG_CONFIG_HOME before default config directory](https://github.com/nushell/nushell/pull/12118) - - [Canonicalize config dir](https://github.com/nushell/nushell/pull/12136) - - [Update tests Playground](https://github.com/nushell/nushell/pull/12134) + - [Canonicalize each component of config files](https://github.com/nushell/nushell/pull/12167) + - [Use XDG_CONFIG_HOME before default config directory](https://github.com/nushell/nushell/pull/12118) + - [Canonicalize config dir](https://github.com/nushell/nushell/pull/12136) + - [Update tests Playground](https://github.com/nushell/nushell/pull/12134) - [nils-degroot](https://github.com/nils-degroot) created - - [Improve error message for `into sqlite` with empty records](https://github.com/nushell/nushell/pull/12149) + - [Improve error message for `into sqlite` with empty records](https://github.com/nushell/nushell/pull/12149) - [kubouch](https://github.com/kubouch) created - - [Refactor nu-check](https://github.com/nushell/nushell/pull/12137) - - [Debugger experiments](https://github.com/nushell/nushell/pull/11441) + - [Refactor nu-check](https://github.com/nushell/nushell/pull/12137) + - [Debugger experiments](https://github.com/nushell/nushell/pull/11441) - [rtpg](https://github.com/rtpg) created - - [Allow for stacks to have parents](https://github.com/nushell/nushell/pull/11654) + - [Allow for stacks to have parents](https://github.com/nushell/nushell/pull/11654) - [hustcer](https://github.com/hustcer) created - - [Upgrade actions/checkout and softprops/action-gh-release](https://github.com/nushell/nushell/pull/12135) - - [Fix Nu release packages after upgrading to Nu v0.91](https://github.com/nushell/nushell/pull/12119) - - [Upgrade Nu to v0.91 for release and nightly workflow](https://github.com/nushell/nushell/pull/12114) + - [Upgrade actions/checkout and softprops/action-gh-release](https://github.com/nushell/nushell/pull/12135) + - [Fix Nu release packages after upgrading to Nu v0.91](https://github.com/nushell/nushell/pull/12119) + - [Upgrade Nu to v0.91 for release and nightly workflow](https://github.com/nushell/nushell/pull/12114) - [rgwood](https://github.com/rgwood) created - - [Fix up ctrl+C handling in `into_sqlite`](https://github.com/nushell/nushell/pull/12130) - - [Remove unused/incorrect input type from `start`](https://github.com/nushell/nushell/pull/12107) + - [Fix up ctrl+C handling in `into_sqlite`](https://github.com/nushell/nushell/pull/12130) + - [Remove unused/incorrect input type from `start`](https://github.com/nushell/nushell/pull/12107) - [NowackiPatryk](https://github.com/NowackiPatryk) created - - [Fix unexpected sqlite insert behaviour (attempt 2)](https://github.com/nushell/nushell/pull/12128) - - [fix: now sqlite insert handles column names as expected](https://github.com/nushell/nushell/pull/12039) + - [Fix unexpected sqlite insert behaviour (attempt 2)](https://github.com/nushell/nushell/pull/12128) + - [fix: now sqlite insert handles column names as expected](https://github.com/nushell/nushell/pull/12039) - [wellweek](https://github.com/wellweek) created - - [remove repetitive word](https://github.com/nushell/nushell/pull/12117) + - [remove repetitive word](https://github.com/nushell/nushell/pull/12117) - [VlkrS](https://github.com/VlkrS) created - - [Fix build on OpenBSD](https://github.com/nushell/nushell/pull/12111) + - [Fix build on OpenBSD](https://github.com/nushell/nushell/pull/12111) - [dj-sourbrough](https://github.com/dj-sourbrough) created - - [Fix: lex now throws error on unbalanced closing parentheses (issue #11982)](https://github.com/nushell/nushell/pull/12098) + - [Fix: lex now throws error on unbalanced closing parentheses (issue #11982)](https://github.com/nushell/nushell/pull/12098) - [NotTheDr01ds](https://github.com/NotTheDr01ds) created - - [Fix: Convert help example results to text](https://github.com/nushell/nushell/pull/12078) + - [Fix: Convert help example results to text](https://github.com/nushell/nushell/pull/12078) diff --git a/blog/2025-04-29-nushell_0_104_0.md b/blog/2025-04-29-nushell_0_104_0.md index 281e1445fe8..e96931f42b6 100644 --- a/blog/2025-04-29-nushell_0_104_0.md +++ b/blog/2025-04-29-nushell_0_104_0.md @@ -20,49 +20,52 @@ As part of this release, we also publish a set of optional [plugins](https://www # Table of contents -- [_Highlights and themes of this release_](#highlights-and-themes-of-this-release-toc) - - [_New Job-Control Features_](#new-job-control-features-toc) - - [_Inter-Job Messaging (Experimental)_](#inter-job-messaging-experimental-toc) - - [_Job tags_](#job-tags-toc) - - [_New `datetime` and `duration` Features_](#new-datetime-and-duration-features-toc) - - [_New `date from-human` command_](#new-date-from-human-command-toc) - - [_`into datetime` now accepts a record_](#into-datetime-now-accepts-a-record-toc) - - [_`into duration` now accepts a record_](#into-duration-now-accepts-a-record-toc) - - [_`into datetime --format` can now parse dates and times separately_](#into-datetime-format-can-now-parse-dates-and-times-separately-toc) - - [_`into duration` now accepts floats_](#into-duration-now-accepts-floats-toc) - - [_New Polars commands_](#new-polars-commands-toc) -- [_Changes_](#changes-toc) - - [_Additions_](#additions-toc) - - [_`kill` now accepts list spreading_](#kill-now-accepts-list-spreading-toc) - - [_Custom indicator for missing table values_](#custom-indicator-for-missing-table-values-toc) - - [_Some `math` commands now work with bounded ranges_](#some-math-commands-now-work-with-bounded-ranges-toc) - - [_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) - - [_`env-conversions` helpers added to the standard library_](#env-conversions-helpers-added-to-the-standard-library-toc) - - [_Proxy support for `http` commands_](#proxy-support-for-http-commands-toc) - - [_Tab completion when importing the standard library and its exports_](#tab-completion-when-importing-the-standard-library-and-its-exports-toc) - - [_New columns available from `ps -l` on macOS_](#new-columns-available-from-ps-l-on-macos-toc) - - [_LSP: Snippet-style completions_](#lsp-snippet-style-completions-toc) - - [_`debug --raw-value`_](#debug-raw-value-toc) - - [_More info from `describe --detailed`_](#more-info-from-describe-detailed-toc) - - [_Support `PATHEXT` for additional extensions on Windows_](#support-pathext-for-additional-extensions-on-windows-toc) - - [_Execute Nushell scripts on the Path in Windows_](#execute-nushell-scripts-on-the-path-in-windows-toc) - - [_New flag `glob --follow-symlinks`_](#new-flag-glob-follow-symlinks-toc) - - [_Substring match algorithm_](#substring-match-algorithm-toc) - - [_Breaking changes_](#breaking-changes-toc) - - [_Parse human date time explicitly_](#parse-human-date-time-explicitly-toc) - - [_`str join` formatting for `datetime` values has changed_](#str-join-formatting-for-datetime-values-has-changed-toc) - - [_`history` with sqlite uses datetimes now_](#history-with-sqlite-uses-datetimes-now-toc) - - [_`date` is now `datetime`_](#date-is-now-datetime-toc) - - [_Deprecations_](#deprecations-toc) - - [_`positional` completer option_](#positional-completer-option-toc) - - [_Removals_](#removals-toc) - - [_Removed `-s` and `-p` in `do`_](#removed-s-and-p-in-do-toc) - - [_Bug fixes and other changes_](#bug-fixes-and-other-changes-toc) -- [_Notes for plugin developers_](#notes-for-plugin-developers-toc) - - [_Convert `IoError` into `LabeledError`_](#convert-ioerror-into-labelederror-toc) - - [_New Repo for Plugin Examples_](#new-repo-for-plugin-examples-toc) -- [_Hall of fame_](#hall-of-fame-toc) -- [_Full changelog_](#full-changelog-toc) +- [Nushell 0.104.0](#nushell-01040) +- [Where to get it](#where-to-get-it) +- [Table of contents](#table-of-contents) +- [Highlights and themes of this release \[toc\]](#highlights-and-themes-of-this-release-toc) + - [New Job-Control Features \[toc\]](#new-job-control-features-toc) + - [Inter-Job Messaging (Experimental) \[toc\]](#inter-job-messaging-experimental-toc) + - [Job tags \[toc\]](#job-tags-toc) + - [New `datetime` and `duration` Features \[toc\]](#new-datetime-and-duration-features-toc) + - [New `date from-human` command \[toc\]](#new-date-from-human-command-toc) + - [`into datetime` now accepts a record \[toc\]](#into-datetime-now-accepts-a-record-toc) + - [`into duration` now accepts a record \[toc\]](#into-duration-now-accepts-a-record-toc) + - [`into datetime --format` can now parse dates and times separately \[toc\]](#into-datetime---format-can-now-parse-dates-and-times-separately-toc) + - [`into duration` now accepts floats \[toc\]](#into-duration-now-accepts-floats-toc) + - [New Polars commands \[toc\]](#new-polars-commands-toc) +- [Changes \[toc\]](#changes-toc) + - [Additions \[toc\]](#additions-toc) + - [`kill` now accepts list spreading \[toc\]](#kill-now-accepts-list-spreading-toc) + - [Custom indicator for missing table values \[toc\]](#custom-indicator-for-missing-table-values-toc) + - [Some `math` commands now work with bounded ranges \[toc\]](#some-math-commands-now-work-with-bounded-ranges-toc) + - [The executable directory is now added to `$NU_PLUGIN_DIRS` by default \[toc\]](#the-executable-directory-is-now-added-to-nu_plugin_dirs-by-default-toc) + - [`env-conversions` helpers added to the standard library \[toc\]](#env-conversions-helpers-added-to-the-standard-library-toc) + - [Proxy support for `http` commands \[toc\]](#proxy-support-for-http-commands-toc) + - [Tab completion when importing the standard library and its exports \[toc\]](#tab-completion-when-importing-the-standard-library-and-its-exports-toc) + - [New columns available from `ps -l` on macOS \[toc\]](#new-columns-available-from-ps--l-on-macos-toc) + - [LSP: Snippet-style completions \[toc\]](#lsp-snippet-style-completions-toc) + - [`debug --raw-value` \[toc\]](#debug---raw-value-toc) + - [More info from `describe --detailed` \[toc\]](#more-info-from-describe---detailed-toc) + - [Support `PATHEXT` for additional extensions on Windows \[toc\]](#support-pathext-for-additional-extensions-on-windows-toc) + - [Execute Nushell scripts on the Path in Windows \[toc\]](#execute-nushell-scripts-on-the-path-in-windows-toc) + - [New flag `glob --follow-symlinks` \[toc\]](#new-flag-glob---follow-symlinks-toc) + - [Substring match algorithm \[toc\]](#substring-match-algorithm-toc) + - [Breaking changes \[toc\]](#breaking-changes-toc) + - [Parse human date time explicitly \[toc\]](#parse-human-date-time-explicitly-toc) + - [`str join` formatting for `datetime` values has changed \[toc\]](#str-join-formatting-for-datetime-values-has-changed-toc) + - [`history` with sqlite uses datetimes now \[toc\]](#history-with-sqlite-uses-datetimes-now-toc) + - [`date` is now `datetime` \[toc\]](#date-is-now-datetime-toc) + - [Deprecations \[toc\]](#deprecations-toc) + - [`positional` completer option \[toc\]](#positional-completer-option-toc) + - [Removals \[toc\]](#removals-toc) + - [Removed `-s` and `-p` in `do` \[toc\]](#removed--s-and--p-in-do-toc) + - [Bug fixes and other changes \[toc\]](#bug-fixes-and-other-changes-toc) +- [Notes for plugin developers \[toc\]](#notes-for-plugin-developers-toc) + - [Convert `IoError` into `LabeledError` \[toc\]](#convert-ioerror-into-labelederror-toc) + - [New Repo for Plugin Examples \[toc\]](#new-repo-for-plugin-examples-toc) +- [Hall of fame \[toc\]](#hall-of-fame-toc) +- [Full changelog \[toc\]](#full-changelog-toc) # Highlights and themes of this release [[toc](#table-of-contents)] @@ -390,7 +393,7 @@ Thanks to all the contributors below for helping us solve issues, improve docume | [@WindSoilder](https://github.com/WindSoilder) | IR: allow subexpression with redirection. | [#15617](https://github.com/nushell/nushell/pull/15617) | | [@blindFS](https://github.com/blindFS) | refactor: command identified by name instead of span content | [#15471](https://github.com/nushell/nushell/pull/15471) | | [@blindFS](https://github.com/blindFS) | refactor(lsp): align markdown doc string with output of --help | [#15508](https://github.com/nushell/nushell/pull/15508) | -| [@blindFS](https://github.com/blindFS) | refactor(completion, lsp): include decl_id in suggetion_kind for later usage | [#15536](https://github.com/nushell/nushell/pull/15536) | +| [@blindFS](https://github.com/blindFS) | refactor(completion, lsp): include decl_id in suggestion_kind for later usage | [#15536](https://github.com/nushell/nushell/pull/15536) | | [@blindFS](https://github.com/blindFS) | refactor(lsp): flat_map with mutable accumulator | [#15567](https://github.com/nushell/nushell/pull/15567) | | [@cptpiepmatz](https://github.com/cptpiepmatz) | Add `--plugins` flag to `nu-std/testing.nu` | [#15552](https://github.com/nushell/nushell/pull/15552) | | [@cptpiepmatz](https://github.com/cptpiepmatz) | Add `cat` and `get-content` to `open`'s search terms | [#15643](https://github.com/nushell/nushell/pull/15643) | @@ -506,7 +509,7 @@ Thanks to all the contributors below for helping us solve issues, improve docume | [@blindFS](https://github.com/blindFS) | fix(lsp): workspace wide ops may panic in certain conditions | [#15514](https://github.com/nushell/nushell/pull/15514) | | [@blindFS](https://github.com/blindFS) | fix(lsp): parser_info based id detection for use/overlay keywords | [#15517](https://github.com/nushell/nushell/pull/15517) | | [@blindFS](https://github.com/blindFS) | fix(lsp): several edge cases of inaccurate references | [#15523](https://github.com/nushell/nushell/pull/15523) | -| [@blindFS](https://github.com/blindFS) | refactor(completion, lsp): include decl_id in suggetion_kind for later usage | [#15536](https://github.com/nushell/nushell/pull/15536) | +| [@blindFS](https://github.com/blindFS) | refactor(completion, lsp): include decl_id in suggestion_kind for later usage | [#15536](https://github.com/nushell/nushell/pull/15536) | | [@blindFS](https://github.com/blindFS) | fix(lsp): more accurate command name highlight/rename | [#15540](https://github.com/nushell/nushell/pull/15540) | | [@blindFS](https://github.com/blindFS) | fix(completion): quoted cell path completion | [#15546](https://github.com/nushell/nushell/pull/15546) | | [@blindFS](https://github.com/blindFS) | refactor(lsp): flat_map with mutable accumulator | [#15567](https://github.com/nushell/nushell/pull/15567) | diff --git a/typos.toml b/typos.toml index b89a226153c..cffb4c6088e 100644 --- a/typos.toml +++ b/typos.toml @@ -1,5 +1,5 @@ [files] -extend-exclude = ["pt-BR", "de", "ja", "es", "blog/202[0-3]*", "commands/", "fr"] +extend-exclude = ["pt-BR", "de", "ja", "es", "blog/202[0-4]*", "commands/", "fr", "blog/2025-03-1*"] [default] extend-ignore-identifiers-re = [ @@ -19,4 +19,7 @@ ons = "ons" # false positive in commands/docs/str_replace.md optio = "optio" # false positive in cookbook/http.md ratatui = "ratatui" ws = "ws" # false positive in book/nushell_map.md +feeze = "feeze" +alues = "alues" +Flippin = "Flippin" From 5d2aa7caaebb2fb2101d7432db956a771c76f89d Mon Sep 17 00:00:00 2001 From: hustcer Date: Sun, 12 Oct 2025 10:58:46 +0800 Subject: [PATCH 2/2] Fix typos --- blog/2024-04-02-nushell_0_92_0.md | 428 ++++++++++++++--------------- blog/2025-04-29-nushell_0_104_0.md | 89 +++--- 2 files changed, 249 insertions(+), 268 deletions(-) diff --git a/blog/2024-04-02-nushell_0_92_0.md b/blog/2024-04-02-nushell_0_92_0.md index 3d5504f3917..bb3d98a135f 100644 --- a/blog/2024-04-02-nushell_0_92_0.md +++ b/blog/2024-04-02-nushell_0_92_0.md @@ -23,59 +23,58 @@ The optional dataframe functionality is available by `cargo install nu --feature 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_`. # Table of content - -- [_Themes of this release / New features_](#themes-of-this-release-new-features-toc) - - [_External command output changes_](#external-command-output-changes-toc) - - [_Scoped file redirections_](#scoped-file-redirections-toc) - - [_Tilde expansion_](#tilde-expansion-toc) - - [_Support for `XDG_CONFIG_HOME`_](#support-for-xdg-config-home-toc) - - [_Incorporating the `extra` feature by default_](#incorporating-the-extra-feature-by-default-toc) - - [_Persistent plugins_](#persistent-plugins-toc) - - [_Plugin API overhaul_](#plugin-api-overhaul-toc) - - [_Plugin engine calls_](#plugin-engine-calls-toc) - - [_Improved plugin custom values_](#improved-plugin-custom-values-toc) - - [_Plugin test support crate_](#plugin-test-support-crate-toc) - - [_Official plugin template_](#official-plugin-template-toc) - - [_Debugging support and proof-of-concept profiler_](#debugging-support-and-proof-of-concept-profiler-toc) - - [_Support for binary data in `explore`_](#support-for-binary-data-in-explore-toc) - - [_Performance improvements_](#performance-improvements-toc) - - [_Hall of fame_](#hall-of-fame-toc) - - [_Bug fixes_](#bug-fixes-toc) - - [_Enhancing the documentation_](#enhancing-the-documentation-toc) - - [_Our set of commands is evolving_](#our-set-of-commands-is-evolving-toc) - - [_New commands_](#new-commands-toc) - - [_`plugin list`_](#plugin-list-toc) - - [_`plugin stop`_](#plugin-stop-toc) - - [_`debug profile`_](#debug-profile-toc) - - [_`uname`_](#uname-toc) - - [_`query db --params`_](#query-db-params-toc) - - [_`detect columns --guess`_](#detect-columns-guess-toc) - - [_Changes to existing commands_](#changes-to-existing-commands-toc) - - [_`echo`_](#echo-toc) - - [_`table`_](#table-toc) - - [_`into bits`_](#into-bits-toc) - - [_`nu-check`_](#nu-check-toc) - - [_`mkdir`_](#mkdir-toc) - - [_`ls`_](#ls-toc) - - [_`version`_](#version-toc) - - [_`filter`_](#filter-toc) - - [_`insert`_](#insert-toc) - - [_`do`_](#do-toc) - - [_`complete`_](#complete-toc) - - [_`ignore`_](#ignore-toc) - - [_`export use`_](#export-use-toc) - - [_`sleep`_](#sleep-toc) - - [_`into sqlite`_](#into-sqlite-toc) - - [_`to json`_](#to-json-toc) - - [_`du`_](#du-toc) - - [_`histogram`_](#histogram-toc) - - [_`into string`_](#into-string-toc) - - [_Deprecated commands_](#deprecated-commands-toc) - - [_`run-external` flags_](#run-external-flags-toc) - - [_Removed commands_](#removed-commands-toc) - - [_`str escape-glob`_](#str-escape-glob-toc) -- [_Breaking changes_](#breaking-changes-toc) -- [_Full changelog_](#full-changelog-toc) +- [*Themes of this release / New features*](#themes-of-this-release-new-features-toc) + - [*External command output changes*](#external-command-output-changes-toc) + - [*Scoped file redirections*](#scoped-file-redirections-toc) + - [*Tilde expansion*](#tilde-expansion-toc) + - [*Support for `XDG_CONFIG_HOME`*](#support-for-xdg-config-home-toc) + - [*Incorporating the `extra` feature by default*](#incorporating-the-extra-feature-by-default-toc) + - [*Persistent plugins*](#persistent-plugins-toc) + - [*Plugin API overhaul*](#plugin-api-overhaul-toc) + - [*Plugin engine calls*](#plugin-engine-calls-toc) + - [*Improved plugin custom values*](#improved-plugin-custom-values-toc) + - [*Plugin test support crate*](#plugin-test-support-crate-toc) + - [*Official plugin template*](#official-plugin-template-toc) + - [*Debugging support and proof-of-concept profiler*](#debugging-support-and-proof-of-concept-profiler-toc) + - [*Support for binary data in `explore`*](#support-for-binary-data-in-explore-toc) + - [*Performance improvements*](#performance-improvements-toc) + - [*Hall of fame*](#hall-of-fame-toc) + - [*Bug fixes*](#bug-fixes-toc) + - [*Enhancing the documentation*](#enhancing-the-documentation-toc) + - [*Our set of commands is evolving*](#our-set-of-commands-is-evolving-toc) + - [*New commands*](#new-commands-toc) + - [*`plugin list`*](#plugin-list-toc) + - [*`plugin stop`*](#plugin-stop-toc) + - [*`debug profile`*](#debug-profile-toc) + - [*`uname`*](#uname-toc) + - [*`query db --params`*](#query-db-params-toc) + - [*`detect columns --guess`*](#detect-columns-guess-toc) + - [*Changes to existing commands*](#changes-to-existing-commands-toc) + - [*`echo`*](#echo-toc) + - [*`table`*](#table-toc) + - [*`into bits`*](#into-bits-toc) + - [*`nu-check`*](#nu-check-toc) + - [*`mkdir`*](#mkdir-toc) + - [*`ls`*](#ls-toc) + - [*`version`*](#version-toc) + - [*`filter`*](#filter-toc) + - [*`insert`*](#insert-toc) + - [*`do`*](#do-toc) + - [*`complete`*](#complete-toc) + - [*`ignore`*](#ignore-toc) + - [*`export use`*](#export-use-toc) + - [*`sleep`*](#sleep-toc) + - [*`into sqlite`*](#into-sqlite-toc) + - [*`to json`*](#to-json-toc) + - [*`du`*](#du-toc) + - [*`histogram`*](#histogram-toc) + - [*`into string`*](#into-string-toc) + - [*Deprecated commands*](#deprecated-commands-toc) + - [*`run-external` flags*](#run-external-flags-toc) + - [*Removed commands*](#removed-commands-toc) + - [*`str escape-glob`*](#str-escape-glob-toc) +- [*Breaking changes*](#breaking-changes-toc) +- [*Full changelog*](#full-changelog-toc) # Themes of this release / New features [[toc](#table-of-content)] @@ -89,26 +88,21 @@ With [#11934](https://github.com/nushell/nushell/pull/11934), we improved the pe As part of this effort, Nushell now streams external command output in more places where it is possible. Namely, parentheses no longer collect external command output and are now solely for grouping and precedence. For example, take this pipeline: - ```nushell (nu -c "for x in 1.. { try { print $x } catch { break } }") | lines | first ``` - In previous versions, this would collect the output of `nu` and would not print anything until `ctrl+c` was pressed. Now, this will immediately print the first line and then immediately finish the pipeline. So now, external command output will only be collected if it's being turned into a value (or if it's passed to an internal command that collects its input). For example, external commands will be collected if it's a command argument: - ```nushell print (^external) ``` - Or, if it's being stored in record, list, table, or variable: - ```nushell { result: (^external) @@ -124,21 +118,17 @@ let result = ^external In these cases, if an external command is in "return position" (it's the last command), then its output will be collected into a value instead of writing to the terminal/stdio. For example, the code below used to print `"text"` twice and then return an empty list: - ```nushell 1..2 | each { nu -c 'print text' } ``` - But now, this will collect the output of `nu`, giving the list `['text', 'text']`. To achieve the old behavior, you can return `null` instead: - ```nushell 1..2 | each { nu -c "print text"; null } # or, you could use a `for` loop ``` Only a few commands take a closure but do not use it to compute a value: - - `do` - `with-env` - `collect` @@ -149,11 +139,9 @@ These commands will not collect external command output from the closure and wil Another notable change is that external command output will no longer be implicitly ignored. For example, external commands in subexpressions that were not the last command used to have their output discarded: - ```nushell (^echo first; ^echo last) ``` - Before, this would only print `last`, but now this prints both `first` and `last`. One final change to note is that external command output now has trailing new lines removed by default. @@ -165,7 +153,7 @@ The exceptions are if the external command is being redirected to a file, anothe See a full overview of the [breaking changes](#breaking-changes-toc) ::: -File redirections (`o>`, `e>`, `o+e>`, etc.) now apply to all **_external_** commands inside an expression. +File redirections (`o>`, `e>`, `o+e>`, etc.) now apply to all ***external*** commands inside an expression. For example, the snippet below will redirect stderr from both commands into `err.log`. ```nushell @@ -194,7 +182,6 @@ See a full overview of the [breaking changes](#breaking-changes-toc) ::: Building off of last release's [work with globs](/blog/2024-03-05-nushell_0_91_0.html#handling-globs-for-variables-toc), this version makes similar changes to tilde expansion in [#12232](https://github.com/nushell/nushell/pull/12232). Now, tildes will be expanded to the home directory only if it's part of a glob. - ```nushell ls ~/dir # expands tilde ls "~/dir" # does not expand tilde @@ -230,7 +217,6 @@ This was done to simplify the distribution of Nushell to have a canonical set of (Now only the `dataframe` feature remains to add a major set of commands, but work is underway to allow you to add this simply as a plugin) If your current build of nushell does not have the `extra` feature enabled, then you should have access to more commands in this new release: - - `update cells` provides an easy way to update all cells of a table using a closure. - `each while` is like the `each` command, except it stops once a null value is returned by the closure. - `into bits` returns the stringified binary representation of a value. @@ -714,7 +700,6 @@ Fixed an issue with `sleep` in [#12235](https://github.com/nushell/nushell/pull/ #### `into sqlite` [[toc](#table-of-content)] `into sqlite` has had a few bug fixes: - - Ctrl+c handling in `into sqlite` was fixed with [#12130](https://github.com/nushell/nushell/pull/12130). - Insertion of null values was fixed with [#12328](https://github.com/nushell/nushell/pull/12328). - Column ordering for INSERT was fixed in [#11429](https://github.com/nushell/nushell/issues/11429). @@ -749,7 +734,6 @@ All preexisting flags for `run-external` are now deprecated. This is because `run-external` now interacts with pipe and file redirections just like if an external command had been run directly. I.e., `run-external cmd` should be the same as just `^cmd`. The only difference is that `run-external` may have additional flags added in the future for other functionality. - - To achieve the old `--redirect-stdout` behavior, simply use a pipe `|`. - Instead of `--redirect-stderr`, use the stderr pipe `e>|`, or use a regular pipe `|` for internal commands that use stderr directly (i.e., `save --stderr` and `tee --stderr`). - Instead of `--redirect-combine`, use the stdout and stderr pipe `o+e>|`. @@ -784,189 +768,189 @@ external command output now has trailing new lines trimmed by default, so the `- # Full changelog [[toc](#table-of-content)] - [IanManske](https://github.com/IanManske) created - - [`mkdir` umask fix](https://github.com/nushell/nushell/pull/12354) - - [Use safe `nix` API instead of `libc`](https://github.com/nushell/nushell/pull/12315) - - [Fix file redirection for externals streams](https://github.com/nushell/nushell/pull/12321) - - [Make `Record.cols` private](https://github.com/nushell/nushell/pull/12317) - - [Add `command_prelude` module](https://github.com/nushell/nushell/pull/12291) - - [Cancel old CI runs on commit](https://github.com/nushell/nushell/pull/12298) - - [Always pretty print binary values in `table`](https://github.com/nushell/nushell/pull/12294) - - [Use rest argument in `export use` to match `use`](https://github.com/nushell/nushell/pull/12228) - - [Fix wrong stdout with `e>|`](https://github.com/nushell/nushell/pull/12227) - - [Fix `$in` value for `insert` closure](https://github.com/nushell/nushell/pull/12209) - - [IO and redirection overhaul](https://github.com/nushell/nushell/pull/11934) - - [Fix ignored clippy lints](https://github.com/nushell/nushell/pull/12160) - - [Fix clippy lints](https://github.com/nushell/nushell/pull/12139) - - [Fix `chrono` deprecation warnings](https://github.com/nushell/nushell/pull/12091) - - [Fix clippy lints](https://github.com/nushell/nushell/pull/12094) - - [Fix broken doc link](https://github.com/nushell/nushell/pull/12092) + - [`mkdir` umask fix](https://github.com/nushell/nushell/pull/12354) + - [Use safe `nix` API instead of `libc`](https://github.com/nushell/nushell/pull/12315) + - [Fix file redirection for externals streams](https://github.com/nushell/nushell/pull/12321) + - [Make `Record.cols` private](https://github.com/nushell/nushell/pull/12317) + - [Add `command_prelude` module](https://github.com/nushell/nushell/pull/12291) + - [Cancel old CI runs on commit](https://github.com/nushell/nushell/pull/12298) + - [Always pretty print binary values in `table`](https://github.com/nushell/nushell/pull/12294) + - [Use rest argument in `export use` to match `use`](https://github.com/nushell/nushell/pull/12228) + - [Fix wrong stdout with `e>|`](https://github.com/nushell/nushell/pull/12227) + - [Fix `$in` value for `insert` closure](https://github.com/nushell/nushell/pull/12209) + - [IO and redirection overhaul](https://github.com/nushell/nushell/pull/11934) + - [Fix ignored clippy lints](https://github.com/nushell/nushell/pull/12160) + - [Fix clippy lints](https://github.com/nushell/nushell/pull/12139) + - [Fix `chrono` deprecation warnings](https://github.com/nushell/nushell/pull/12091) + - [Fix clippy lints](https://github.com/nushell/nushell/pull/12094) + - [Fix broken doc link](https://github.com/nushell/nushell/pull/12092) - [Jasha10](https://github.com/Jasha10) created - - [Fix dead links in CONTRIBUTING.md](https://github.com/nushell/nushell/pull/12353) + - [Fix dead links in CONTRIBUTING.md](https://github.com/nushell/nushell/pull/12353) - [sholderbach](https://github.com/sholderbach) created - - [Refactor `Record` to use a single backing `Vec`](https://github.com/nushell/nushell/pull/12326) - - [Remove ambiguous `into bits` impl for `date`](https://github.com/nushell/nushell/pull/12313) - - [Reuse existing small allocations if possible](https://github.com/nushell/nushell/pull/12335) - - [Elide clone in `V::follow_cell_path` for record](https://github.com/nushell/nushell/pull/12325) - - [Use nightly clippy to kill dead code/fix style](https://github.com/nushell/nushell/pull/12334) - - [Avoid uses of `Record` internals again](https://github.com/nushell/nushell/pull/12312) - - [Fix #10131](https://github.com/nushell/nushell/pull/12310) - - [Rename `Value::CustomValue` to `Value::Custom`](https://github.com/nushell/nushell/pull/12309) - - [Deduplicate `nix` dependency versions](https://github.com/nushell/nushell/pull/12307) - - [Benchmark table creation and access](https://github.com/nushell/nushell/pull/12293) - - [Fix `return` in `filter` closure eval](https://github.com/nushell/nushell/pull/12292) - - [Follow API guidelines for public types](https://github.com/nushell/nushell/pull/12283) - - [Remove dead `impl PluginEncoder for EncodingType`](https://github.com/nushell/nushell/pull/12284) - - [Style: move some `Option` if/else to method chains](https://github.com/nushell/nushell/pull/12285) - - [Refactor source cache into `CachedFile` struct](https://github.com/nushell/nushell/pull/12240) - - [Respond to nightly clippy](https://github.com/nushell/nushell/pull/12174) - - [Update contributor image generation with new upper bound](https://github.com/nushell/nushell/pull/12198) - - [Disable `fmt` feature of `polars(-core)`](https://github.com/nushell/nushell/pull/12151) - - [Minor refactor in `to html`](https://github.com/nushell/nushell/pull/12172) - - [Remove the rarely used std-lib issue template](https://github.com/nushell/nushell/pull/12173) - - [Bump `arboard` from `3.3.0` to `3.3.2`](https://github.com/nushell/nushell/pull/12178) - - [Refactor benches for more command benchmarks](https://github.com/nushell/nushell/pull/12171) - - [Include benchmarks in the CI clippy run](https://github.com/nushell/nushell/pull/12165) - - [Bump `iana-time-zone` due to yanked locked version](https://github.com/nushell/nushell/pull/12162) - - [Remove outdated doccomment on `EngineState`](https://github.com/nushell/nushell/pull/12158) - - [Bump `reedline` to dev (and `strum`)](https://github.com/nushell/nushell/pull/12150) - - [Restructure `nu-protocol` in more meaningful units](https://github.com/nushell/nushell/pull/11917) - - [Remove feat `extra` and include in default](https://github.com/nushell/nushell/pull/12140) - - [Reschedule dependabot PR opening to Wednesday](https://github.com/nushell/nushell/pull/12082) - - [Bump version to `0.91.1`](https://github.com/nushell/nushell/pull/12085) + - [Refactor `Record` to use a single backing `Vec`](https://github.com/nushell/nushell/pull/12326) + - [Remove ambiguous `into bits` impl for `date`](https://github.com/nushell/nushell/pull/12313) + - [Reuse existing small allocations if possible](https://github.com/nushell/nushell/pull/12335) + - [Elide clone in `V::follow_cell_path` for record](https://github.com/nushell/nushell/pull/12325) + - [Use nightly clippy to kill dead code/fix style](https://github.com/nushell/nushell/pull/12334) + - [Avoid uses of `Record` internals again](https://github.com/nushell/nushell/pull/12312) + - [Fix #10131](https://github.com/nushell/nushell/pull/12310) + - [Rename `Value::CustomValue` to `Value::Custom`](https://github.com/nushell/nushell/pull/12309) + - [Deduplicate `nix` dependency versions](https://github.com/nushell/nushell/pull/12307) + - [Benchmark table creation and access](https://github.com/nushell/nushell/pull/12293) + - [Fix `return` in `filter` closure eval](https://github.com/nushell/nushell/pull/12292) + - [Follow API guidelines for public types](https://github.com/nushell/nushell/pull/12283) + - [Remove dead `impl PluginEncoder for EncodingType`](https://github.com/nushell/nushell/pull/12284) + - [Style: move some `Option` if/else to method chains](https://github.com/nushell/nushell/pull/12285) + - [Refactor source cache into `CachedFile` struct](https://github.com/nushell/nushell/pull/12240) + - [Respond to nightly clippy](https://github.com/nushell/nushell/pull/12174) + - [Update contributor image generation with new upper bound](https://github.com/nushell/nushell/pull/12198) + - [Disable `fmt` feature of `polars(-core)`](https://github.com/nushell/nushell/pull/12151) + - [Minor refactor in `to html`](https://github.com/nushell/nushell/pull/12172) + - [Remove the rarely used std-lib issue template](https://github.com/nushell/nushell/pull/12173) + - [Bump `arboard` from `3.3.0` to `3.3.2`](https://github.com/nushell/nushell/pull/12178) + - [Refactor benches for more command benchmarks](https://github.com/nushell/nushell/pull/12171) + - [Include benchmarks in the CI clippy run](https://github.com/nushell/nushell/pull/12165) + - [Bump `iana-time-zone` due to yanked locked version](https://github.com/nushell/nushell/pull/12162) + - [Remove outdated doccomment on `EngineState`](https://github.com/nushell/nushell/pull/12158) + - [Bump `reedline` to dev (and `strum`)](https://github.com/nushell/nushell/pull/12150) + - [Restructure `nu-protocol` in more meaningful units](https://github.com/nushell/nushell/pull/11917) + - [Remove feat `extra` and include in default](https://github.com/nushell/nushell/pull/12140) + - [Reschedule dependabot PR opening to Wednesday](https://github.com/nushell/nushell/pull/12082) + - [Bump version to `0.91.1`](https://github.com/nushell/nushell/pull/12085) - [merelymyself](https://github.com/merelymyself) created - - [Make autocd return exit code 0](https://github.com/nushell/nushell/pull/12337) - - [Exposed the recursion limit value as a config option](https://github.com/nushell/nushell/pull/12308) + - [Make autocd return exit code 0](https://github.com/nushell/nushell/pull/12337) + - [Exposed the recursion limit value as a config option](https://github.com/nushell/nushell/pull/12308) - [devyn](https://github.com/devyn) created - - [Remove serde derive for `ShellError`, replace via `LabeledError`](https://github.com/nushell/nushell/pull/12319) - - [Fix build of nu-protocol without plugin feature enabled](https://github.com/nushell/nushell/pull/12323) - - [Change PluginCommand API to be more like Command](https://github.com/nushell/nushell/pull/12279) - - [Add example tests (nu-plugin-test-support) for plugins in repo](https://github.com/nushell/nushell/pull/12281) - - [Fix #12280: replace `difference` crate with `similar`](https://github.com/nushell/nushell/pull/12282) - - [Make some of the stream tests more robust against bad timeouts](https://github.com/nushell/nushell/pull/12271) - - [Support for getting help text from a plugin command](https://github.com/nushell/nushell/pull/12243) - - [Add test support crate for plugin developers](https://github.com/nushell/nushell/pull/12259) - - [Misc doc fixes](https://github.com/nushell/nushell/pull/12266) - - [Better generic errors for plugins (and perhaps scripts)](https://github.com/nushell/nushell/pull/12236) - - [Address feedback from PR #12229](https://github.com/nushell/nushell/pull/12242) - - [Refactor `PluginCustomValue::render_to_base_value_in`](https://github.com/nushell/nushell/pull/12244) - - [Refactor PipelineDataHeader ⇄ PipelineData mapping](https://github.com/nushell/nushell/pull/12248) - - [Make EngineState clone cheaper with Arc on all of the heavy objects](https://github.com/nushell/nushell/pull/12229) - - [Merge stream_example into example plugin and clean up names](https://github.com/nushell/nushell/pull/12234) - - [Fix broken build: replace value_string() straggler](https://github.com/nushell/nushell/pull/12237) - - [Make custom value type handling more consistent](https://github.com/nushell/nushell/pull/12230) - - [Support `into string` for custom values](https://github.com/nushell/nushell/pull/12231) - - [Support for custom values in plugin examples](https://github.com/nushell/nushell/pull/12213) - - [Fix zip signature to mention closure input type](https://github.com/nushell/nushell/pull/12216) - - [Add `Value::recurse_mut()` to save duplicated code in `PluginCustomValue`](https://github.com/nushell/nushell/pull/12218) - - [Allow plugins to set environment variables in their caller's scope](https://github.com/nushell/nushell/pull/12204) - - [Reorganize plugin API around commands](https://github.com/nushell/nushell/pull/12170) - - [MsgPack deserializer: improve handling of EOF](https://github.com/nushell/nushell/pull/12183) - - [More robustness improvements to plugin persistence tests](https://github.com/nushell/nushell/pull/12185) - - [Fix locking soundness in PersistentPlugin](https://github.com/nushell/nushell/pull/12182) - - [Disable plugin GC tests on macOS](https://github.com/nushell/nushell/pull/12177) - - [Add environment engine calls for plugins](https://github.com/nushell/nushell/pull/12166) - - [Sync with the plugin garbage collector when setting config](https://github.com/nushell/nushell/pull/12152) - - [Support for all custom value operations on plugin custom values](https://github.com/nushell/nushell/pull/12088) - - [Make the plugin persistence GC delay test more reliable](https://github.com/nushell/nushell/pull/12153) - - [Fix unused IntoSpanned warning in nu_parser::parse_keywords when 'plugin' feature not enabled](https://github.com/nushell/nushell/pull/12144) - - [Keep plugins persistently running in the background](https://github.com/nushell/nushell/pull/12064) - - [Add support for engine calls from plugins](https://github.com/nushell/nushell/pull/12029) - - [Improve the error message for a plugin version mismatch](https://github.com/nushell/nushell/pull/12122) - - [Change the ignore command to use drain() instead of collecting a value](https://github.com/nushell/nushell/pull/12120) + - [Remove serde derive for `ShellError`, replace via `LabeledError`](https://github.com/nushell/nushell/pull/12319) + - [Fix build of nu-protocol without plugin feature enabled](https://github.com/nushell/nushell/pull/12323) + - [Change PluginCommand API to be more like Command](https://github.com/nushell/nushell/pull/12279) + - [Add example tests (nu-plugin-test-support) for plugins in repo](https://github.com/nushell/nushell/pull/12281) + - [Fix #12280: replace `difference` crate with `similar`](https://github.com/nushell/nushell/pull/12282) + - [Make some of the stream tests more robust against bad timeouts](https://github.com/nushell/nushell/pull/12271) + - [Support for getting help text from a plugin command](https://github.com/nushell/nushell/pull/12243) + - [Add test support crate for plugin developers](https://github.com/nushell/nushell/pull/12259) + - [Misc doc fixes](https://github.com/nushell/nushell/pull/12266) + - [Better generic errors for plugins (and perhaps scripts)](https://github.com/nushell/nushell/pull/12236) + - [Address feedback from PR #12229](https://github.com/nushell/nushell/pull/12242) + - [Refactor `PluginCustomValue::render_to_base_value_in`](https://github.com/nushell/nushell/pull/12244) + - [Refactor PipelineDataHeader ⇄ PipelineData mapping](https://github.com/nushell/nushell/pull/12248) + - [Make EngineState clone cheaper with Arc on all of the heavy objects](https://github.com/nushell/nushell/pull/12229) + - [Merge stream_example into example plugin and clean up names](https://github.com/nushell/nushell/pull/12234) + - [Fix broken build: replace value_string() straggler](https://github.com/nushell/nushell/pull/12237) + - [Make custom value type handling more consistent](https://github.com/nushell/nushell/pull/12230) + - [Support `into string` for custom values](https://github.com/nushell/nushell/pull/12231) + - [Support for custom values in plugin examples](https://github.com/nushell/nushell/pull/12213) + - [Fix zip signature to mention closure input type](https://github.com/nushell/nushell/pull/12216) + - [Add `Value::recurse_mut()` to save duplicated code in `PluginCustomValue`](https://github.com/nushell/nushell/pull/12218) + - [Allow plugins to set environment variables in their caller's scope](https://github.com/nushell/nushell/pull/12204) + - [Reorganize plugin API around commands](https://github.com/nushell/nushell/pull/12170) + - [MsgPack deserializer: improve handling of EOF](https://github.com/nushell/nushell/pull/12183) + - [More robustness improvements to plugin persistence tests](https://github.com/nushell/nushell/pull/12185) + - [Fix locking soundness in PersistentPlugin](https://github.com/nushell/nushell/pull/12182) + - [Disable plugin GC tests on macOS](https://github.com/nushell/nushell/pull/12177) + - [Add environment engine calls for plugins](https://github.com/nushell/nushell/pull/12166) + - [Sync with the plugin garbage collector when setting config](https://github.com/nushell/nushell/pull/12152) + - [Support for all custom value operations on plugin custom values](https://github.com/nushell/nushell/pull/12088) + - [Make the plugin persistence GC delay test more reliable](https://github.com/nushell/nushell/pull/12153) + - [Fix unused IntoSpanned warning in nu_parser::parse_keywords when 'plugin' feature not enabled](https://github.com/nushell/nushell/pull/12144) + - [Keep plugins persistently running in the background](https://github.com/nushell/nushell/pull/12064) + - [Add support for engine calls from plugins](https://github.com/nushell/nushell/pull/12029) + - [Improve the error message for a plugin version mismatch](https://github.com/nushell/nushell/pull/12122) + - [Change the ignore command to use drain() instead of collecting a value](https://github.com/nushell/nushell/pull/12120) - [WindSoilder](https://github.com/WindSoilder) created - - [detect columns: intruduce a --guess flag, remove --legacy](https://github.com/nushell/nushell/pull/12333) - - [Change default algorithm in `detect columns`](https://github.com/nushell/nushell/pull/12277) - - [ls, rm, cp, open, touch, mkdir: Don't expand tilde if input path is quoted string or a variable.](https://github.com/nushell/nushell/pull/12232) - - [remove str escape-glob command](https://github.com/nushell/nushell/pull/12241) - - [remove test warnings](https://github.com/nushell/nushell/pull/12201) - - [clean cp tests](https://github.com/nushell/nushell/pull/12202) - - [`do` command: Make closure support default parameters and type checking](https://github.com/nushell/nushell/pull/12056) - - [fix ls with empty string](https://github.com/nushell/nushell/pull/12086) + - [detect columns: intruduce a --guess flag, remove --legacy](https://github.com/nushell/nushell/pull/12333) + - [Change default algorithm in `detect columns`](https://github.com/nushell/nushell/pull/12277) + - [ls, rm, cp, open, touch, mkdir: Don't expand tilde if input path is quoted string or a variable.](https://github.com/nushell/nushell/pull/12232) + - [remove str escape-glob command](https://github.com/nushell/nushell/pull/12241) + - [remove test warnings](https://github.com/nushell/nushell/pull/12201) + - [clean cp tests](https://github.com/nushell/nushell/pull/12202) + - [`do` command: Make closure support default parameters and type checking](https://github.com/nushell/nushell/pull/12056) + - [fix ls with empty string](https://github.com/nushell/nushell/pull/12086) - [dead10ck](https://github.com/dead10ck) created - - [into sqlite: Fix insertion of null values](https://github.com/nushell/nushell/pull/12328) + - [into sqlite: Fix insertion of null values](https://github.com/nushell/nushell/pull/12328) - [fdncred](https://github.com/fdncred) created - - [add a few more logging statements for debugging startup](https://github.com/nushell/nushell/pull/12316) - - [keep sqlparser at 39 until polars is upgraded](https://github.com/nushell/nushell/pull/12311) - - [cleanup coreutils tagging](https://github.com/nushell/nushell/pull/12286) - - [bump rust-toolchain to 1.75.0](https://github.com/nushell/nushell/pull/12258) - - [remove stdlib logging env variables](https://github.com/nushell/nushell/pull/12196) - - [Revert "fix: now sqlite insert handles column names as expected"](https://github.com/nushell/nushell/pull/12112) - - [fix `du` `--exclude` globbing bug](https://github.com/nushell/nushell/pull/12093) + - [add a few more logging statements for debugging startup](https://github.com/nushell/nushell/pull/12316) + - [keep sqlparser at 39 until polars is upgraded](https://github.com/nushell/nushell/pull/12311) + - [cleanup coreutils tagging](https://github.com/nushell/nushell/pull/12286) + - [bump rust-toolchain to 1.75.0](https://github.com/nushell/nushell/pull/12258) + - [remove stdlib logging env variables](https://github.com/nushell/nushell/pull/12196) + - [Revert "fix: now sqlite insert handles column names as expected"](https://github.com/nushell/nushell/pull/12112) + - [fix `du` `--exclude` globbing bug](https://github.com/nushell/nushell/pull/12093) - [AucaCoyan](https://github.com/AucaCoyan) created - - [:recycle: rework some help strings](https://github.com/nushell/nushell/pull/12306) - - [:bug: remove 3 backticks messing the `hover`](https://github.com/nushell/nushell/pull/12273) + - [:recycle: rework some help strings](https://github.com/nushell/nushell/pull/12306) + - [:bug: remove 3 backticks messing the `hover`](https://github.com/nushell/nushell/pull/12273) - [app/dependabot](https://github.com/app/dependabot) created - - [Bump sqlparser from 0.43.1 to 0.44.0](https://github.com/nushell/nushell/pull/12302) - - [Bump ical from 0.10.0 to 0.11.0](https://github.com/nushell/nushell/pull/12303) - - [Bump rayon from 1.9.0 to 1.10.0](https://github.com/nushell/nushell/pull/12301) - - [Bump base64 from 0.21.7 to 0.22.0](https://github.com/nushell/nushell/pull/12188) - - [Bump heck from 0.4.1 to 0.5.0](https://github.com/nushell/nushell/pull/12187) - - [Bump uuid from 1.7.0 to 1.8.0](https://github.com/nushell/nushell/pull/12246) - - [Bump rayon from 1.8.1 to 1.9.0](https://github.com/nushell/nushell/pull/12186) - - [Bump miette from 7.1.0 to 7.2.0](https://github.com/nushell/nushell/pull/12189) - - [Bump softprops/action-gh-release from 2.0.1 to 2.0.4](https://github.com/nushell/nushell/pull/12191) - - [Bump actions/checkout from 4.1.1 to 4.1.2](https://github.com/nushell/nushell/pull/12192) - - [Bump windows from 0.52.0 to 0.54.0](https://github.com/nushell/nushell/pull/12037) - - [Bump scraper from 0.18.1 to 0.19.0](https://github.com/nushell/nushell/pull/12060) - - [Bump open from 5.0.1 to 5.1.1](https://github.com/nushell/nushell/pull/12061) - - [Bump mockito from 1.3.0 to 1.4.0](https://github.com/nushell/nushell/pull/12063) + - [Bump sqlparser from 0.43.1 to 0.44.0](https://github.com/nushell/nushell/pull/12302) + - [Bump ical from 0.10.0 to 0.11.0](https://github.com/nushell/nushell/pull/12303) + - [Bump rayon from 1.9.0 to 1.10.0](https://github.com/nushell/nushell/pull/12301) + - [Bump base64 from 0.21.7 to 0.22.0](https://github.com/nushell/nushell/pull/12188) + - [Bump heck from 0.4.1 to 0.5.0](https://github.com/nushell/nushell/pull/12187) + - [Bump uuid from 1.7.0 to 1.8.0](https://github.com/nushell/nushell/pull/12246) + - [Bump rayon from 1.8.1 to 1.9.0](https://github.com/nushell/nushell/pull/12186) + - [Bump miette from 7.1.0 to 7.2.0](https://github.com/nushell/nushell/pull/12189) + - [Bump softprops/action-gh-release from 2.0.1 to 2.0.4](https://github.com/nushell/nushell/pull/12191) + - [Bump actions/checkout from 4.1.1 to 4.1.2](https://github.com/nushell/nushell/pull/12192) + - [Bump windows from 0.52.0 to 0.54.0](https://github.com/nushell/nushell/pull/12037) + - [Bump scraper from 0.18.1 to 0.19.0](https://github.com/nushell/nushell/pull/12060) + - [Bump open from 5.0.1 to 5.1.1](https://github.com/nushell/nushell/pull/12061) + - [Bump mockito from 1.3.0 to 1.4.0](https://github.com/nushell/nushell/pull/12063) - [FilipAndersson245](https://github.com/FilipAndersson245) created - - [Fixes broken bench](https://github.com/nushell/nushell/pull/12297) - - [Boxes record for smaller Value enum.](https://github.com/nushell/nushell/pull/12252) - - [Divan extra benchmarks](https://github.com/nushell/nushell/pull/12025) + - [Fixes broken bench](https://github.com/nushell/nushell/pull/12297) + - [Boxes record for smaller Value enum.](https://github.com/nushell/nushell/pull/12252) + - [Divan extra benchmarks](https://github.com/nushell/nushell/pull/12025) - [dmatos2012](https://github.com/dmatos2012) created - - [Initial implementation for uutils uname](https://github.com/nushell/nushell/pull/11684) + - [Initial implementation for uutils uname](https://github.com/nushell/nushell/pull/11684) - [schrieveslaach](https://github.com/schrieveslaach) created - - [Send LSP Completion Item Kind](https://github.com/nushell/nushell/pull/11443) + - [Send LSP Completion Item Kind](https://github.com/nushell/nushell/pull/11443) - [Dorumin](https://github.com/Dorumin) created - - [Initial --params implementation](https://github.com/nushell/nushell/pull/12249) + - [Initial --params implementation](https://github.com/nushell/nushell/pull/12249) - [abusch](https://github.com/abusch) created - - [Move more dependencies to workspace level](https://github.com/nushell/nushell/pull/12270) - - [Introduce workspace dependencies](https://github.com/nushell/nushell/pull/12043) + - [Move more dependencies to workspace level](https://github.com/nushell/nushell/pull/12270) + - [Introduce workspace dependencies](https://github.com/nushell/nushell/pull/12043) - [zhiburt](https://github.com/zhiburt) created - - [nu-explore/ Use hex-dump for binary data](https://github.com/nushell/nushell/pull/12184) + - [nu-explore/ Use hex-dump for binary data](https://github.com/nushell/nushell/pull/12184) - [lavafroth](https://github.com/lavafroth) created - - [fix: use environment variables to prevent command_not_found from recursing](https://github.com/nushell/nushell/pull/11090) + - [fix: use environment variables to prevent command_not_found from recursing](https://github.com/nushell/nushell/pull/11090) - [YizhePKU](https://github.com/YizhePKU) created - - [Fix: missing parse error when extra tokens are given to let bindings](https://github.com/nushell/nushell/pull/12238) - - [Fix inaccurate sleep duration](https://github.com/nushell/nushell/pull/12235) + - [Fix: missing parse error when extra tokens are given to let bindings](https://github.com/nushell/nushell/pull/12238) + - [Fix inaccurate sleep duration](https://github.com/nushell/nushell/pull/12235) - [dannou812](https://github.com/dannou812) created - - [`to json -r` not removing whitespaces fix](https://github.com/nushell/nushell/pull/11948) + - [`to json -r` not removing whitespaces fix](https://github.com/nushell/nushell/pull/11948) - [JoaoFidalgo1403](https://github.com/JoaoFidalgo1403) created - - [Fix usage of --tabs flag while converting to json](https://github.com/nushell/nushell/pull/12251) + - [Fix usage of --tabs flag while converting to json](https://github.com/nushell/nushell/pull/12251) - [Tastaturtaste](https://github.com/Tastaturtaste) created - - [Use the system clipboard only for explicit copy/paste operations. Addresses issue 11907](https://github.com/nushell/nushell/pull/12179) + - [Use the system clipboard only for explicit copy/paste operations. Addresses issue 11907](https://github.com/nushell/nushell/pull/12179) - [sarubo](https://github.com/sarubo) created - - [Adjust permissions using `umask` in `mkdir`](https://github.com/nushell/nushell/pull/12207) + - [Adjust permissions using `umask` in `mkdir`](https://github.com/nushell/nushell/pull/12207) - [thomassimmer](https://github.com/thomassimmer) created - - [Fix histogram error message](https://github.com/nushell/nushell/pull/12197) + - [Fix histogram error message](https://github.com/nushell/nushell/pull/12197) - [ysthakur](https://github.com/ysthakur) created - - [Canonicalize each component of config files](https://github.com/nushell/nushell/pull/12167) - - [Use XDG_CONFIG_HOME before default config directory](https://github.com/nushell/nushell/pull/12118) - - [Canonicalize config dir](https://github.com/nushell/nushell/pull/12136) - - [Update tests Playground](https://github.com/nushell/nushell/pull/12134) + - [Canonicalize each component of config files](https://github.com/nushell/nushell/pull/12167) + - [Use XDG_CONFIG_HOME before default config directory](https://github.com/nushell/nushell/pull/12118) + - [Canonicalize config dir](https://github.com/nushell/nushell/pull/12136) + - [Update tests Playground](https://github.com/nushell/nushell/pull/12134) - [nils-degroot](https://github.com/nils-degroot) created - - [Improve error message for `into sqlite` with empty records](https://github.com/nushell/nushell/pull/12149) + - [Improve error message for `into sqlite` with empty records](https://github.com/nushell/nushell/pull/12149) - [kubouch](https://github.com/kubouch) created - - [Refactor nu-check](https://github.com/nushell/nushell/pull/12137) - - [Debugger experiments](https://github.com/nushell/nushell/pull/11441) + - [Refactor nu-check](https://github.com/nushell/nushell/pull/12137) + - [Debugger experiments](https://github.com/nushell/nushell/pull/11441) - [rtpg](https://github.com/rtpg) created - - [Allow for stacks to have parents](https://github.com/nushell/nushell/pull/11654) + - [Allow for stacks to have parents](https://github.com/nushell/nushell/pull/11654) - [hustcer](https://github.com/hustcer) created - - [Upgrade actions/checkout and softprops/action-gh-release](https://github.com/nushell/nushell/pull/12135) - - [Fix Nu release packages after upgrading to Nu v0.91](https://github.com/nushell/nushell/pull/12119) - - [Upgrade Nu to v0.91 for release and nightly workflow](https://github.com/nushell/nushell/pull/12114) + - [Upgrade actions/checkout and softprops/action-gh-release](https://github.com/nushell/nushell/pull/12135) + - [Fix Nu release packages after upgrading to Nu v0.91](https://github.com/nushell/nushell/pull/12119) + - [Upgrade Nu to v0.91 for release and nightly workflow](https://github.com/nushell/nushell/pull/12114) - [rgwood](https://github.com/rgwood) created - - [Fix up ctrl+C handling in `into_sqlite`](https://github.com/nushell/nushell/pull/12130) - - [Remove unused/incorrect input type from `start`](https://github.com/nushell/nushell/pull/12107) + - [Fix up ctrl+C handling in `into_sqlite`](https://github.com/nushell/nushell/pull/12130) + - [Remove unused/incorrect input type from `start`](https://github.com/nushell/nushell/pull/12107) - [NowackiPatryk](https://github.com/NowackiPatryk) created - - [Fix unexpected sqlite insert behaviour (attempt 2)](https://github.com/nushell/nushell/pull/12128) - - [fix: now sqlite insert handles column names as expected](https://github.com/nushell/nushell/pull/12039) + - [Fix unexpected sqlite insert behaviour (attempt 2)](https://github.com/nushell/nushell/pull/12128) + - [fix: now sqlite insert handles column names as expected](https://github.com/nushell/nushell/pull/12039) - [wellweek](https://github.com/wellweek) created - - [remove repetitive word](https://github.com/nushell/nushell/pull/12117) + - [remove repetitive word](https://github.com/nushell/nushell/pull/12117) - [VlkrS](https://github.com/VlkrS) created - - [Fix build on OpenBSD](https://github.com/nushell/nushell/pull/12111) + - [Fix build on OpenBSD](https://github.com/nushell/nushell/pull/12111) - [dj-sourbrough](https://github.com/dj-sourbrough) created - - [Fix: lex now throws error on unbalanced closing parentheses (issue #11982)](https://github.com/nushell/nushell/pull/12098) + - [Fix: lex now throws error on unbalanced closing parentheses (issue #11982)](https://github.com/nushell/nushell/pull/12098) - [NotTheDr01ds](https://github.com/NotTheDr01ds) created - - [Fix: Convert help example results to text](https://github.com/nushell/nushell/pull/12078) + - [Fix: Convert help example results to text](https://github.com/nushell/nushell/pull/12078) diff --git a/blog/2025-04-29-nushell_0_104_0.md b/blog/2025-04-29-nushell_0_104_0.md index e96931f42b6..f5decf649b5 100644 --- a/blog/2025-04-29-nushell_0_104_0.md +++ b/blog/2025-04-29-nushell_0_104_0.md @@ -20,52 +20,49 @@ As part of this release, we also publish a set of optional [plugins](https://www # Table of contents -- [Nushell 0.104.0](#nushell-01040) -- [Where to get it](#where-to-get-it) -- [Table of contents](#table-of-contents) -- [Highlights and themes of this release \[toc\]](#highlights-and-themes-of-this-release-toc) - - [New Job-Control Features \[toc\]](#new-job-control-features-toc) - - [Inter-Job Messaging (Experimental) \[toc\]](#inter-job-messaging-experimental-toc) - - [Job tags \[toc\]](#job-tags-toc) - - [New `datetime` and `duration` Features \[toc\]](#new-datetime-and-duration-features-toc) - - [New `date from-human` command \[toc\]](#new-date-from-human-command-toc) - - [`into datetime` now accepts a record \[toc\]](#into-datetime-now-accepts-a-record-toc) - - [`into duration` now accepts a record \[toc\]](#into-duration-now-accepts-a-record-toc) - - [`into datetime --format` can now parse dates and times separately \[toc\]](#into-datetime---format-can-now-parse-dates-and-times-separately-toc) - - [`into duration` now accepts floats \[toc\]](#into-duration-now-accepts-floats-toc) - - [New Polars commands \[toc\]](#new-polars-commands-toc) -- [Changes \[toc\]](#changes-toc) - - [Additions \[toc\]](#additions-toc) - - [`kill` now accepts list spreading \[toc\]](#kill-now-accepts-list-spreading-toc) - - [Custom indicator for missing table values \[toc\]](#custom-indicator-for-missing-table-values-toc) - - [Some `math` commands now work with bounded ranges \[toc\]](#some-math-commands-now-work-with-bounded-ranges-toc) - - [The executable directory is now added to `$NU_PLUGIN_DIRS` by default \[toc\]](#the-executable-directory-is-now-added-to-nu_plugin_dirs-by-default-toc) - - [`env-conversions` helpers added to the standard library \[toc\]](#env-conversions-helpers-added-to-the-standard-library-toc) - - [Proxy support for `http` commands \[toc\]](#proxy-support-for-http-commands-toc) - - [Tab completion when importing the standard library and its exports \[toc\]](#tab-completion-when-importing-the-standard-library-and-its-exports-toc) - - [New columns available from `ps -l` on macOS \[toc\]](#new-columns-available-from-ps--l-on-macos-toc) - - [LSP: Snippet-style completions \[toc\]](#lsp-snippet-style-completions-toc) - - [`debug --raw-value` \[toc\]](#debug---raw-value-toc) - - [More info from `describe --detailed` \[toc\]](#more-info-from-describe---detailed-toc) - - [Support `PATHEXT` for additional extensions on Windows \[toc\]](#support-pathext-for-additional-extensions-on-windows-toc) - - [Execute Nushell scripts on the Path in Windows \[toc\]](#execute-nushell-scripts-on-the-path-in-windows-toc) - - [New flag `glob --follow-symlinks` \[toc\]](#new-flag-glob---follow-symlinks-toc) - - [Substring match algorithm \[toc\]](#substring-match-algorithm-toc) - - [Breaking changes \[toc\]](#breaking-changes-toc) - - [Parse human date time explicitly \[toc\]](#parse-human-date-time-explicitly-toc) - - [`str join` formatting for `datetime` values has changed \[toc\]](#str-join-formatting-for-datetime-values-has-changed-toc) - - [`history` with sqlite uses datetimes now \[toc\]](#history-with-sqlite-uses-datetimes-now-toc) - - [`date` is now `datetime` \[toc\]](#date-is-now-datetime-toc) - - [Deprecations \[toc\]](#deprecations-toc) - - [`positional` completer option \[toc\]](#positional-completer-option-toc) - - [Removals \[toc\]](#removals-toc) - - [Removed `-s` and `-p` in `do` \[toc\]](#removed--s-and--p-in-do-toc) - - [Bug fixes and other changes \[toc\]](#bug-fixes-and-other-changes-toc) -- [Notes for plugin developers \[toc\]](#notes-for-plugin-developers-toc) - - [Convert `IoError` into `LabeledError` \[toc\]](#convert-ioerror-into-labelederror-toc) - - [New Repo for Plugin Examples \[toc\]](#new-repo-for-plugin-examples-toc) -- [Hall of fame \[toc\]](#hall-of-fame-toc) -- [Full changelog \[toc\]](#full-changelog-toc) +- [_Highlights and themes of this release_](#highlights-and-themes-of-this-release-toc) + - [_New Job-Control Features_](#new-job-control-features-toc) + - [_Inter-Job Messaging (Experimental)_](#inter-job-messaging-experimental-toc) + - [_Job tags_](#job-tags-toc) + - [_New `datetime` and `duration` Features_](#new-datetime-and-duration-features-toc) + - [_New `date from-human` command_](#new-date-from-human-command-toc) + - [_`into datetime` now accepts a record_](#into-datetime-now-accepts-a-record-toc) + - [_`into duration` now accepts a record_](#into-duration-now-accepts-a-record-toc) + - [_`into datetime --format` can now parse dates and times separately_](#into-datetime-format-can-now-parse-dates-and-times-separately-toc) + - [_`into duration` now accepts floats_](#into-duration-now-accepts-floats-toc) + - [_New Polars commands_](#new-polars-commands-toc) +- [_Changes_](#changes-toc) + - [_Additions_](#additions-toc) + - [_`kill` now accepts list spreading_](#kill-now-accepts-list-spreading-toc) + - [_Custom indicator for missing table values_](#custom-indicator-for-missing-table-values-toc) + - [_Some `math` commands now work with bounded ranges_](#some-math-commands-now-work-with-bounded-ranges-toc) + - [_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) + - [_`env-conversions` helpers added to the standard library_](#env-conversions-helpers-added-to-the-standard-library-toc) + - [_Proxy support for `http` commands_](#proxy-support-for-http-commands-toc) + - [_Tab completion when importing the standard library and its exports_](#tab-completion-when-importing-the-standard-library-and-its-exports-toc) + - [_New columns available from `ps -l` on macOS_](#new-columns-available-from-ps-l-on-macos-toc) + - [_LSP: Snippet-style completions_](#lsp-snippet-style-completions-toc) + - [_`debug --raw-value`_](#debug-raw-value-toc) + - [_More info from `describe --detailed`_](#more-info-from-describe-detailed-toc) + - [_Support `PATHEXT` for additional extensions on Windows_](#support-pathext-for-additional-extensions-on-windows-toc) + - [_Execute Nushell scripts on the Path in Windows_](#execute-nushell-scripts-on-the-path-in-windows-toc) + - [_New flag `glob --follow-symlinks`_](#new-flag-glob-follow-symlinks-toc) + - [_Substring match algorithm_](#substring-match-algorithm-toc) + - [_Breaking changes_](#breaking-changes-toc) + - [_Parse human date time explicitly_](#parse-human-date-time-explicitly-toc) + - [_`str join` formatting for `datetime` values has changed_](#str-join-formatting-for-datetime-values-has-changed-toc) + - [_`history` with sqlite uses datetimes now_](#history-with-sqlite-uses-datetimes-now-toc) + - [_`date` is now `datetime`_](#date-is-now-datetime-toc) + - [_Deprecations_](#deprecations-toc) + - [_`positional` completer option_](#positional-completer-option-toc) + - [_Removals_](#removals-toc) + - [_Removed `-s` and `-p` in `do`_](#removed-s-and-p-in-do-toc) + - [_Bug fixes and other changes_](#bug-fixes-and-other-changes-toc) +- [_Notes for plugin developers_](#notes-for-plugin-developers-toc) + - [_Convert `IoError` into `LabeledError`_](#convert-ioerror-into-labelederror-toc) + - [_New Repo for Plugin Examples_](#new-repo-for-plugin-examples-toc) +- [_Hall of fame_](#hall-of-fame-toc) +- [_Full changelog_](#full-changelog-toc) # Highlights and themes of this release [[toc](#table-of-contents)]