From c1b86d71eee5e0df2e967e74aac5a6797de10437 Mon Sep 17 00:00:00 2001 From: ysthakur <45539777+ysthakur@users.noreply.github.com> Date: Tue, 18 Mar 2025 23:37:12 -0400 Subject: [PATCH 1/8] Release notes for `0.104.0` Please add your new features and breaking changes to the release notes by opening PRs against the `release-notes-0.104.0` branch. ## TODO - [ ] PRs that need to land before the release, e.g. [deprecations](https://github.com/nushell/nushell/labels/deprecation) or [removals](https://github.com/nushell/nushell/pulls?q=is%3Apr+is%3Aopen+label%3Aremoval-after-deprecation) - [ ] add the full changelog - [ ] categorize each PR - [ ] write all the sections and complete all the `TODO`s --- blog/2025-04-15-nushell_0_104_0.md | 79 ++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 blog/2025-04-15-nushell_0_104_0.md diff --git a/blog/2025-04-15-nushell_0_104_0.md b/blog/2025-04-15-nushell_0_104_0.md new file mode 100644 index 00000000000..43561985d9d --- /dev/null +++ b/blog/2025-04-15-nushell_0_104_0.md @@ -0,0 +1,79 @@ +--- +title: Nushell 0.104.0 +author: The Nu Authors +author_site: https://www.nushell.sh/blog +author_image: https://www.nushell.sh/blog/images/nu_logo.png +excerpt: Today, we're releasing version 0.104.0 of Nu. This release adds... +--- + + + + + +# Nushell 0.104.0 + + + +Today, we're releasing version 0.104.0 of Nu. This release adds... + +# Where to get it + +Nu 0.104.0 is available as [pre-built binaries](https://github.com/nushell/nushell/releases/tag/0.104.0) or from [crates.io](https://crates.io/crates/nu). If you have Rust installed you can install it using `cargo install nu`. + +As part of this release, we also publish a set of optional [plugins](https://www.nushell.sh/book/plugins.html) you can install and use with Nushell. + +# Table of contents + + + +# Highlights and themes of this release + + + + +# Changes + +## Additions + +## Breaking changes + +## Deprecations + +## Removals + +## Bug fixes and other changes + +# Notes for plugin developers + +# Hall of fame + +Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! :pray: + +| author | title | link | +| ------------------------------------ | ----- | ------------------------------------------------------- | +| [@author](https://github.com/author) | ... | [#12345](https://github.com/nushell/nushell/pull/12345) | + +# Full changelog + + From 4cbde110f23e0482ab6c04154e48b3c430b51ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Riegel?= <96702577+LoicRiegel@users.noreply.github.com> Date: Fri, 25 Apr 2025 13:57:21 +0200 Subject: [PATCH 2/8] release notes 0.104.0: datetime handling highlights (#1873) * release notes 0.104.0: datetime handling highlights * fix typos workflow * update after further merges --- blog/2024-01-09-nushell_0_89_0.md | 2 +- blog/2025-04-15-nushell_0_104_0.md | 63 ++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/blog/2024-01-09-nushell_0_89_0.md b/blog/2024-01-09-nushell_0_89_0.md index f827d63fd12..8873eb4c647 100644 --- a/blog/2024-01-09-nushell_0_89_0.md +++ b/blog/2024-01-09-nushell_0_89_0.md @@ -267,7 +267,7 @@ Setting the limits is done via flags available in `help ulimit`. - [Fix the test which fails on windows](https://github.com/nushell/nushell/pull/11478) - [Fix rm for symlinks pointing to directory on windows (issue #11461)](https://github.com/nushell/nushell/pull/11463) - [hustcer](https://github.com/hustcer) created - - [Try to fix riscv64 building by using unbuntu-latest](https://github.com/nushell/nushell/pull/11476) + - [Try to fix riscv64 building by using ubuntu-latest](https://github.com/nushell/nushell/pull/11476) - [Downgrade openssl-src to fix riscv64 build target, close #11345](https://github.com/nushell/nushell/pull/11353) - [rsteube](https://github.com/rsteube) created - [Revert "Return external file completions if not empty (#10898)"](https://github.com/nushell/nushell/pull/11446) diff --git a/blog/2025-04-15-nushell_0_104_0.md b/blog/2025-04-15-nushell_0_104_0.md index 43561985d9d..5be7e3ba12d 100644 --- a/blog/2025-04-15-nushell_0_104_0.md +++ b/blog/2025-04-15-nushell_0_104_0.md @@ -42,6 +42,69 @@ As part of this release, we also publish a set of optional [plugins](https://www for the list of available *containers* --> +## A lot of improvement and bug fixes regarding datetime handling + +Creating durations from non integer numbers used to result in a big loss of precision. This bug is now fixed. +```nushell +~> 1.5wk +# before => 1wk 3day +# now => 1wk 3day 12hr +``` + +Your local timezone is now accurately taken into account when parsing dates: +```nushell +~> "2025-01-01" | into datetime # standard time (winter) +# => Wed, 1 Jan 2025 00:00:00 +0100 (3 months ago) +~> "2025-06-01" | into datetime # daylight saving time (summer) +# => Sun, 1 Jun 2025 00:00:00 +0200 (in 2 months) +``` + +It is now possible to construct a datetime and a duration from a record input. If the timezone is not specified, the local is used. +```nushell +~> {year: 2025, month: 3, day: 30, hour: 12, minute: 15, second: 59, timezone: '+02:00'} | into datetime +# => Sun, 30 Mar 2025 12:15:59 +0200 (2 weeks ago) +~> {week: 10, day: 1, hour: 2, minute: 3, second: 4, millisecond: 5, microsecond: 6, nanosecond: 7, sign: '-'} | into duration +# => +``` + +Parsing a date as DMY is now possible using the `--format` option: +```nushell +~> "25/03/2024" | into datetime --format "%d/%m/%Y" +# => Mon, 25 Mar 2024 00:00:00 +0100 (a year ago) +``` + +The next ones are breaking changes. +```md +::: warning Breaking change +See a full overview of the [breaking changes](#breaking-changes) +::: +``` + +The human readable date parsing has been moved to a dedicated command. +```nushell +date from-human "next Friday at 6pm" +# => 2025-04-18T18:00:00+02:00 +``` + +The ``str join`` command now outputs dates consistently: it is using RFC2822 by default, and RFC3339 for negative dates. +```nushell +~> [ 2024-01-01 ] | str join +# => Mon, 1 Jan 2024 00:00:00 +0000 +~> [ ('3000 years ago' | date from-human) ] | str join +# => -0975-04-23T20:57:56.221269600+00:00 +``` + +Now the ``start_timestamp`` column of the SQLite command history contains datetime instead of strings. +```nushell +~> history | last 2 +# => ╭───┬─────────────────┬─────────────────────┬─────┬─────╮ +# => │ # │ start_timestamp │ command │ cwd │ ... │ +# => ├───┼─────────────────┼─────────────────────┼─────┼─────┤ +# => │ 0 │ a minute ago │ history │ ... │ ... │ +# => │ 1 │ 40 seconds ago │ cd nushell │ ... │ ... │ +# => ╰───┴─────────────────┴─────────────────────┴─────┴─────╯ +``` + # Changes ## Additions From 509267099ea994f2bdcc283475aff2d31d317a34 Mon Sep 17 00:00:00 2001 From: Yash Thakur <45539777+ysthakur@users.noreply.github.com> Date: Mon, 28 Apr 2025 10:32:40 -0400 Subject: [PATCH 3/8] Notes for #15511 (substring match algorithm) (#1896) --- blog/2025-04-15-nushell_0_104_0.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/blog/2025-04-15-nushell_0_104_0.md b/blog/2025-04-15-nushell_0_104_0.md index 5be7e3ba12d..ac235ef3875 100644 --- a/blog/2025-04-15-nushell_0_104_0.md +++ b/blog/2025-04-15-nushell_0_104_0.md @@ -109,10 +109,20 @@ Now the ``start_timestamp`` column of the SQLite command history contains dateti ## Additions +### Substring match algorithm + +In [#15511](https://github.com/nushell/nushell/pull/15511), [@vansh284](https://github.com/vansh284) added the option to use substring matching for completions. Previously, only prefix and fuzzy matching were allowed. Users can now set `$env.config.completions.algorithm` to `"substring"` to enable this. + +Custom completers already had the ability to use substring matching by setting `positional: false` in their [options](https://www.nushell.sh/book/custom_completions.html#options-for-custom-completions). However, `positional` has now been deprecated, and completers should set `completion_algorithm: "substring"` to maintain the same behavior. + ## Breaking changes ## Deprecations +### `positional` completer option + +The `positional` [option](https://www.nushell.sh/book/custom_completions.html#options-for-custom-completions) available to custom completers has been deprecated. See the section about the [Substring match algorithm](#substring-match-algorithm-toc) above for details. + ## Removals ## Bug fixes and other changes From 698daae4fa75aa0d950bb4adb3b0046ae18fc27f Mon Sep 17 00:00:00 2001 From: Tim 'Piepmatz' Hesse Date: Tue, 29 Apr 2025 19:39:56 +0200 Subject: [PATCH 4/8] started sorting PRs for 0.104.0 --- blog/2025-04-15-nushell_0_104_0.md | 165 ++++++++++++++++++++++++++++- 1 file changed, 164 insertions(+), 1 deletion(-) diff --git a/blog/2025-04-15-nushell_0_104_0.md b/blog/2025-04-15-nushell_0_104_0.md index ac235ef3875..b5f26ba5032 100644 --- a/blog/2025-04-15-nushell_0_104_0.md +++ b/blog/2025-04-15-nushell_0_104_0.md @@ -109,6 +109,19 @@ Now the ``start_timestamp`` column of the SQLite command history contains dateti ## Additions +|[@Bahex](https://github.com/Bahex)|feat(table): make missing value symbol configurable|[#15647](https://github.com/nushell/nushell/pull/15647)| +|[@LoicRiegel](https://github.com/LoicRiegel)|feat: into duration accepts floats|[#15297](https://github.com/nushell/nushell/pull/15297)| +|[@LoicRiegel](https://github.com/LoicRiegel)|Math commands can work with bounded ranges and produce list of numbers|[#15319](https://github.com/nushell/nushell/pull/15319)| +|[@LoicRiegel](https://github.com/LoicRiegel)|Feat: construct datetime from record|[#15455](https://github.com/nushell/nushell/pull/15455)| +mention #15370, #15495, #15522, #15544, #15549, #15606 +|[@LoicRiegel](https://github.com/LoicRiegel)|feat: duration from record|[#15600](https://github.com/nushell/nushell/pull/15600)| +|[@MMesch](https://github.com/MMesch)|add polars join_where command|[#15635](https://github.com/nushell/nushell/pull/15635)| +refer #16550 +|[@Mrfiregem](https://github.com/Mrfiregem)|Allow spreading arguments of `kill` command|[#15558](https://github.com/nushell/nushell/pull/15558)| +|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Add current exe directory to default `$NU_PLUGIN_DIRS`|[#15380](https://github.com/nushell/nushell/pull/15380)| +|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Add env-conversions helpers to std|[#15569](https://github.com/nushell/nushell/pull/15569)| + + ### Substring match algorithm In [#15511](https://github.com/nushell/nushell/pull/15511), [@vansh284](https://github.com/vansh284) added the option to use substring matching for completions. Previously, only prefix and fuzzy matching were allowed. Users can now set `$env.config.completions.algorithm` to `"substring"` to enable this. @@ -117,6 +130,12 @@ Custom completers already had the ability to use substring matching by setting ` ## Breaking changes +|[@LoicRiegel](https://github.com/LoicRiegel)|Move human date parsing into new command `date from-human`|[#15495](https://github.com/nushell/nushell/pull/15495)| +|[@LoicRiegel](https://github.com/LoicRiegel)|bugfix: `str join` outputs dates consistently (RFC2822 when possible)|[#15629](https://github.com/nushell/nushell/pull/15629)| +|[@LoicRiegel](https://github.com/LoicRiegel)|history table using sqlite outputs start_timestamp as datetime instead of string|[#15630](https://github.com/nushell/nushell/pull/15630)| +|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Rename user-facing 'date' to 'datetime'|[#15264](https://github.com/nushell/nushell/pull/15264)| + + ## Deprecations ### `positional` completer option @@ -125,17 +144,61 @@ The `positional` [option](https://www.nushell.sh/book/custom_completions.html#op ## Removals +|[@WindSoilder](https://github.com/WindSoilder)|remove -s, -p in do|[#15456](https://github.com/nushell/nushell/pull/15456)| + + ## Bug fixes and other changes +extra attention on this one, but its nothing from the above sections +|[@WindSoilder](https://github.com/WindSoilder)|overlay use: keep PWD after activating the overlay thought file.|[#15566](https://github.com/nushell/nushell/pull/15566)| + + +| author | title | link | +| ------------------------------------ | ----- | ------------------------------------------------------- | +|[@0x4D5352](https://github.com/0x4D5352)|chore: move 'job' to experimental category|[#15568](https://github.com/nushell/nushell/pull/15568)| +|[@IanManske](https://github.com/IanManske)|Don't collect job output|[#15365](https://github.com/nushell/nushell/pull/15365)| +|[@LoicRiegel](https://github.com/LoicRiegel)|Bugfix/into datetime ignores timezone with format|[#15370](https://github.com/nushell/nushell/pull/15370)| +|[@LoicRiegel](https://github.com/LoicRiegel)|bugfix: wrong display of human readable string|[#15522](https://github.com/nushell/nushell/pull/15522)| +|[@LoicRiegel](https://github.com/LoicRiegel)|Bugfix: datetime parsing and local timezones|[#15544](https://github.com/nushell/nushell/pull/15544)| +|[@LoicRiegel](https://github.com/LoicRiegel)|Bugfix chrono panic + hotifx PR15544|[#15549](https://github.com/nushell/nushell/pull/15549)| +|[@LoicRiegel](https://github.com/LoicRiegel)|Bugfix/loss of precision when parsing value with unit|[#15606](https://github.com/nushell/nushell/pull/15606)| +|[@MMesch](https://github.com/MMesch)|fix mistake in description of polars pivot command|[#15621](https://github.com/nushell/nushell/pull/15621)| +|[@Mrfiregem](https://github.com/Mrfiregem)|Fix `path add` bug when given a record|[#15379](https://github.com/nushell/nushell/pull/15379)| +|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Fixes `clip copy` stripping control characters when de-ansifying|[#15428](https://github.com/nushell/nushell/pull/15428)| +|[@SkillFlame](https://github.com/SkillFlame)|Fix #14660: to md breaks on tables with empty values|[#15631](https://github.com/nushell/nushell/pull/15631)| +|[@Tyarel8](https://github.com/Tyarel8)|Fix `kv set` with a closure argument|[#15588](https://github.com/nushell/nushell/pull/15588)| +|[@WindSoilder](https://github.com/WindSoilder)|IR: rasing reasonable error when using subexpression with `and` operator|[#15623](https://github.com/nushell/nushell/pull/15623)| + + # Notes for plugin developers +|[@132ikl](https://github.com/132ikl)|Add From for LabeledError|[#15327](https://github.com/nushell/nushell/pull/15327)| + +new repo: nushell/plugin-examples + + # Hall of fame Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! :pray: | author | title | link | | ------------------------------------ | ----- | ------------------------------------------------------- | -| [@author](https://github.com/author) | ... | [#12345](https://github.com/nushell/nushell/pull/12345) | +|[@0x4D5352](https://github.com/0x4D5352)|replace repeat().take() with repeat_n()|[#15575](https://github.com/nushell/nushell/pull/15575)| +|[@132ikl](https://github.com/132ikl)|Add compile-time assertion of `Value`'s size|[#15362](https://github.com/nushell/nushell/pull/15362)| +|[@132ikl](https://github.com/132ikl)|Add boolean examples to `any` and `all`|[#15442](https://github.com/nushell/nushell/pull/15442)| +|[@AucaCoyan](https://github.com/AucaCoyan)|Add labeler bot|[#15627](https://github.com/nushell/nushell/pull/15627)| +|[@Bahex](https://github.com/Bahex)|docs(explore): Add ":nu" back to the help text|[#15644](https://github.com/nushell/nushell/pull/15644)| +|[@IanManske](https://github.com/IanManske)|Remove `nu-glob`'s dependency on `nu-protocol`|[#15349](https://github.com/nushell/nushell/pull/15349)| +|[@LoicRiegel](https://github.com/LoicRiegel)|refactor: ensure range is bounded|[#15429](https://github.com/nushell/nushell/pull/15429)| +|[@LoicRiegel](https://github.com/LoicRiegel)|Replace some PipelineMismatch by OnlySupportsThisInputType by shell error|[#15447](https://github.com/nushell/nushell/pull/15447)| +|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Ignore problematic overlapping tests for SHLVL|[#15430](https://github.com/nushell/nushell/pull/15430)| +|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Reminder comment to update doc when adding `$nu` constants|[#15481](https://github.com/nushell/nushell/pull/15481)| +|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Revert "Fix `kv set` with a closure argument"|[#15648](https://github.com/nushell/nushell/pull/15648)| +|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Renamed `join_where` to `join-where`|[#15660](https://github.com/nushell/nushell/pull/15660)| +|[@WindSoilder](https://github.com/WindSoilder)|update shadow-rs to version 1|[#15462](https://github.com/nushell/nushell/pull/15462)| +|[@WindSoilder](https://github.com/WindSoilder)|Update rand and rand_chacha to 0.9|[#15463](https://github.com/nushell/nushell/pull/15463)| +|[@WindSoilder](https://github.com/WindSoilder)|Fix clippy|[#15489](https://github.com/nushell/nushell/pull/15489)| +|[@WindSoilder](https://github.com/WindSoilder)|IR: allow subexpression with redirection.|[#15617](https://github.com/nushell/nushell/pull/15617)| # Full changelog @@ -150,3 +213,103 @@ Afterwards, go through each PR and classify it as one of the following: - A documentation improvement, error message improvement, refactoring PR, clippy fix, typo fix, etc. These PRs go into the `# Hall of fame`. You can just copy the table row in this section and paste it to the `# Hall of fame` section above. Note that major refactorings may warrant a section in `# Highlights`. - Dependabot PRs and version bumps should be ignored. They will only be mentioned in `# Full changelog`. --> + +|author|title|link| +|-|-|-| + +Continue sorting these +|[@ayax79](https://github.com/ayax79)|Polars binning commands: cut/qcut|[#15431](https://github.com/nushell/nushell/pull/15431)| +|[@ayax79](https://github.com/ayax79)|Introduction of NuDataType and `polars dtype`|[#15529](https://github.com/nushell/nushell/pull/15529)| +|[@ayax79](https://github.com/ayax79)|Introducing `polars into-schema`|[#15534](https://github.com/nushell/nushell/pull/15534)| +|[@ayax79](https://github.com/ayax79)|Fix output type of `polars schema`|[#15572](https://github.com/nushell/nushell/pull/15572)| +|[@ayax79](https://github.com/ayax79)|fix cannot find issue when performing collect on an eager dataframe|[#15577](https://github.com/nushell/nushell/pull/15577)| +|[@blindFS](https://github.com/blindFS)|feat(completion): stdlib virtual path completion & exportable completion|[#15270](https://github.com/nushell/nushell/pull/15270)| +|[@blindFS](https://github.com/blindFS)|fix(completion): inline defined custom completion|[#15318](https://github.com/nushell/nushell/pull/15318)| +|[@blindFS](https://github.com/blindFS)|fix(lsp): verbose signature help response for less well supported editors|[#15353](https://github.com/nushell/nushell/pull/15353)| +|[@blindFS](https://github.com/blindFS)|fix(parser): skip eval_const if parsing errors detected to avoid panic|[#15364](https://github.com/nushell/nushell/pull/15364)| +|[@blindFS](https://github.com/blindFS)|fix(explore): do not create extra layer for empty entries|[#15367](https://github.com/nushell/nushell/pull/15367)| +|[@blindFS](https://github.com/blindFS)|fix: flatten of empty closures|[#15374](https://github.com/nushell/nushell/pull/15374)| +|[@blindFS](https://github.com/blindFS)|fix(parser): comments in subexpressions of `let`/`mut`|[#15375](https://github.com/nushell/nushell/pull/15375)| +|[@blindFS](https://github.com/blindFS)|fix: command `open` sets default flags when calling "from xxx" converters|[#15383](https://github.com/nushell/nushell/pull/15383)| +|[@blindFS](https://github.com/blindFS)|fix(completion): ls_color for `~/xxx` symlinks|[#15403](https://github.com/nushell/nushell/pull/15403)| +|[@blindFS](https://github.com/blindFS)|fix(completion): completions.external.enable config option not respected|[#15443](https://github.com/nushell/nushell/pull/15443)| +|[@blindFS](https://github.com/blindFS)|feat(lsp): parse_warnings in diagnostics report|[#15449](https://github.com/nushell/nushell/pull/15449)| +|[@blindFS](https://github.com/blindFS)|fix(lsp): more accurate PWD: from env -> parent dir of current file|[#15470](https://github.com/nushell/nushell/pull/15470)| +|[@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)|feat(lsp): snippet style completion for commands|[#15494](https://github.com/nushell/nushell/pull/15494)| +|[@blindFS](https://github.com/blindFS)|fix(lsp): keywords in completion snippets|[#15499](https://github.com/nushell/nushell/pull/15499)| +|[@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)|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)|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)| +|[@blindFS](https://github.com/blindFS)|fix(lsp): a panic caused by completion with decl_id out of range|[#15576](https://github.com/nushell/nushell/pull/15576)| +|[@blindFS](https://github.com/blindFS)|fix(lsp): regression of semantic tokens of module-prefixed commands|[#15603](https://github.com/nushell/nushell/pull/15603)| +|[@cosineblast](https://github.com/cosineblast)|Inter-Job direct messaging |[#15253](https://github.com/nushell/nushell/pull/15253)| +|[@cosineblast](https://github.com/cosineblast)|Add job tags|[#15555](https://github.com/nushell/nushell/pull/15555)| +|[@cosineblast](https://github.com/cosineblast)|`config` commands now add frozen jobs to job table|[#15556](https://github.com/nushell/nushell/pull/15556)| +|[@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)| +|[@fdncred](https://github.com/fdncred)|bump uutils crates to 0.0.30|[#15316](https://github.com/nushell/nushell/pull/15316)| +|[@fdncred](https://github.com/fdncred)|add more columns to macos `ps -l`|[#15341](https://github.com/nushell/nushell/pull/15341)| +|[@fdncred](https://github.com/fdncred)|update human-date-parser to 3.0|[#15426](https://github.com/nushell/nushell/pull/15426)| +|[@fdncred](https://github.com/fdncred)|bump to the latest rust version|[#15483](https://github.com/nushell/nushell/pull/15483)| +|[@fdncred](https://github.com/fdncred)|Revert "Fix #15394 for `table -e` wrapping issue"|[#15498](https://github.com/nushell/nushell/pull/15498)| +|[@fdncred](https://github.com/fdncred)|fix `datetime-diff` so that it reports ms, us, ns as well|[#15537](https://github.com/nushell/nushell/pull/15537)| +|[@fdncred](https://github.com/fdncred)|add `--raw-value` option to `debug` command|[#15581](https://github.com/nushell/nushell/pull/15581)| +|[@fdncred](https://github.com/fdncred)|add more details to `decribe -d`|[#15591](https://github.com/nushell/nushell/pull/15591)| +|[@fdncred](https://github.com/fdncred)|bump reedline to 75f2c50|[#15659](https://github.com/nushell/nushell/pull/15659)| +|[@fennewald](https://github.com/fennewald)|Limit Allowed `serde_json` Versions to Match Usage|[#15504](https://github.com/nushell/nushell/pull/15504)| +|[@g2p](https://github.com/g2p)|Upgrade calamine dependency to fix zip semver breakage|[#15657](https://github.com/nushell/nushell/pull/15657)| +|[@hfrentzel](https://github.com/hfrentzel)|Run scripts of any file extension in PATHEXT on Windows|[#15611](https://github.com/nushell/nushell/pull/15611)| +|[@hustcer](https://github.com/hustcer)|Fix upgrading and checking of typos|[#15454](https://github.com/nushell/nushell/pull/15454)| +|[@hustcer](https://github.com/hustcer)|Update Nu to 0.103.0 for release workflow and improve Windows OS checks|[#15625](https://github.com/nushell/nushell/pull/15625)| +|[@jjflash95](https://github.com/jjflash95)|Fix #15440 default --empty fails at empty streams|[#15562](https://github.com/nushell/nushell/pull/15562)| +|[@kidrigger](https://github.com/kidrigger)|Fix examples about RFC3339 format in `date now` and `format date`.|[#15563](https://github.com/nushell/nushell/pull/15563)| +|[@lazenga](https://github.com/lazenga)|Fix #13546: Outer joins incorrectly removing unmatched rows|[#15472](https://github.com/nushell/nushell/pull/15472)| +|[@migraine-user](https://github.com/migraine-user)|Fix typo in doc_config.nu + small description |[#15461](https://github.com/nushell/nushell/pull/15461)| +|[@mokurin000](https://github.com/mokurin000)|fix(nu-command): support ACL, SELinux, e.g. in cd have_permission check|[#15360](https://github.com/nushell/nushell/pull/15360)| +|[@mztikk](https://github.com/mztikk)|Consider PATH when running command is nuscript in windows|[#15486](https://github.com/nushell/nushell/pull/15486)| +|[@pyz4](https://github.com/pyz4)|`polars cast`: add decimal option for dtype parameter|[#15464](https://github.com/nushell/nushell/pull/15464)| +|[@pyz4](https://github.com/pyz4)|`polars into-df`/`polars into-lazy`: `--schema` will not throw error if only some columns are defined|[#15473](https://github.com/nushell/nushell/pull/15473)| +|[@pyz4](https://github.com/pyz4)|FIX `polars as-datetime`: ignores timezone information on conversion|[#15490](https://github.com/nushell/nushell/pull/15490)| +|[@pyz4](https://github.com/pyz4)|`polars`: add new command `polars replace-time-zone`|[#15538](https://github.com/nushell/nushell/pull/15538)| +|[@pyz4](https://github.com/pyz4)|`polars`: add new command `polars convert-time-zone`|[#15550](https://github.com/nushell/nushell/pull/15550)| +|[@pyz4](https://github.com/pyz4)|`polars`: add new command `polars over`|[#15551](https://github.com/nushell/nushell/pull/15551)| +|[@pyz4](https://github.com/pyz4)|`polars`: extend `NuExpression::extract_exprs` to handle records|[#15553](https://github.com/nushell/nushell/pull/15553)| +|[@pyz4](https://github.com/pyz4)|`polars`: update `get-` datetime components commands to allow expressions as inputs|[#15557](https://github.com/nushell/nushell/pull/15557)| +|[@pyz4](https://github.com/pyz4)|`polars`: update `polars lit` to handle nushell Value::Duration and Value::Date types|[#15564](https://github.com/nushell/nushell/pull/15564)| +|[@pyz4](https://github.com/pyz4)|`polars`: expand `polars col` to handle multiple columns and by types|[#15570](https://github.com/nushell/nushell/pull/15570)| +|[@pyz4](https://github.com/pyz4)|fix(polars): cast as date now returns Date type instead of Datetime|[#15574](https://github.com/nushell/nushell/pull/15574)| +|[@pyz4](https://github.com/pyz4)|feat(polars): add `polars truncate` for rounding datetimes|[#15582](https://github.com/nushell/nushell/pull/15582)| +|[@pyz4](https://github.com/pyz4)|feat(polars): loosen constraints on accepted expressions in `polars group-by`|[#15583](https://github.com/nushell/nushell/pull/15583)| +|[@pyz4](https://github.com/pyz4)|feat(polars): enable `as_date` and `as_datetime` to handle expressions as inputs|[#15590](https://github.com/nushell/nushell/pull/15590)| +|[@pyz4](https://github.com/pyz4)|feat(polars): add pow (`**`) operator for polars expressions|[#15598](https://github.com/nushell/nushell/pull/15598)| +|[@pyz4](https://github.com/pyz4)|fix(custom_value) + fix(polars): map `//` operator to FloorDivide for custom values and in polars|[#15599](https://github.com/nushell/nushell/pull/15599)| +|[@pyz4](https://github.com/pyz4)|fix(polars): remove requirement that pivot columns must be same type in `polars pivot`|[#15608](https://github.com/nushell/nushell/pull/15608)| +|[@pyz4](https://github.com/pyz4)|feat(polars): enable parsing decimals in polars schemas|[#15632](https://github.com/nushell/nushell/pull/15632)| +|[@pyz4](https://github.com/pyz4)|fix(polars): conversion from nanoseconds to time_units in Datetime and Duration parsing|[#15637](https://github.com/nushell/nushell/pull/15637)| +|[@pyz4](https://github.com/pyz4)|feat(polars): enable parsing strings as dates and datetime in polars schema|[#15645](https://github.com/nushell/nushell/pull/15645)| +|[@scarlet-storm](https://github.com/scarlet-storm)|Enable socks proxy support in ureq|[#15597](https://github.com/nushell/nushell/pull/15597)| +|[@sebasnallar](https://github.com/sebasnallar)|Add --follow-symlinks flag to glob command (fixes #15559)|[#15626](https://github.com/nushell/nushell/pull/15626)| +|[@sgvictorino](https://github.com/sgvictorino)|preserve variable capture spans in blocks|[#15334](https://github.com/nushell/nushell/pull/15334)| +|[@sgvictorino](https://github.com/sgvictorino)|enable streaming in `random` `binary`/`chars`|[#15361](https://github.com/nushell/nushell/pull/15361)| +|[@sgvictorino](https://github.com/sgvictorino)|reset argument/redirection state after `eval_call` errors|[#15400](https://github.com/nushell/nushell/pull/15400)| +|[@sholderbach](https://github.com/sholderbach)|Fix `to nuon --serialize` of closure|[#15357](https://github.com/nushell/nushell/pull/15357)| +|[@sholderbach](https://github.com/sholderbach)|Fix Exbibyte parsing|[#15515](https://github.com/nushell/nushell/pull/15515)| +|[@sholderbach](https://github.com/sholderbach)|Fix future clippy lints|[#15519](https://github.com/nushell/nushell/pull/15519)| +|[@sholderbach](https://github.com/sholderbach)|Bump `crossbeam-channel`|[#15541](https://github.com/nushell/nushell/pull/15541)| +|[@sholderbach](https://github.com/sholderbach)|Fix labelling of plugins through correct glob|[#15634](https://github.com/nushell/nushell/pull/15634)| +|[@suimong](https://github.com/suimong)|Improve `std/log` performance|[#15614](https://github.com/nushell/nushell/pull/15614)| +|[@vansh284](https://github.com/vansh284)|Improve completions for exact matches (Issue #14794)|[#15387](https://github.com/nushell/nushell/pull/15387)| +|[@vansh284](https://github.com/vansh284)|Substring Match Algorithm|[#15511](https://github.com/nushell/nushell/pull/15511)| +|[@whiter001](https://github.com/whiter001)|create nu_plugin_node_example.js|[#15482](https://github.com/nushell/nushell/pull/15482)| +|[@ysthakur](https://github.com/ysthakur)|Bump to 0.103.1 dev version|[#15347](https://github.com/nushell/nushell/pull/15347)| +|[@ysthakur](https://github.com/ysthakur)|Revert "Improve completions for exact matches (Issue #14794)"|[#15457](https://github.com/nushell/nushell/pull/15457)| +|[@ysthakur](https://github.com/ysthakur)|Enable exact match behavior for any path with slashes|[#15458](https://github.com/nushell/nushell/pull/15458)| +|[@zhiburt](https://github.com/zhiburt)|Fix #15394 for `table -e` wrapping issue|[#15407](https://github.com/nushell/nushell/pull/15407)| +|[@zhiburt](https://github.com/zhiburt)|fix f25525b|[#15500](https://github.com/nushell/nushell/pull/15500)| + From 1cbff184027e65210a2d394a3d27c2271bdb4ca6 Mon Sep 17 00:00:00 2001 From: Tim 'Piepmatz' Hesse Date: Tue, 29 Apr 2025 19:40:23 +0200 Subject: [PATCH 5/8] updated 0.104.0 blog date --- ...025-04-15-nushell_0_104_0.md => 2025-04-29-nushell_0_104_0.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename blog/{2025-04-15-nushell_0_104_0.md => 2025-04-29-nushell_0_104_0.md} (100%) diff --git a/blog/2025-04-15-nushell_0_104_0.md b/blog/2025-04-29-nushell_0_104_0.md similarity index 100% rename from blog/2025-04-15-nushell_0_104_0.md rename to blog/2025-04-29-nushell_0_104_0.md From 15e5ab0740deba99659baa73df6d7fd5e7842a2b Mon Sep 17 00:00:00 2001 From: Tim 'Piepmatz' Hesse Date: Tue, 29 Apr 2025 20:20:31 +0200 Subject: [PATCH 6/8] sorted more PRs --- blog/2025-04-29-nushell_0_104_0.md | 109 +++++++++++++++-------------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/blog/2025-04-29-nushell_0_104_0.md b/blog/2025-04-29-nushell_0_104_0.md index b5f26ba5032..46384e4ea7b 100644 --- a/blog/2025-04-29-nushell_0_104_0.md +++ b/blog/2025-04-29-nushell_0_104_0.md @@ -120,6 +120,21 @@ refer #16550 |[@Mrfiregem](https://github.com/Mrfiregem)|Allow spreading arguments of `kill` command|[#15558](https://github.com/nushell/nushell/pull/15558)| |[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Add current exe directory to default `$NU_PLUGIN_DIRS`|[#15380](https://github.com/nushell/nushell/pull/15380)| |[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Add env-conversions helpers to std|[#15569](https://github.com/nushell/nushell/pull/15569)| +|[@ayax79](https://github.com/ayax79)|Polars binning commands: cut/qcut|[#15431](https://github.com/nushell/nushell/pull/15431)| +|[@ayax79](https://github.com/ayax79)|Introduction of NuDataType and `polars dtype`|[#15529](https://github.com/nushell/nushell/pull/15529)| +|[@ayax79](https://github.com/ayax79)|Introducing `polars into-schema`|[#15534](https://github.com/nushell/nushell/pull/15534)| +|[@blindFS](https://github.com/blindFS)|feat(completion): stdlib virtual path completion & exportable completion|[#15270](https://github.com/nushell/nushell/pull/15270)| +|[@blindFS](https://github.com/blindFS)|feat(lsp): parse_warnings in diagnostics report|[#15449](https://github.com/nushell/nushell/pull/15449)| +|[@blindFS](https://github.com/blindFS)|feat(lsp): snippet style completion for commands|[#15494](https://github.com/nushell/nushell/pull/15494)| +we need to shoutout all the lsp fixes too +|[@cosineblast](https://github.com/cosineblast)|Inter-Job direct messaging |[#15253](https://github.com/nushell/nushell/pull/15253)| +|[@cosineblast](https://github.com/cosineblast)|Add job tags|[#15555](https://github.com/nushell/nushell/pull/15555)| +|[@cosineblast](https://github.com/cosineblast)|`config` commands now add frozen jobs to job table|[#15556](https://github.com/nushell/nushell/pull/15556)| +|[@fdncred](https://github.com/fdncred)|add more columns to macos `ps -l`|[#15341](https://github.com/nushell/nushell/pull/15341)| +|[@fdncred](https://github.com/fdncred)|fix `datetime-diff` so that it reports ms, us, ns as well|[#15537](https://github.com/nushell/nushell/pull/15537)| +|[@fdncred](https://github.com/fdncred)|add `--raw-value` option to `debug` command|[#15581](https://github.com/nushell/nushell/pull/15581)| +|[@fdncred](https://github.com/fdncred)|add more details to `decribe -d`|[#15591](https://github.com/nushell/nushell/pull/15591)| +|[@hfrentzel](https://github.com/hfrentzel)|Run scripts of any file extension in PATHEXT on Windows|[#15611](https://github.com/nushell/nushell/pull/15611)| ### Substring match algorithm @@ -168,6 +183,28 @@ extra attention on this one, but its nothing from the above sections |[@SkillFlame](https://github.com/SkillFlame)|Fix #14660: to md breaks on tables with empty values|[#15631](https://github.com/nushell/nushell/pull/15631)| |[@Tyarel8](https://github.com/Tyarel8)|Fix `kv set` with a closure argument|[#15588](https://github.com/nushell/nushell/pull/15588)| |[@WindSoilder](https://github.com/WindSoilder)|IR: rasing reasonable error when using subexpression with `and` operator|[#15623](https://github.com/nushell/nushell/pull/15623)| +|[@ayax79](https://github.com/ayax79)|Fix output type of `polars schema`|[#15572](https://github.com/nushell/nushell/pull/15572)| +|[@ayax79](https://github.com/ayax79)|fix cannot find issue when performing collect on an eager dataframe|[#15577](https://github.com/nushell/nushell/pull/15577)| +|[@blindFS](https://github.com/blindFS)|fix(completion): inline defined custom completion|[#15318](https://github.com/nushell/nushell/pull/15318)| +|[@blindFS](https://github.com/blindFS)|fix(parser): skip eval_const if parsing errors detected to avoid panic|[#15364](https://github.com/nushell/nushell/pull/15364)| +|[@blindFS](https://github.com/blindFS)|fix(explore): do not create extra layer for empty entries|[#15367](https://github.com/nushell/nushell/pull/15367)| +|[@blindFS](https://github.com/blindFS)|fix(parser): comments in subexpressions of `let`/`mut`|[#15375](https://github.com/nushell/nushell/pull/15375)| +|[@blindFS](https://github.com/blindFS)|fix: flatten of empty closures|[#15374](https://github.com/nushell/nushell/pull/15374)| +|[@blindFS](https://github.com/blindFS)|fix: command `open` sets default flags when calling "from xxx" converters|[#15383](https://github.com/nushell/nushell/pull/15383)| +|[@blindFS](https://github.com/blindFS)|fix(completion): ls_color for `~/xxx` symlinks|[#15403](https://github.com/nushell/nushell/pull/15403)| +|[@blindFS](https://github.com/blindFS)|fix(completion): completions.external.enable config option not respected|[#15443](https://github.com/nushell/nushell/pull/15443)| +|[@blindFS](https://github.com/blindFS)|fix(lsp): more accurate PWD: from env -> parent dir of current file|[#15470](https://github.com/nushell/nushell/pull/15470)| +|[@blindFS](https://github.com/blindFS)|fix(lsp): keywords in completion snippets|[#15499](https://github.com/nushell/nushell/pull/15499)| +|[@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)|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)|fix(lsp): a panic caused by completion with decl_id out of range|[#15576](https://github.com/nushell/nushell/pull/15576)| +|[@blindFS](https://github.com/blindFS)|fix(lsp): regression of semantic tokens of module-prefixed commands|[#15603](https://github.com/nushell/nushell/pull/15603)| +|[@jjflash95](https://github.com/jjflash95)|Fix #15440 default --empty fails at empty streams|[#15562](https://github.com/nushell/nushell/pull/15562)| +|[@lazenga](https://github.com/lazenga)|Fix #13546: Outer joins incorrectly removing unmatched rows|[#15472](https://github.com/nushell/nushell/pull/15472)| +|[@mokurin000](https://github.com/mokurin000)|fix(nu-command): support ACL, SELinux, e.g. in cd have_permission check|[#15360](https://github.com/nushell/nushell/pull/15360)| # Notes for plugin developers @@ -199,6 +236,24 @@ Thanks to all the contributors below for helping us solve issues, improve docume |[@WindSoilder](https://github.com/WindSoilder)|Update rand and rand_chacha to 0.9|[#15463](https://github.com/nushell/nushell/pull/15463)| |[@WindSoilder](https://github.com/WindSoilder)|Fix clippy|[#15489](https://github.com/nushell/nushell/pull/15489)| |[@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(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)| +|[@fdncred](https://github.com/fdncred)|bump uutils crates to 0.0.30|[#15316](https://github.com/nushell/nushell/pull/15316)| +|[@fdncred](https://github.com/fdncred)|update human-date-parser to 3.0|[#15426](https://github.com/nushell/nushell/pull/15426)| +|[@fdncred](https://github.com/fdncred)|bump to the latest rust version|[#15483](https://github.com/nushell/nushell/pull/15483)| +|[@fdncred](https://github.com/fdncred)|Revert "Fix #15394 for `table -e` wrapping issue"|[#15498](https://github.com/nushell/nushell/pull/15498)| +|[@fdncred](https://github.com/fdncred)|bump reedline to 75f2c50|[#15659](https://github.com/nushell/nushell/pull/15659)| +|[@fennewald](https://github.com/fennewald)|Limit Allowed `serde_json` Versions to Match Usage|[#15504](https://github.com/nushell/nushell/pull/15504)| +|[@g2p](https://github.com/g2p)|Upgrade calamine dependency to fix zip semver breakage|[#15657](https://github.com/nushell/nushell/pull/15657)| +|[@hustcer](https://github.com/hustcer)|Fix upgrading and checking of typos|[#15454](https://github.com/nushell/nushell/pull/15454)| +|[@hustcer](https://github.com/hustcer)|Update Nu to 0.103.0 for release workflow and improve Windows OS checks|[#15625](https://github.com/nushell/nushell/pull/15625)| +|[@kidrigger](https://github.com/kidrigger)|Fix examples about RFC3339 format in `date now` and `format date`.|[#15563](https://github.com/nushell/nushell/pull/15563)| +|[@migraine-user](https://github.com/migraine-user)|Fix typo in doc_config.nu + small description |[#15461](https://github.com/nushell/nushell/pull/15461)| + # Full changelog @@ -218,60 +273,6 @@ Afterwards, go through each PR and classify it as one of the following: |-|-|-| Continue sorting these -|[@ayax79](https://github.com/ayax79)|Polars binning commands: cut/qcut|[#15431](https://github.com/nushell/nushell/pull/15431)| -|[@ayax79](https://github.com/ayax79)|Introduction of NuDataType and `polars dtype`|[#15529](https://github.com/nushell/nushell/pull/15529)| -|[@ayax79](https://github.com/ayax79)|Introducing `polars into-schema`|[#15534](https://github.com/nushell/nushell/pull/15534)| -|[@ayax79](https://github.com/ayax79)|Fix output type of `polars schema`|[#15572](https://github.com/nushell/nushell/pull/15572)| -|[@ayax79](https://github.com/ayax79)|fix cannot find issue when performing collect on an eager dataframe|[#15577](https://github.com/nushell/nushell/pull/15577)| -|[@blindFS](https://github.com/blindFS)|feat(completion): stdlib virtual path completion & exportable completion|[#15270](https://github.com/nushell/nushell/pull/15270)| -|[@blindFS](https://github.com/blindFS)|fix(completion): inline defined custom completion|[#15318](https://github.com/nushell/nushell/pull/15318)| -|[@blindFS](https://github.com/blindFS)|fix(lsp): verbose signature help response for less well supported editors|[#15353](https://github.com/nushell/nushell/pull/15353)| -|[@blindFS](https://github.com/blindFS)|fix(parser): skip eval_const if parsing errors detected to avoid panic|[#15364](https://github.com/nushell/nushell/pull/15364)| -|[@blindFS](https://github.com/blindFS)|fix(explore): do not create extra layer for empty entries|[#15367](https://github.com/nushell/nushell/pull/15367)| -|[@blindFS](https://github.com/blindFS)|fix: flatten of empty closures|[#15374](https://github.com/nushell/nushell/pull/15374)| -|[@blindFS](https://github.com/blindFS)|fix(parser): comments in subexpressions of `let`/`mut`|[#15375](https://github.com/nushell/nushell/pull/15375)| -|[@blindFS](https://github.com/blindFS)|fix: command `open` sets default flags when calling "from xxx" converters|[#15383](https://github.com/nushell/nushell/pull/15383)| -|[@blindFS](https://github.com/blindFS)|fix(completion): ls_color for `~/xxx` symlinks|[#15403](https://github.com/nushell/nushell/pull/15403)| -|[@blindFS](https://github.com/blindFS)|fix(completion): completions.external.enable config option not respected|[#15443](https://github.com/nushell/nushell/pull/15443)| -|[@blindFS](https://github.com/blindFS)|feat(lsp): parse_warnings in diagnostics report|[#15449](https://github.com/nushell/nushell/pull/15449)| -|[@blindFS](https://github.com/blindFS)|fix(lsp): more accurate PWD: from env -> parent dir of current file|[#15470](https://github.com/nushell/nushell/pull/15470)| -|[@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)|feat(lsp): snippet style completion for commands|[#15494](https://github.com/nushell/nushell/pull/15494)| -|[@blindFS](https://github.com/blindFS)|fix(lsp): keywords in completion snippets|[#15499](https://github.com/nushell/nushell/pull/15499)| -|[@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)|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)|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)| -|[@blindFS](https://github.com/blindFS)|fix(lsp): a panic caused by completion with decl_id out of range|[#15576](https://github.com/nushell/nushell/pull/15576)| -|[@blindFS](https://github.com/blindFS)|fix(lsp): regression of semantic tokens of module-prefixed commands|[#15603](https://github.com/nushell/nushell/pull/15603)| -|[@cosineblast](https://github.com/cosineblast)|Inter-Job direct messaging |[#15253](https://github.com/nushell/nushell/pull/15253)| -|[@cosineblast](https://github.com/cosineblast)|Add job tags|[#15555](https://github.com/nushell/nushell/pull/15555)| -|[@cosineblast](https://github.com/cosineblast)|`config` commands now add frozen jobs to job table|[#15556](https://github.com/nushell/nushell/pull/15556)| -|[@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)| -|[@fdncred](https://github.com/fdncred)|bump uutils crates to 0.0.30|[#15316](https://github.com/nushell/nushell/pull/15316)| -|[@fdncred](https://github.com/fdncred)|add more columns to macos `ps -l`|[#15341](https://github.com/nushell/nushell/pull/15341)| -|[@fdncred](https://github.com/fdncred)|update human-date-parser to 3.0|[#15426](https://github.com/nushell/nushell/pull/15426)| -|[@fdncred](https://github.com/fdncred)|bump to the latest rust version|[#15483](https://github.com/nushell/nushell/pull/15483)| -|[@fdncred](https://github.com/fdncred)|Revert "Fix #15394 for `table -e` wrapping issue"|[#15498](https://github.com/nushell/nushell/pull/15498)| -|[@fdncred](https://github.com/fdncred)|fix `datetime-diff` so that it reports ms, us, ns as well|[#15537](https://github.com/nushell/nushell/pull/15537)| -|[@fdncred](https://github.com/fdncred)|add `--raw-value` option to `debug` command|[#15581](https://github.com/nushell/nushell/pull/15581)| -|[@fdncred](https://github.com/fdncred)|add more details to `decribe -d`|[#15591](https://github.com/nushell/nushell/pull/15591)| -|[@fdncred](https://github.com/fdncred)|bump reedline to 75f2c50|[#15659](https://github.com/nushell/nushell/pull/15659)| -|[@fennewald](https://github.com/fennewald)|Limit Allowed `serde_json` Versions to Match Usage|[#15504](https://github.com/nushell/nushell/pull/15504)| -|[@g2p](https://github.com/g2p)|Upgrade calamine dependency to fix zip semver breakage|[#15657](https://github.com/nushell/nushell/pull/15657)| -|[@hfrentzel](https://github.com/hfrentzel)|Run scripts of any file extension in PATHEXT on Windows|[#15611](https://github.com/nushell/nushell/pull/15611)| -|[@hustcer](https://github.com/hustcer)|Fix upgrading and checking of typos|[#15454](https://github.com/nushell/nushell/pull/15454)| -|[@hustcer](https://github.com/hustcer)|Update Nu to 0.103.0 for release workflow and improve Windows OS checks|[#15625](https://github.com/nushell/nushell/pull/15625)| -|[@jjflash95](https://github.com/jjflash95)|Fix #15440 default --empty fails at empty streams|[#15562](https://github.com/nushell/nushell/pull/15562)| -|[@kidrigger](https://github.com/kidrigger)|Fix examples about RFC3339 format in `date now` and `format date`.|[#15563](https://github.com/nushell/nushell/pull/15563)| -|[@lazenga](https://github.com/lazenga)|Fix #13546: Outer joins incorrectly removing unmatched rows|[#15472](https://github.com/nushell/nushell/pull/15472)| -|[@migraine-user](https://github.com/migraine-user)|Fix typo in doc_config.nu + small description |[#15461](https://github.com/nushell/nushell/pull/15461)| -|[@mokurin000](https://github.com/mokurin000)|fix(nu-command): support ACL, SELinux, e.g. in cd have_permission check|[#15360](https://github.com/nushell/nushell/pull/15360)| |[@mztikk](https://github.com/mztikk)|Consider PATH when running command is nuscript in windows|[#15486](https://github.com/nushell/nushell/pull/15486)| |[@pyz4](https://github.com/pyz4)|`polars cast`: add decimal option for dtype parameter|[#15464](https://github.com/nushell/nushell/pull/15464)| |[@pyz4](https://github.com/pyz4)|`polars into-df`/`polars into-lazy`: `--schema` will not throw error if only some columns are defined|[#15473](https://github.com/nushell/nushell/pull/15473)| From 010d2263a3732b4b68182a1c2e5df5a4285acf5b Mon Sep 17 00:00:00 2001 From: NotTheDr01ds <32344964+NotTheDr01ds@users.noreply.github.com> Date: Tue, 29 Apr 2025 22:31:44 -0400 Subject: [PATCH 7/8] Final updates before ToC --- blog/2025-04-29-nushell_0_104_0.md | 673 +++++++++++++++++++---------- 1 file changed, 446 insertions(+), 227 deletions(-) diff --git a/blog/2025-04-29-nushell_0_104_0.md b/blog/2025-04-29-nushell_0_104_0.md index 46384e4ea7b..db0f2976c6e 100644 --- a/blog/2025-04-29-nushell_0_104_0.md +++ b/blog/2025-04-29-nushell_0_104_0.md @@ -3,18 +3,14 @@ title: Nushell 0.104.0 author: The Nu Authors author_site: https://www.nushell.sh/blog author_image: https://www.nushell.sh/blog/images/nu_logo.png -excerpt: Today, we're releasing version 0.104.0 of Nu. This release adds... +excerpt: Today, we're releasing version 0.104.0 of Nu. This release adds additional job control capabilities, many datetime improvements, and a number of new Polars commands. --- - - - - # Nushell 0.104.0 - +Today, we're releasing version 0.104.0 of Nu. This release adds additional job control capabilities, many datetime improvements, and a number of new Polars commands. -Today, we're releasing version 0.104.0 of Nu. This release adds... +Thank you to all those who have contributed to this release through the PRs below, issues and suggestions leading to those changes, and Discord discussions. # Where to get it @@ -28,114 +24,190 @@ As part of this release, we also publish a set of optional [plugins](https://www # Highlights and themes of this release - - +### Job tags -## A lot of improvement and bug fixes regarding datetime handling +Jobs can now be tagged using `job tag`, added in [#15555](https://github.com/nushell/nushell/pull/15555). + +## New `datetime` and `duration` Features + +Thanks to [@LoicRiegel](https://github.com/LoicRiegel) for a number of `datetime` and `duration` features in this release: + +### New `date from-human` command + +The new `date from-human` command introduced in [#15495](https://github.com/nushell/nushell/pull/15495) is now used to parse human-language date forms like _"tomorrow"_ into `datetime` values. -Creating durations from non integer numbers used to result in a big loss of precision. This bug is now fixed. ```nushell -~> 1.5wk -# before => 1wk 3day -# now => 1wk 3day 12hr +date from-human "next Friday at 6pm" +# => 2025-04-18T18:00:00+02:00 ``` -Your local timezone is now accurately taken into account when parsing dates: +The equivalent functionality from `into datetime` has been removed from that command. + +::: warning Breaking change +See a full overview of the [breaking changes](#breaking-changes) +::: + +### `into datetime` now accepts a record + +With [#15455](https://github.com/nushell/nushell/pull/15455), it is now possible to construct a datetime from a record input. If the timezone is not specified, the locale is used: + ```nushell -~> "2025-01-01" | into datetime # standard time (winter) -# => Wed, 1 Jan 2025 00:00:00 +0100 (3 months ago) -~> "2025-06-01" | into datetime # daylight saving time (summer) -# => Sun, 1 Jun 2025 00:00:00 +0200 (in 2 months) +{ year: 2025, month: 3, day: 30, hour: 12, minute: 15, second: 59, timezone: '+02:00' } | into datetime +# => Sun, 30 Mar 2025 12:15:59 +0200 (2 weeks ago) ``` -It is now possible to construct a datetime and a duration from a record input. If the timezone is not specified, the local is used. +### `into duration` now accepts a record + +With [#15600](https://github.com/nushell/nushell/pull/15600), it is now possible to construct a datetime from a record input. If the timezone is not specified, the local is used: + ```nushell -~> {year: 2025, month: 3, day: 30, hour: 12, minute: 15, second: 59, timezone: '+02:00'} | into datetime -# => Sun, 30 Mar 2025 12:15:59 +0200 (2 weeks ago) -~> {week: 10, day: 1, hour: 2, minute: 3, second: 4, millisecond: 5, microsecond: 6, nanosecond: 7, sign: '-'} | into duration -# => +{ week: 10, day: 1, hour: 2, minute: 3, second: 4, millisecond: 5, microsecond: 6, nanosecond: 7, sign: '-' } | into duration +# => -10wk 1day 2hr 3min 4sec 5ms 6µs 7ns ``` -Parsing a date as DMY is now possible using the `--format` option: +### `into datetime --format` can now parse dates and times separately + +Previously, `into datetime --format` required both a date and a time. With [#15544](https://github.com/nushell/nushell/pull/15544), +each can be created separately. The system's local timezone will be used +by default. + +For example, to parse a `DD/MM/YYYY`: + ```nushell -~> "25/03/2024" | into datetime --format "%d/%m/%Y" +"25/03/2024" | into datetime --format "%d/%m/%Y" # => Mon, 25 Mar 2024 00:00:00 +0100 (a year ago) ``` -The next ones are breaking changes. -```md -::: warning Breaking change -See a full overview of the [breaking changes](#breaking-changes) -::: +### `into duration` now accepts floats + +With [#15297](https://github.com/nushell/nushell/pull/15297), `into duration` now accepts floats as a valid input type: + +```nushell +1.5day | into duration +# => 1day 12hr ``` -The human readable date parsing has been moved to a dedicated command. +## New Polars commands + +The following `polars` commands have been added in this release: + +- `polars join_where` ([#15635](https://github.com/nushell/nushell/pull/15635) by [@MMesch](https://github.com/MMesch)) +- `polars cut` and `polars qcut` for binning ([#15431](https://github.com/nushell/nushell/pull/15431) by [@ayax79](https://github.com/ayax79)) +- `polars into-schema` ([#15534](https://github.com/nushell/nushell/pull/15534)) by [@ayax79](https://github.com/ayax79)) +- `polars dtype` ([#15529](https://github.com/nushell/nushell/pull/15529) by [@ayax79](https://github.com/ayax79), which also adds the `NuDataType` custom type) +- `polars replace-time-zone` ([#15538](https://github.com/nushell/nushell/pull/15538) by [@pyz4](https://github.com/pyz4)) +- `polars convert-time-zone` ([#15550](https://github.com/nushell/nushell/pull/15550) by [@pyz4](https://github.com/pyz4)) +- `polars over` ([#15551](https://github.com/nushell/nushell/pull/15551) by [@pyz4](https://github.com/pyz4)) +- `polars truncate` ([#15582](https://github.com/nushell/nushell/pull/15582) by [@pyz4](https://github.com/pyz4)) + +# Changes + +## Additions + +### `kill` now accepts list spreading + +In [#15558](https://github.com/nushell/nushell/pull/15558) from [@Mrfiregem](https://github.com/Mrfiregem), the signature of the `kill` command was changed so that it can accept multiple arguments via the list spreading operator. For example: + ```nushell -date from-human "next Friday at 6pm" -# => 2025-04-18T18:00:00+02:00 +ps | where name == bash | kill ...$in.pid ``` -The ``str join`` command now outputs dates consistently: it is using RFC2822 by default, and RFC3339 for negative dates. +### Custom indicator for missing table values + +Missing values (not `null`) are represented by ❎ in tables. [#15647](https://github.com/nushell/nushell/pull/15647) from [@Bahex](https://github.com/Bahex) makes this indicator configurable. For example: + ```nushell -~> [ 2024-01-01 ] | str join -# => Mon, 1 Jan 2024 00:00:00 +0000 -~> [ ('3000 years ago' | date from-human) ] | str join -# => -0975-04-23T20:57:56.221269600+00:00 +$env.config.table.missing_symbol = " ∅ " ``` -Now the ``start_timestamp`` column of the SQLite command history contains datetime instead of strings. +### Some `math` commands now work with bounded ranges + +With [#15319](https://github.com/nushell/nushell/pull/15319) from [@LoicRiegel](https://github.com/LoicRiegel), the following commands have been updated to allow bounded ranges as input: + +- `math abs` +- `math ceil` +- `math floor` +- `math log` +- `math round` + +When passed a `range` input, the command is applied to each item of the range, thus producing a `list` of numbers as output. + +Example: + ```nushell -~> history | last 2 -# => ╭───┬─────────────────┬─────────────────────┬─────┬─────╮ -# => │ # │ start_timestamp │ command │ cwd │ ... │ -# => ├───┼─────────────────┼─────────────────────┼─────┼─────┤ -# => │ 0 │ a minute ago │ history │ ... │ ... │ -# => │ 1 │ 40 seconds ago │ cd nushell │ ... │ ... │ -# => ╰───┴─────────────────┴─────────────────────┴─────┴─────╯ +-2.2..2.5 | math floor +# => ╭───┬────╮ +# => │ 0 │ -3 │ +# => │ 1 │ -2 │ +# => │ 2 │ -1 │ +# => │ 3 │ 0 │ +# => │ 4 │ 1 │ +# => ╰───┴────╯ ``` -# Changes +### The executable directory is now added to `$NU_PLUGIN_DIRS` by default -## Additions +Many distributions (including our binary distributions) place plugins in the same directory as the Nushell executable. With [#15380](https://github.com/nushell/nushell/pull/15380) from [@NotTheDr01ds](https://github.com/NotTheDr01ds), plugins in this type of environment will now work out-of-the-box using `plugin register`. + +### `env-conversions` helpers added to the standard library + +Previously, the default `$env.ENV_CONVERSION` for `PATH` could be "reused" in other path-related conversions. In a previous release, this conversion was removed and became Rust-based. [#15569](https://github.com/nushell/nushell/pull/15569) by [@NotTheDr01ds](https://github.com/NotTheDr01ds) adds the equivalent helper to the standard library so that it can be easily used. + +### Proxy support for `http` commands + +With [#15597](https://github.com/nushell/nushell/pull/15597) from [@scarlet-storm](https://github.com/scarlet-storm), commands like `http get` can now utilize a proxy using environment variables. + +### Tab completion when importing the standard library and its exports + +With [#15270](https://github.com/nushell/nushell/pull/15270), [@blindFS](https://github.com/blindFS) enabled tab-completion for the standard library and its exports with the `use` (and related) commands. + +### New columns available from `ps -l` on macOS + +[#15341](https://github.com/nushell/nushell/pull/15341) from [@fdncred](https://github.com/fdncred) adds the following columns to `ps -l` on macOS: + +- `user_id` +- `priority` +- `process_threads` + +### LSP: Snippet-style completions + +In [#15494](https://github.com/nushell/nushell/pull/15494), [@blindFS](https://github.com/blindFS) added the ability for completions of built-in commands to insert a snippet with placeholders for its arguments. + +In addition, you'll find numerous LSP fixes below from [@blindFS](https://github.com/blindFS). + +### `debug --raw-value` -|[@Bahex](https://github.com/Bahex)|feat(table): make missing value symbol configurable|[#15647](https://github.com/nushell/nushell/pull/15647)| -|[@LoicRiegel](https://github.com/LoicRiegel)|feat: into duration accepts floats|[#15297](https://github.com/nushell/nushell/pull/15297)| -|[@LoicRiegel](https://github.com/LoicRiegel)|Math commands can work with bounded ranges and produce list of numbers|[#15319](https://github.com/nushell/nushell/pull/15319)| -|[@LoicRiegel](https://github.com/LoicRiegel)|Feat: construct datetime from record|[#15455](https://github.com/nushell/nushell/pull/15455)| -mention #15370, #15495, #15522, #15544, #15549, #15606 -|[@LoicRiegel](https://github.com/LoicRiegel)|feat: duration from record|[#15600](https://github.com/nushell/nushell/pull/15600)| -|[@MMesch](https://github.com/MMesch)|add polars join_where command|[#15635](https://github.com/nushell/nushell/pull/15635)| -refer #16550 -|[@Mrfiregem](https://github.com/Mrfiregem)|Allow spreading arguments of `kill` command|[#15558](https://github.com/nushell/nushell/pull/15558)| -|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Add current exe directory to default `$NU_PLUGIN_DIRS`|[#15380](https://github.com/nushell/nushell/pull/15380)| -|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Add env-conversions helpers to std|[#15569](https://github.com/nushell/nushell/pull/15569)| -|[@ayax79](https://github.com/ayax79)|Polars binning commands: cut/qcut|[#15431](https://github.com/nushell/nushell/pull/15431)| -|[@ayax79](https://github.com/ayax79)|Introduction of NuDataType and `polars dtype`|[#15529](https://github.com/nushell/nushell/pull/15529)| -|[@ayax79](https://github.com/ayax79)|Introducing `polars into-schema`|[#15534](https://github.com/nushell/nushell/pull/15534)| -|[@blindFS](https://github.com/blindFS)|feat(completion): stdlib virtual path completion & exportable completion|[#15270](https://github.com/nushell/nushell/pull/15270)| -|[@blindFS](https://github.com/blindFS)|feat(lsp): parse_warnings in diagnostics report|[#15449](https://github.com/nushell/nushell/pull/15449)| -|[@blindFS](https://github.com/blindFS)|feat(lsp): snippet style completion for commands|[#15494](https://github.com/nushell/nushell/pull/15494)| -we need to shoutout all the lsp fixes too -|[@cosineblast](https://github.com/cosineblast)|Inter-Job direct messaging |[#15253](https://github.com/nushell/nushell/pull/15253)| -|[@cosineblast](https://github.com/cosineblast)|Add job tags|[#15555](https://github.com/nushell/nushell/pull/15555)| -|[@cosineblast](https://github.com/cosineblast)|`config` commands now add frozen jobs to job table|[#15556](https://github.com/nushell/nushell/pull/15556)| -|[@fdncred](https://github.com/fdncred)|add more columns to macos `ps -l`|[#15341](https://github.com/nushell/nushell/pull/15341)| -|[@fdncred](https://github.com/fdncred)|fix `datetime-diff` so that it reports ms, us, ns as well|[#15537](https://github.com/nushell/nushell/pull/15537)| -|[@fdncred](https://github.com/fdncred)|add `--raw-value` option to `debug` command|[#15581](https://github.com/nushell/nushell/pull/15581)| -|[@fdncred](https://github.com/fdncred)|add more details to `decribe -d`|[#15591](https://github.com/nushell/nushell/pull/15591)| -|[@hfrentzel](https://github.com/hfrentzel)|Run scripts of any file extension in PATHEXT on Windows|[#15611](https://github.com/nushell/nushell/pull/15611)| +[@fdncred](https://github.com/fdncred) added a `--raw-value` option to the `debug` command in [15581](https://github.com/nushell/nushell/pull/15581) to allow retrieval of only the debug string part of the Nushell value. +### More info from `describe --detailed` + +In [#15591](https://github.com/nushell/nushell/pull/15591), [@fdncred](https://github.com/fdncred) added more details to the `describe --detailed` output, including the Rust data type, the Nushell data type, and the value. + +### Support `PATHEXT` for additional extensions on Windows + +With the changes in [#15611](https://github.com/nushell/nushell/pull/15611) by [@hfrentzel](https://github.com/hfrentzel), Nushell will now automatically attempt to execute scripts using any extension found in the `PATHEXT` environment variable on Windows. + +### Execute Nushell scripts on the Path in Windows + +Also, with [#15486](https://github.com/nushell/nushell/pull/15486) from [@mztikk](https://github.com/mztikk), Nushell scripts can be more easily executed from any directory in the `Path`. + +### New flag `glob --follow-symlinks` + +[@sebasnallar](https://github.com/sebasnallar) added `--follow-symlinks` to ... folllow symlinks when globbing ([#15626](https://github.com/nushell/nushell/pull/15626)) ### Substring match algorithm @@ -145,11 +217,30 @@ Custom completers already had the ability to use substring matching by setting ` ## Breaking changes -|[@LoicRiegel](https://github.com/LoicRiegel)|Move human date parsing into new command `date from-human`|[#15495](https://github.com/nushell/nushell/pull/15495)| -|[@LoicRiegel](https://github.com/LoicRiegel)|bugfix: `str join` outputs dates consistently (RFC2822 when possible)|[#15629](https://github.com/nushell/nushell/pull/15629)| -|[@LoicRiegel](https://github.com/LoicRiegel)|history table using sqlite outputs start_timestamp as datetime instead of string|[#15630](https://github.com/nushell/nushell/pull/15630)| -|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Rename user-facing 'date' to 'datetime'|[#15264](https://github.com/nushell/nushell/pull/15264)| +### Parse human date time explicitly + +`into datetime` used to parse not only strictly formatted date time strings, but also human readable ones. This created some situations where unexpected values might result from `into datetime`. This functionality has been removed. + +Instead, users can now explicitly choose to opt-in to that functionality using the new `date from-human` command added in [#15495](https://github.com/nushell/nushell/pull/15495) by [@LoicRiegel](https://github.com/LoicRiegel). + +### `str join` formatting for `datetime` values has changed + +When a `datetime` is passed to `str join`, the resulting format of the string has changed. With [#15629](https://github.com/nushell/nushell/pull/15629) from [@LoicRiegel](https://github, it will now format positive dates using RFC2822 and negative dates using RFC3339. +This could be a breaking change if you depend on a particular format of the output of `str join`. Consider using `format date` before `str join`. + +### `history` with sqlite uses datetimes now + +Previously, the `history` command would return a `start_timestamp` with a `string` when using the SQLite backend. With +[#15630](https://github.com/nushell/nushell/pull/15630), it now returns an actual Nushell `datetime`. + +If you were previously relying on a `string` value from that column, you can easily convert it using `format date`. + +### `date` is now `datetime` + +The `describe` command previously incorrectly reported `datetime` values as `date`. This has been fixed in [#15264](https://github.com/nushell/nushell/pull/15264). + +If you were previously checking the type of a value using `describe`, you should change occurrences of `date` to `datetime`. ## Deprecations @@ -159,158 +250,286 @@ The `positional` [option](https://www.nushell.sh/book/custom_completions.html#op ## Removals -|[@WindSoilder](https://github.com/WindSoilder)|remove -s, -p in do|[#15456](https://github.com/nushell/nushell/pull/15456)| +### Removed `-s` and `-p` in `do` +We deprecated the `-s` and `-p` flags and planned to remove them in version 0.102.0. We forgot about it for a couple of releases, but [#15456](https://github.com/nushell/nushell/pull/15456) by [WindSoilder](https://github.com/WindSoilder) finally completes this removal. ## Bug fixes and other changes -extra attention on this one, but its nothing from the above sections -|[@WindSoilder](https://github.com/WindSoilder)|overlay use: keep PWD after activating the overlay thought file.|[#15566](https://github.com/nushell/nushell/pull/15566)| - - -| author | title | link | -| ------------------------------------ | ----- | ------------------------------------------------------- | -|[@0x4D5352](https://github.com/0x4D5352)|chore: move 'job' to experimental category|[#15568](https://github.com/nushell/nushell/pull/15568)| -|[@IanManske](https://github.com/IanManske)|Don't collect job output|[#15365](https://github.com/nushell/nushell/pull/15365)| -|[@LoicRiegel](https://github.com/LoicRiegel)|Bugfix/into datetime ignores timezone with format|[#15370](https://github.com/nushell/nushell/pull/15370)| -|[@LoicRiegel](https://github.com/LoicRiegel)|bugfix: wrong display of human readable string|[#15522](https://github.com/nushell/nushell/pull/15522)| -|[@LoicRiegel](https://github.com/LoicRiegel)|Bugfix: datetime parsing and local timezones|[#15544](https://github.com/nushell/nushell/pull/15544)| -|[@LoicRiegel](https://github.com/LoicRiegel)|Bugfix chrono panic + hotifx PR15544|[#15549](https://github.com/nushell/nushell/pull/15549)| -|[@LoicRiegel](https://github.com/LoicRiegel)|Bugfix/loss of precision when parsing value with unit|[#15606](https://github.com/nushell/nushell/pull/15606)| -|[@MMesch](https://github.com/MMesch)|fix mistake in description of polars pivot command|[#15621](https://github.com/nushell/nushell/pull/15621)| -|[@Mrfiregem](https://github.com/Mrfiregem)|Fix `path add` bug when given a record|[#15379](https://github.com/nushell/nushell/pull/15379)| -|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Fixes `clip copy` stripping control characters when de-ansifying|[#15428](https://github.com/nushell/nushell/pull/15428)| -|[@SkillFlame](https://github.com/SkillFlame)|Fix #14660: to md breaks on tables with empty values|[#15631](https://github.com/nushell/nushell/pull/15631)| -|[@Tyarel8](https://github.com/Tyarel8)|Fix `kv set` with a closure argument|[#15588](https://github.com/nushell/nushell/pull/15588)| -|[@WindSoilder](https://github.com/WindSoilder)|IR: rasing reasonable error when using subexpression with `and` operator|[#15623](https://github.com/nushell/nushell/pull/15623)| -|[@ayax79](https://github.com/ayax79)|Fix output type of `polars schema`|[#15572](https://github.com/nushell/nushell/pull/15572)| -|[@ayax79](https://github.com/ayax79)|fix cannot find issue when performing collect on an eager dataframe|[#15577](https://github.com/nushell/nushell/pull/15577)| -|[@blindFS](https://github.com/blindFS)|fix(completion): inline defined custom completion|[#15318](https://github.com/nushell/nushell/pull/15318)| -|[@blindFS](https://github.com/blindFS)|fix(parser): skip eval_const if parsing errors detected to avoid panic|[#15364](https://github.com/nushell/nushell/pull/15364)| -|[@blindFS](https://github.com/blindFS)|fix(explore): do not create extra layer for empty entries|[#15367](https://github.com/nushell/nushell/pull/15367)| -|[@blindFS](https://github.com/blindFS)|fix(parser): comments in subexpressions of `let`/`mut`|[#15375](https://github.com/nushell/nushell/pull/15375)| -|[@blindFS](https://github.com/blindFS)|fix: flatten of empty closures|[#15374](https://github.com/nushell/nushell/pull/15374)| -|[@blindFS](https://github.com/blindFS)|fix: command `open` sets default flags when calling "from xxx" converters|[#15383](https://github.com/nushell/nushell/pull/15383)| -|[@blindFS](https://github.com/blindFS)|fix(completion): ls_color for `~/xxx` symlinks|[#15403](https://github.com/nushell/nushell/pull/15403)| -|[@blindFS](https://github.com/blindFS)|fix(completion): completions.external.enable config option not respected|[#15443](https://github.com/nushell/nushell/pull/15443)| -|[@blindFS](https://github.com/blindFS)|fix(lsp): more accurate PWD: from env -> parent dir of current file|[#15470](https://github.com/nushell/nushell/pull/15470)| -|[@blindFS](https://github.com/blindFS)|fix(lsp): keywords in completion snippets|[#15499](https://github.com/nushell/nushell/pull/15499)| -|[@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)|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)|fix(lsp): a panic caused by completion with decl_id out of range|[#15576](https://github.com/nushell/nushell/pull/15576)| -|[@blindFS](https://github.com/blindFS)|fix(lsp): regression of semantic tokens of module-prefixed commands|[#15603](https://github.com/nushell/nushell/pull/15603)| -|[@jjflash95](https://github.com/jjflash95)|Fix #15440 default --empty fails at empty streams|[#15562](https://github.com/nushell/nushell/pull/15562)| -|[@lazenga](https://github.com/lazenga)|Fix #13546: Outer joins incorrectly removing unmatched rows|[#15472](https://github.com/nushell/nushell/pull/15472)| -|[@mokurin000](https://github.com/mokurin000)|fix(nu-command): support ACL, SELinux, e.g. in cd have_permission check|[#15360](https://github.com/nushell/nushell/pull/15360)| - +| author | title | link | +| ------------------------------------------------ | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | +| [@0x4D5352](https://github.com/0x4D5352) | chore: move 'job' to experimental category | [#15568](https://github.com/nushell/nushell/pull/15568) | +| [@IanManske](https://github.com/IanManske) | Don't collect job output | [#15365](https://github.com/nushell/nushell/pull/15365) | +| [@LoicRiegel](https://github.com/LoicRiegel) | bugfix: wrong display of human readable string | [#15522](https://github.com/nushell/nushell/pull/15522) | +| [@LoicRiegel](https://github.com/LoicRiegel) | Bugfix chrono panic + hotifx PR15544 | [#15549](https://github.com/nushell/nushell/pull/15549) | +| [@MMesch](https://github.com/MMesch) | fix mistake in description of polars pivot command | [#15621](https://github.com/nushell/nushell/pull/15621) | +| [@Mrfiregem](https://github.com/Mrfiregem) | Fix `path add` bug when given a record | [#15379](https://github.com/nushell/nushell/pull/15379) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Fixes `clip copy` stripping control characters when de-ansifying | [#15428](https://github.com/nushell/nushell/pull/15428) | +| [@SkillFlame](https://github.com/SkillFlame) | Fix #14660: to md breaks on tables with empty values | [#15631](https://github.com/nushell/nushell/pull/15631) | +| [@WindSoilder](https://github.com/WindSoilder) | IR: rasing reasonable error when using subexpression with `and` operator | [#15623](https://github.com/nushell/nushell/pull/15623) | +| [@WindSoilder](https://github.com/WindSoilder) | overlay use: keep PWD after activating the overlay thought file. | [#15566](https://github.com/nushell/nushell/pull/15566) | +| [@ayax79](https://github.com/ayax79) | Fix output type of `polars schema` | [#15572](https://github.com/nushell/nushell/pull/15572) | +| [@ayax79](https://github.com/ayax79) | fix cannot find issue when performing collect on an eager dataframe | [#15577](https://github.com/nushell/nushell/pull/15577) | +| [@blindFS](https://github.com/blindFS) | fix(completion): inline defined custom completion | [#15318](https://github.com/nushell/nushell/pull/15318) | +| [@blindFS](https://github.com/blindFS) | fix(parser): skip eval_const if parsing errors detected to avoid panic | [#15364](https://github.com/nushell/nushell/pull/15364) | +| [@blindFS](https://github.com/blindFS) | fix(explore): do not create extra layer for empty entries | [#15367](https://github.com/nushell/nushell/pull/15367) | +| [@blindFS](https://github.com/blindFS) | fix(parser): comments in subexpressions of `let`/`mut` | [#15375](https://github.com/nushell/nushell/pull/15375) | +| [@blindFS](https://github.com/blindFS) | fix: flatten of empty closures | [#15374](https://github.com/nushell/nushell/pull/15374) | +| [@blindFS](https://github.com/blindFS) | fix: command `open` sets default flags when calling "from xxx" converters | [#15383](https://github.com/nushell/nushell/pull/15383) | +| [@blindFS](https://github.com/blindFS) | fix(completion): ls_color for `~/xxx` symlinks | [#15403](https://github.com/nushell/nushell/pull/15403) | +| [@blindFS](https://github.com/blindFS) | feat(lsp): parse_warnings in diagnostics report | [#15449](https://github.com/nushell/nushell/pull/15449) | +| [@blindFS](https://github.com/blindFS) | fix(completion): completions.external.enable config option not respected | [#15443](https://github.com/nushell/nushell/pull/15443) | +| [@blindFS](https://github.com/blindFS) | fix(lsp): more accurate PWD: from env -> parent dir of current file | [#15470](https://github.com/nushell/nushell/pull/15470) | +| [@blindFS](https://github.com/blindFS) | fix(lsp): keywords in completion snippets | [#15499](https://github.com/nushell/nushell/pull/15499) | +| [@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) | 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) | fix(lsp): a panic caused by completion with decl_id out of range | [#15576](https://github.com/nushell/nushell/pull/15576) | +| [@blindFS](https://github.com/blindFS) | fix(lsp): regression of semantic tokens of module-prefixed commands | [#15603](https://github.com/nushell/nushell/pull/15603) | +| [@cosineblast](https://github.com/cosineblast) | `config` commands now add frozen jobs to job table | [#15556](https://github.com/nushell/nushell/pull/15556) | +| [@fdncred](https://github.com/fdncred) | fix `datetime-diff` so that it reports ms, us, ns as well | [#15537](https://github.com/nushell/nushell/pull/15537) | +| [@jjflash95](https://github.com/jjflash95) | Fix #15440 default --empty fails at empty streams | [#15562](https://github.com/nushell/nushell/pull/15562) | +| [@lazenga](https://github.com/lazenga) | Fix #13546: Outer joins incorrectly removing unmatched rows | [#15472](https://github.com/nushell/nushell/pull/15472) | +| [@mokurin000](https://github.com/mokurin000) | fix(nu-command): support ACL, SELinux, e.g. in cd have_permission check | [#15360](https://github.com/nushell/nushell/pull/15360) | +| [@pyz4](https://github.com/pyz4) | `polars into-df`/`polars into-lazy`: `--schema` will not throw error if only some columns are defined | [#15473](https://github.com/nushell/nushell/pull/15473) | +| [@pyz4](https://github.com/pyz4) | FIX `polars as-datetime`: ignores timezone information on conversion | [#15490](https://github.com/nushell/nushell/pull/15490) | +| [@pyz4](https://github.com/pyz4) | fix(polars): cast as date now returns Date type instead of Datetime\ | [#15574](https://github.com/nushell/nushell/pull/15574) | +| [@pyz4](https://github.com/pyz4) | feat(polars): enable `as_date` and `as_datetime` to handle expressions as inputs | [#15590](https://github.com/nushell/nushell/pull/15590) | +| [@pyz4](https://github.com/pyz4) | feat(polars): add pow (`**`) operator for polars expressions | [#15598](https://github.com/nushell/nushell/pull/15598) | +| [@pyz4](https://github.com/pyz4) | fix(custom_value) + fix(polars): map `//` operator to FloorDivide for custom values and in polars | [#15599](https://github.com/nushell/nushell/pull/15599) | +| [@pyz4](https://github.com/pyz4) | fix(polars): remove requirement that pivot columns must be same type in `polars pivot` | [#15608](https://github.com/nushell/nushell/pull/15608) | +| [@pyz4](https://github.com/pyz4) | fix(polars): conversion from nanoseconds to time_units in Datetime and Duration parsing | [#15637](https://github.com/nushell/nushell/pull/15637) | +| [@sgvictorino](https://github.com/sgvictorino) | preserve variable capture spans in blocks | [#15334](https://github.com/nushell/nushell/pull/15334) | +| [@sholderbach](https://github.com/sholderbach) | Fix `to nuon --serialize` of closure | [#15357](https://github.com/nushell/nushell/pull/15357) | +| [@sgvictorino](https://github.com/sgvictorino) | reset argument/redirection state after `eval_call` errors | [#15400](https://github.com/nushell/nushell/pull/15400) | +| [@sholderbach](https://github.com/sholderbach) | Fix `to nuon --serialize` of closure | [#15357](https://github.com/nushell/nushell/pull/15357) | +| [@sholderbach](https://github.com/sholderbach) | Fix Exbibyte parsing | [#15515](https://github.com/nushell/nushell/pull/15515) | +| [@sholderbach](https://github.com/sholderbach) | Fix future clippy lints | [#15519](https://github.com/nushell/nushell/pull/15519) | +| [@vansh284](https://github.com/vansh284) | Improve completions for exact matches (Issue #14794) | [#15387](https://github.com/nushell/nushell/pull/15387) | +| [@ysthakur](https://github.com/ysthakur) | Enable exact match behavior for any path with slashes | [#15458](https://github.com/nushell/nushell/pull/15458) | +| [@zhiburt](https://github.com/zhiburt) | Fix #15394 for `table -e` wrapping issue | [#15407](https://github.com/nushell/nushell/pull/15407) | +| [@zhiburt](https://github.com/zhiburt) | fix f25525b | [#15500](https://github.com/nushell/nushell/pull/15500) | # Notes for plugin developers -|[@132ikl](https://github.com/132ikl)|Add From for LabeledError|[#15327](https://github.com/nushell/nushell/pull/15327)| +## Convert `IoError` into `LabeledError` + +In version 0.102.0 `IoError`s were added on top of `std::io::Error`s. [@132ikl](https://github.com/132ikl) made it easier in [#15327](https://github.com/nushell/nushell/pull/15327) to return these in `SimplePluginCommand`s. -new repo: nushell/plugin-examples +## New Repo for Plugin Examples +[@cptpiepmatz](https://github.com/cptpiepmatz) has created a [new repository](https://github.com/nushell/plugin-examples) for plugin examples. It includes various examples demonstrating how to write plugins with different features and in multiple languages, including Nu. The existing plugin examples in the main repository will be moved there soon. # Hall of fame Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! :pray: -| author | title | link | -| ------------------------------------ | ----- | ------------------------------------------------------- | -|[@0x4D5352](https://github.com/0x4D5352)|replace repeat().take() with repeat_n()|[#15575](https://github.com/nushell/nushell/pull/15575)| -|[@132ikl](https://github.com/132ikl)|Add compile-time assertion of `Value`'s size|[#15362](https://github.com/nushell/nushell/pull/15362)| -|[@132ikl](https://github.com/132ikl)|Add boolean examples to `any` and `all`|[#15442](https://github.com/nushell/nushell/pull/15442)| -|[@AucaCoyan](https://github.com/AucaCoyan)|Add labeler bot|[#15627](https://github.com/nushell/nushell/pull/15627)| -|[@Bahex](https://github.com/Bahex)|docs(explore): Add ":nu" back to the help text|[#15644](https://github.com/nushell/nushell/pull/15644)| -|[@IanManske](https://github.com/IanManske)|Remove `nu-glob`'s dependency on `nu-protocol`|[#15349](https://github.com/nushell/nushell/pull/15349)| -|[@LoicRiegel](https://github.com/LoicRiegel)|refactor: ensure range is bounded|[#15429](https://github.com/nushell/nushell/pull/15429)| -|[@LoicRiegel](https://github.com/LoicRiegel)|Replace some PipelineMismatch by OnlySupportsThisInputType by shell error|[#15447](https://github.com/nushell/nushell/pull/15447)| -|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Ignore problematic overlapping tests for SHLVL|[#15430](https://github.com/nushell/nushell/pull/15430)| -|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Reminder comment to update doc when adding `$nu` constants|[#15481](https://github.com/nushell/nushell/pull/15481)| -|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Revert "Fix `kv set` with a closure argument"|[#15648](https://github.com/nushell/nushell/pull/15648)| -|[@NotTheDr01ds](https://github.com/NotTheDr01ds)|Renamed `join_where` to `join-where`|[#15660](https://github.com/nushell/nushell/pull/15660)| -|[@WindSoilder](https://github.com/WindSoilder)|update shadow-rs to version 1|[#15462](https://github.com/nushell/nushell/pull/15462)| -|[@WindSoilder](https://github.com/WindSoilder)|Update rand and rand_chacha to 0.9|[#15463](https://github.com/nushell/nushell/pull/15463)| -|[@WindSoilder](https://github.com/WindSoilder)|Fix clippy|[#15489](https://github.com/nushell/nushell/pull/15489)| -|[@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(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)| -|[@fdncred](https://github.com/fdncred)|bump uutils crates to 0.0.30|[#15316](https://github.com/nushell/nushell/pull/15316)| -|[@fdncred](https://github.com/fdncred)|update human-date-parser to 3.0|[#15426](https://github.com/nushell/nushell/pull/15426)| -|[@fdncred](https://github.com/fdncred)|bump to the latest rust version|[#15483](https://github.com/nushell/nushell/pull/15483)| -|[@fdncred](https://github.com/fdncred)|Revert "Fix #15394 for `table -e` wrapping issue"|[#15498](https://github.com/nushell/nushell/pull/15498)| -|[@fdncred](https://github.com/fdncred)|bump reedline to 75f2c50|[#15659](https://github.com/nushell/nushell/pull/15659)| -|[@fennewald](https://github.com/fennewald)|Limit Allowed `serde_json` Versions to Match Usage|[#15504](https://github.com/nushell/nushell/pull/15504)| -|[@g2p](https://github.com/g2p)|Upgrade calamine dependency to fix zip semver breakage|[#15657](https://github.com/nushell/nushell/pull/15657)| -|[@hustcer](https://github.com/hustcer)|Fix upgrading and checking of typos|[#15454](https://github.com/nushell/nushell/pull/15454)| -|[@hustcer](https://github.com/hustcer)|Update Nu to 0.103.0 for release workflow and improve Windows OS checks|[#15625](https://github.com/nushell/nushell/pull/15625)| -|[@kidrigger](https://github.com/kidrigger)|Fix examples about RFC3339 format in `date now` and `format date`.|[#15563](https://github.com/nushell/nushell/pull/15563)| -|[@migraine-user](https://github.com/migraine-user)|Fix typo in doc_config.nu + small description |[#15461](https://github.com/nushell/nushell/pull/15461)| - +| author | title | link | +| -------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------- | +| [@0x4D5352](https://github.com/0x4D5352) | replace repeat().take() with repeat_n() | [#15575](https://github.com/nushell/nushell/pull/15575) | +| [@132ikl](https://github.com/132ikl) | Add compile-time assertion of `Value`'s size | [#15362](https://github.com/nushell/nushell/pull/15362) | +| [@132ikl](https://github.com/132ikl) | Add boolean examples to `any` and `all` | [#15442](https://github.com/nushell/nushell/pull/15442) | +| [@AucaCoyan](https://github.com/AucaCoyan) | Add labeler bot | [#15627](https://github.com/nushell/nushell/pull/15627) | +| [@Bahex](https://github.com/Bahex) | docs(explore): Add ":nu" back to the help text | [#15644](https://github.com/nushell/nushell/pull/15644) | +| [@IanManske](https://github.com/IanManske) | Remove `nu-glob`'s dependency on `nu-protocol` | [#15349](https://github.com/nushell/nushell/pull/15349) | +| [@LoicRiegel](https://github.com/LoicRiegel) | refactor: ensure range is bounded | [#15429](https://github.com/nushell/nushell/pull/15429) | +| [@LoicRiegel](https://github.com/LoicRiegel) | Replace some PipelineMismatch by OnlySupportsThisInputType by shell error | [#15447](https://github.com/nushell/nushell/pull/15447) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Ignore problematic overlapping tests for SHLVL | [#15430](https://github.com/nushell/nushell/pull/15430) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Reminder comment to update doc when adding `$nu` constants | [#15481](https://github.com/nushell/nushell/pull/15481) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Revert "Fix `kv set` with a closure argument" | [#15648](https://github.com/nushell/nushell/pull/15648) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Renamed `join_where` to `join-where` | [#15660](https://github.com/nushell/nushell/pull/15660) | +| [@Tyarel8](https://github.com/Tyarel8) | Fix `kv set` with a closure argument | [#15588](https://github.com/nushell/nushell/pull/15588) | +| [@WindSoilder](https://github.com/WindSoilder) | update shadow-rs to version 1 | [#15462](https://github.com/nushell/nushell/pull/15462) | +| [@WindSoilder](https://github.com/WindSoilder) | Update rand and rand_chacha to 0.9 | [#15463](https://github.com/nushell/nushell/pull/15463) | +| [@WindSoilder](https://github.com/WindSoilder) | Fix clippy | [#15489](https://github.com/nushell/nushell/pull/15489) | +| [@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(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) | +| [@fdncred](https://github.com/fdncred) | bump uutils crates to 0.0.30 | [#15316](https://github.com/nushell/nushell/pull/15316) | +| [@fdncred](https://github.com/fdncred) | update human-date-parser to 3.0 | [#15426](https://github.com/nushell/nushell/pull/15426) | +| [@fdncred](https://github.com/fdncred) | bump to the latest rust version | [#15483](https://github.com/nushell/nushell/pull/15483) | +| [@fdncred](https://github.com/fdncred) | Revert "Fix #15394 for `table -e` wrapping issue" | [#15498](https://github.com/nushell/nushell/pull/15498) | +| [@fdncred](https://github.com/fdncred) | bump reedline to 75f2c50 | [#15659](https://github.com/nushell/nushell/pull/15659) | +| [@fennewald](https://github.com/fennewald) | Limit Allowed `serde_json` Versions to Match Usage | [#15504](https://github.com/nushell/nushell/pull/15504) | +| [@g2p](https://github.com/g2p) | Upgrade calamine dependency to fix zip semver breakage | [#15657](https://github.com/nushell/nushell/pull/15657) | +| [@hustcer](https://github.com/hustcer) | Fix upgrading and checking of typos | [#15454](https://github.com/nushell/nushell/pull/15454) | +| [@hustcer](https://github.com/hustcer) | Update Nu to 0.103.0 for release workflow and improve Windows OS checks | [#15625](https://github.com/nushell/nushell/pull/15625) | +| [@kidrigger](https://github.com/kidrigger) | Fix examples about RFC3339 format in `date now` and `format date`. | [#15563](https://github.com/nushell/nushell/pull/15563) | +| [@migraine-user](https://github.com/migraine-user) | Fix typo in doc_config.nu + small description | [#15461](https://github.com/nushell/nushell/pull/15461) | +| [@sholderbach](https://github.com/sholderbach) | Bump `crossbeam-channel` | [#15541](https://github.com/nushell/nushell/pull/15541) | +| [@sholderbach](https://github.com/sholderbach) | Fix labelling of plugins through correct glob | [#15634](https://github.com/nushell/nushell/pull/15634) | +| [@suimong](https://github.com/suimong) | Improve `std/log` performance | [#15614](https://github.com/nushell/nushell/pull/15614) | +| [@whiter001](https://github.com/whiter001) | create nu_plugin_node_example.js | [#15482](https://github.com/nushell/nushell/pull/15482) | +| [@ysthakur](https://github.com/ysthakur) | Bump to 0.103.1 dev version | [#15347](https://github.com/nushell/nushell/pull/15347) | +| [@ysthakur](https://github.com/ysthakur) | Revert "Improve completions for exact matches (Issue #14794)" | [#15457](https://github.com/nushell/nushell/pull/15457) | +| [@pyz4](https://github.com/pyz4) | `polars cast`: add decimal option for dtype parameter | [#15464](https://github.com/nushell/nushell/pull/15464) | +| [@pyz4](https://github.com/pyz4) | `polars`: extend `NuExpression::extract_exprs` to handle records | [#15553](https://github.com/nushell/nushell/pull/15553) | +| [@pyz4](https://github.com/pyz4) | `polars`: update `get-` datetime components commands to allow expressions as inputs | [#15557](https://github.com/nushell/nushell/pull/15557) | +| [@pyz4](https://github.com/pyz4) | `polars`: update `polars lit` to handle nushell Value::Duration and Value::Date types | [#15564](https://github.com/nushell/nushell/pull/15564) | +| [@pyz4](https://github.com/pyz4) | `polars`: expand `polars col` to handle multiple columns and by types | [#15570](https://github.com/nushell/nushell/pull/15570) | +| [@pyz4](https://github.com/pyz4) | feat(polars): loosen constraints on accepted expressions in `polars group-by` | [#15583](https://github.com/nushell/nushell/pull/15583) | +| [@pyz4](https://github.com/pyz4) | feat(polars): enable parsing decimals in polars schemas | [#15632](https://github.com/nushell/nushell/pull/15632) | +| [@pyz4](https://github.com/pyz4) | feat(polars): enable parsing strings as dates and datetime in polars schema | [#15645](https://github.com/nushell/nushell/pull/15645) | # Full changelog - - -|author|title|link| -|-|-|-| - -Continue sorting these -|[@mztikk](https://github.com/mztikk)|Consider PATH when running command is nuscript in windows|[#15486](https://github.com/nushell/nushell/pull/15486)| -|[@pyz4](https://github.com/pyz4)|`polars cast`: add decimal option for dtype parameter|[#15464](https://github.com/nushell/nushell/pull/15464)| -|[@pyz4](https://github.com/pyz4)|`polars into-df`/`polars into-lazy`: `--schema` will not throw error if only some columns are defined|[#15473](https://github.com/nushell/nushell/pull/15473)| -|[@pyz4](https://github.com/pyz4)|FIX `polars as-datetime`: ignores timezone information on conversion|[#15490](https://github.com/nushell/nushell/pull/15490)| -|[@pyz4](https://github.com/pyz4)|`polars`: add new command `polars replace-time-zone`|[#15538](https://github.com/nushell/nushell/pull/15538)| -|[@pyz4](https://github.com/pyz4)|`polars`: add new command `polars convert-time-zone`|[#15550](https://github.com/nushell/nushell/pull/15550)| -|[@pyz4](https://github.com/pyz4)|`polars`: add new command `polars over`|[#15551](https://github.com/nushell/nushell/pull/15551)| -|[@pyz4](https://github.com/pyz4)|`polars`: extend `NuExpression::extract_exprs` to handle records|[#15553](https://github.com/nushell/nushell/pull/15553)| -|[@pyz4](https://github.com/pyz4)|`polars`: update `get-` datetime components commands to allow expressions as inputs|[#15557](https://github.com/nushell/nushell/pull/15557)| -|[@pyz4](https://github.com/pyz4)|`polars`: update `polars lit` to handle nushell Value::Duration and Value::Date types|[#15564](https://github.com/nushell/nushell/pull/15564)| -|[@pyz4](https://github.com/pyz4)|`polars`: expand `polars col` to handle multiple columns and by types|[#15570](https://github.com/nushell/nushell/pull/15570)| -|[@pyz4](https://github.com/pyz4)|fix(polars): cast as date now returns Date type instead of Datetime|[#15574](https://github.com/nushell/nushell/pull/15574)| -|[@pyz4](https://github.com/pyz4)|feat(polars): add `polars truncate` for rounding datetimes|[#15582](https://github.com/nushell/nushell/pull/15582)| -|[@pyz4](https://github.com/pyz4)|feat(polars): loosen constraints on accepted expressions in `polars group-by`|[#15583](https://github.com/nushell/nushell/pull/15583)| -|[@pyz4](https://github.com/pyz4)|feat(polars): enable `as_date` and `as_datetime` to handle expressions as inputs|[#15590](https://github.com/nushell/nushell/pull/15590)| -|[@pyz4](https://github.com/pyz4)|feat(polars): add pow (`**`) operator for polars expressions|[#15598](https://github.com/nushell/nushell/pull/15598)| -|[@pyz4](https://github.com/pyz4)|fix(custom_value) + fix(polars): map `//` operator to FloorDivide for custom values and in polars|[#15599](https://github.com/nushell/nushell/pull/15599)| -|[@pyz4](https://github.com/pyz4)|fix(polars): remove requirement that pivot columns must be same type in `polars pivot`|[#15608](https://github.com/nushell/nushell/pull/15608)| -|[@pyz4](https://github.com/pyz4)|feat(polars): enable parsing decimals in polars schemas|[#15632](https://github.com/nushell/nushell/pull/15632)| -|[@pyz4](https://github.com/pyz4)|fix(polars): conversion from nanoseconds to time_units in Datetime and Duration parsing|[#15637](https://github.com/nushell/nushell/pull/15637)| -|[@pyz4](https://github.com/pyz4)|feat(polars): enable parsing strings as dates and datetime in polars schema|[#15645](https://github.com/nushell/nushell/pull/15645)| -|[@scarlet-storm](https://github.com/scarlet-storm)|Enable socks proxy support in ureq|[#15597](https://github.com/nushell/nushell/pull/15597)| -|[@sebasnallar](https://github.com/sebasnallar)|Add --follow-symlinks flag to glob command (fixes #15559)|[#15626](https://github.com/nushell/nushell/pull/15626)| -|[@sgvictorino](https://github.com/sgvictorino)|preserve variable capture spans in blocks|[#15334](https://github.com/nushell/nushell/pull/15334)| -|[@sgvictorino](https://github.com/sgvictorino)|enable streaming in `random` `binary`/`chars`|[#15361](https://github.com/nushell/nushell/pull/15361)| -|[@sgvictorino](https://github.com/sgvictorino)|reset argument/redirection state after `eval_call` errors|[#15400](https://github.com/nushell/nushell/pull/15400)| -|[@sholderbach](https://github.com/sholderbach)|Fix `to nuon --serialize` of closure|[#15357](https://github.com/nushell/nushell/pull/15357)| -|[@sholderbach](https://github.com/sholderbach)|Fix Exbibyte parsing|[#15515](https://github.com/nushell/nushell/pull/15515)| -|[@sholderbach](https://github.com/sholderbach)|Fix future clippy lints|[#15519](https://github.com/nushell/nushell/pull/15519)| -|[@sholderbach](https://github.com/sholderbach)|Bump `crossbeam-channel`|[#15541](https://github.com/nushell/nushell/pull/15541)| -|[@sholderbach](https://github.com/sholderbach)|Fix labelling of plugins through correct glob|[#15634](https://github.com/nushell/nushell/pull/15634)| -|[@suimong](https://github.com/suimong)|Improve `std/log` performance|[#15614](https://github.com/nushell/nushell/pull/15614)| -|[@vansh284](https://github.com/vansh284)|Improve completions for exact matches (Issue #14794)|[#15387](https://github.com/nushell/nushell/pull/15387)| -|[@vansh284](https://github.com/vansh284)|Substring Match Algorithm|[#15511](https://github.com/nushell/nushell/pull/15511)| -|[@whiter001](https://github.com/whiter001)|create nu_plugin_node_example.js|[#15482](https://github.com/nushell/nushell/pull/15482)| -|[@ysthakur](https://github.com/ysthakur)|Bump to 0.103.1 dev version|[#15347](https://github.com/nushell/nushell/pull/15347)| -|[@ysthakur](https://github.com/ysthakur)|Revert "Improve completions for exact matches (Issue #14794)"|[#15457](https://github.com/nushell/nushell/pull/15457)| -|[@ysthakur](https://github.com/ysthakur)|Enable exact match behavior for any path with slashes|[#15458](https://github.com/nushell/nushell/pull/15458)| -|[@zhiburt](https://github.com/zhiburt)|Fix #15394 for `table -e` wrapping issue|[#15407](https://github.com/nushell/nushell/pull/15407)| -|[@zhiburt](https://github.com/zhiburt)|fix f25525b|[#15500](https://github.com/nushell/nushell/pull/15500)| - +| author | title | link | +| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | +| [@0x4D5352](https://github.com/0x4D5352) | chore: move 'job' to experimental category | [#15568](https://github.com/nushell/nushell/pull/15568) | +| [@0x4D5352](https://github.com/0x4D5352) | replace repeat().take() with repeat_n() | [#15575](https://github.com/nushell/nushell/pull/15575) | +| [@132ikl](https://github.com/132ikl) | Add `From` for LabeledError | [#15327](https://github.com/nushell/nushell/pull/15327) | +| [@132ikl](https://github.com/132ikl) | Add compile-time assertion of `Value`'s size | [#15362](https://github.com/nushell/nushell/pull/15362) | +| [@132ikl](https://github.com/132ikl) | Add boolean examples to `any` and `all` | [#15442](https://github.com/nushell/nushell/pull/15442) | +| [@AucaCoyan](https://github.com/AucaCoyan) | Add labeler bot | [#15627](https://github.com/nushell/nushell/pull/15627) | +| [@Bahex](https://github.com/Bahex) | docs(explore): Add ":nu" back to the help text | [#15644](https://github.com/nushell/nushell/pull/15644) | +| [@Bahex](https://github.com/Bahex) | feat(table): make missing value symbol configurable | [#15647](https://github.com/nushell/nushell/pull/15647) | +| [@IanManske](https://github.com/IanManske) | Remove `nu-glob`'s dependency on `nu-protocol` | [#15349](https://github.com/nushell/nushell/pull/15349) | +| [@IanManske](https://github.com/IanManske) | Don't collect job output | [#15365](https://github.com/nushell/nushell/pull/15365) | +| [@LoicRiegel](https://github.com/LoicRiegel) | Math commands can work with bounded ranges and produce list of numbers | [#15319](https://github.com/nushell/nushell/pull/15319) | +| [@LoicRiegel](https://github.com/LoicRiegel) | Bugfix/into datetime ignores timezone with format | [#15370](https://github.com/nushell/nushell/pull/15370) | +| [@LoicRiegel](https://github.com/LoicRiegel) | refactor: ensure range is bounded | [#15429](https://github.com/nushell/nushell/pull/15429) | +| [@LoicRiegel](https://github.com/LoicRiegel) | Replace some PipelineMismatch by OnlySupportsThisInputType by shell error | [#15447](https://github.com/nushell/nushell/pull/15447) | +| [@LoicRiegel](https://github.com/LoicRiegel) | Feat: construct datetime from record | [#15455](https://github.com/nushell/nushell/pull/15455) | +| [@LoicRiegel](https://github.com/LoicRiegel) | Move human date parsing into new command `date from-human` | [#15495](https://github.com/nushell/nushell/pull/15495) | +| [@LoicRiegel](https://github.com/LoicRiegel) | bugfix: wrong display of human readable string | [#15522](https://github.com/nushell/nushell/pull/15522) | +| [@LoicRiegel](https://github.com/LoicRiegel) | Bugfix: datetime parsing and local timezones | [#15544](https://github.com/nushell/nushell/pull/15544) | +| [@LoicRiegel](https://github.com/LoicRiegel) | Bugfix chrono panic + hotifx PR15544 | [#15549](https://github.com/nushell/nushell/pull/15549) | +| [@LoicRiegel](https://github.com/LoicRiegel) | feat: duration from record | [#15600](https://github.com/nushell/nushell/pull/15600) | +| [@LoicRiegel](https://github.com/LoicRiegel) | Bugfix/loss of precision when parsing value with unit | [#15606](https://github.com/nushell/nushell/pull/15606) | +| [@LoicRiegel](https://github.com/LoicRiegel) | bugfix: `str join` outputs dates consistently (RFC2822 when possible) | [#15629](https://github.com/nushell/nushell/pull/15629) | +| [@LoicRiegel](https://github.com/LoicRiegel) | history table using sqlite outputs start_timestamp as datetime instead of string | [#15630](https://github.com/nushell/nushell/pull/15630) | +| [@MMesch](https://github.com/MMesch) | fix mistake in description of polars pivot command | [#15621](https://github.com/nushell/nushell/pull/15621) | +| [@MMesch](https://github.com/MMesch) | add polars join_where command | [#15635](https://github.com/nushell/nushell/pull/15635) | +| [@Mrfiregem](https://github.com/Mrfiregem) | Fix `path add` bug when given a record | [#15379](https://github.com/nushell/nushell/pull/15379) | +| [@Mrfiregem](https://github.com/Mrfiregem) | Allow spreading arguments of `kill` command | [#15558](https://github.com/nushell/nushell/pull/15558) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Rename user-facing 'date' to 'datetime' | [#15264](https://github.com/nushell/nushell/pull/15264) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Add current exe directory to default `$NU_PLUGIN_DIRS` | [#15380](https://github.com/nushell/nushell/pull/15380) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Fixes `clip copy` stripping control characters when de-ansifying | [#15428](https://github.com/nushell/nushell/pull/15428) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Ignore problematic overlapping tests for SHLVL | [#15430](https://github.com/nushell/nushell/pull/15430) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Reminder comment to update doc when adding `$nu` constants | [#15481](https://github.com/nushell/nushell/pull/15481) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Add env-conversions helpers to std | [#15569](https://github.com/nushell/nushell/pull/15569) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Revert "Fix `kv set` with a closure argument" | [#15648](https://github.com/nushell/nushell/pull/15648) | +| [@NotTheDr01ds](https://github.com/NotTheDr01ds) | Renamed `join_where` to `join-where` | [#15660](https://github.com/nushell/nushell/pull/15660) | +| [@SkillFlame](https://github.com/SkillFlame) | Fix #14660: to md breaks on tables with empty values | [#15631](https://github.com/nushell/nushell/pull/15631) | +| [@Tyarel8](https://github.com/Tyarel8) | Fix `kv set` with a closure argument | [#15588](https://github.com/nushell/nushell/pull/15588) | +| [@WindSoilder](https://github.com/WindSoilder) | remove -s, -p in do | [#15456](https://github.com/nushell/nushell/pull/15456) | +| [@WindSoilder](https://github.com/WindSoilder) | update shadow-rs to version 1 | [#15462](https://github.com/nushell/nushell/pull/15462) | +| [@WindSoilder](https://github.com/WindSoilder) | Update rand and rand_chacha to 0.9 | [#15463](https://github.com/nushell/nushell/pull/15463) | +| [@WindSoilder](https://github.com/WindSoilder) | Fix clippy | [#15489](https://github.com/nushell/nushell/pull/15489) | +| [@WindSoilder](https://github.com/WindSoilder) | overlay use: keep PWD after activating the overlay thought file. | [#15566](https://github.com/nushell/nushell/pull/15566) | +| [@WindSoilder](https://github.com/WindSoilder) | IR: allow subexpression with redirection. | [#15617](https://github.com/nushell/nushell/pull/15617) | +| [@WindSoilder](https://github.com/WindSoilder) | IR: rasing reasonable error when using subexpression with `and` operator | [#15623](https://github.com/nushell/nushell/pull/15623) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump mockito from 1.6.1 to 1.7.0 | [#15343](https://github.com/nushell/nushell/pull/15343) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump indexmap from 2.7.0 to 2.8.0 | [#15345](https://github.com/nushell/nushell/pull/15345) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump uuid from 1.12.0 to 1.16.0 | [#15346](https://github.com/nushell/nushell/pull/15346) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump crate-ci/typos from 1.29.10 to 1.30.3 | [#15418](https://github.com/nushell/nushell/pull/15418) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump tokio from 1.43.0 to 1.44.1 | [#15419](https://github.com/nushell/nushell/pull/15419) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump array-init-cursor from 0.2.0 to 0.2.1 | [#15460](https://github.com/nushell/nushell/pull/15460) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump bytesize from 1.3.2 to 1.3.3 | [#15468](https://github.com/nushell/nushell/pull/15468) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump crate-ci/typos from 1.31.0 to 1.31.1 | [#15469](https://github.com/nushell/nushell/pull/15469) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump openssl from 0.10.70 to 0.10.72 | [#15493](https://github.com/nushell/nushell/pull/15493) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump tokio from 1.44.1 to 1.44.2 | [#15521](https://github.com/nushell/nushell/pull/15521) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump titlecase from 3.4.0 to 3.5.0 | [#15530](https://github.com/nushell/nushell/pull/15530) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump indexmap from 2.8.0 to 2.9.0 | [#15531](https://github.com/nushell/nushell/pull/15531) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump rust-embed from 8.6.0 to 8.7.0 | [#15579](https://github.com/nushell/nushell/pull/15579) | +| [@app/dependabot](https://github.com/app/dependabot) | build(deps): bump data-encoding from 2.8.0 to 2.9.0 | [#15580](https://github.com/nushell/nushell/pull/15580) | +| [@ayax79](https://github.com/ayax79) | Polars binning commands: cut/qcut | [#15431](https://github.com/nushell/nushell/pull/15431) | +| [@ayax79](https://github.com/ayax79) | Introduction of NuDataType and `polars dtype` | [#15529](https://github.com/nushell/nushell/pull/15529) | +| [@ayax79](https://github.com/ayax79) | Introducing `polars into-schema` | [#15534](https://github.com/nushell/nushell/pull/15534) | +| [@ayax79](https://github.com/ayax79) | Fix output type of `polars schema` | [#15572](https://github.com/nushell/nushell/pull/15572) | +| [@ayax79](https://github.com/ayax79) | fix cannot find issue when performing collect on an eager dataframe | [#15577](https://github.com/nushell/nushell/pull/15577) | +| [@blindFS](https://github.com/blindFS) | feat(completion): stdlib virtual path completion & exportable completion | [#15270](https://github.com/nushell/nushell/pull/15270) | +| [@blindFS](https://github.com/blindFS) | fix(completion): inline defined custom completion | [#15318](https://github.com/nushell/nushell/pull/15318) | +| [@blindFS](https://github.com/blindFS) | fix(lsp): verbose signature help response for less well supported editors | [#15353](https://github.com/nushell/nushell/pull/15353) | +| [@blindFS](https://github.com/blindFS) | fix(parser): skip eval_const if parsing errors detected to avoid panic | [#15364](https://github.com/nushell/nushell/pull/15364) | +| [@blindFS](https://github.com/blindFS) | fix(explore): do not create extra layer for empty entries | [#15367](https://github.com/nushell/nushell/pull/15367) | +| [@blindFS](https://github.com/blindFS) | fix: flatten of empty closures | [#15374](https://github.com/nushell/nushell/pull/15374) | +| [@blindFS](https://github.com/blindFS) | fix(parser): comments in subexpressions of `let`/`mut` | [#15375](https://github.com/nushell/nushell/pull/15375) | +| [@blindFS](https://github.com/blindFS) | fix: command `open` sets default flags when calling "from xxx" converters | [#15383](https://github.com/nushell/nushell/pull/15383) | +| [@blindFS](https://github.com/blindFS) | fix(completion): ls_color for `~/xxx` symlinks | [#15403](https://github.com/nushell/nushell/pull/15403) | +| [@blindFS](https://github.com/blindFS) | fix(completion): completions.external.enable config option not respected | [#15443](https://github.com/nushell/nushell/pull/15443) | +| [@blindFS](https://github.com/blindFS) | feat(lsp): parse_warnings in diagnostics report | [#15449](https://github.com/nushell/nushell/pull/15449) | +| [@blindFS](https://github.com/blindFS) | fix(lsp): more accurate PWD: from env -> parent dir of current file | [#15470](https://github.com/nushell/nushell/pull/15470) | +| [@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) | feat(lsp): snippet style completion for commands | [#15494](https://github.com/nushell/nushell/pull/15494) | +| [@blindFS](https://github.com/blindFS) | fix(lsp): keywords in completion snippets | [#15499](https://github.com/nushell/nushell/pull/15499) | +| [@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) | 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) | 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) | +| [@blindFS](https://github.com/blindFS) | fix(lsp): a panic caused by completion with decl_id out of range | [#15576](https://github.com/nushell/nushell/pull/15576) | +| [@blindFS](https://github.com/blindFS) | fix(lsp): regression of semantic tokens of module-prefixed commands | [#15603](https://github.com/nushell/nushell/pull/15603) | +| [@cosineblast](https://github.com/cosineblast) | Inter-Job direct messaging | [#15253](https://github.com/nushell/nushell/pull/15253) | +| [@cosineblast](https://github.com/cosineblast) | Add job tags | [#15555](https://github.com/nushell/nushell/pull/15555) | +| [@cosineblast](https://github.com/cosineblast) | `config` commands now add frozen jobs to job table | [#15556](https://github.com/nushell/nushell/pull/15556) | +| [@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) | +| [@fdncred](https://github.com/fdncred) | bump uutils crates to 0.0.30 | [#15316](https://github.com/nushell/nushell/pull/15316) | +| [@fdncred](https://github.com/fdncred) | add more columns to macos `ps -l` | [#15341](https://github.com/nushell/nushell/pull/15341) | +| [@fdncred](https://github.com/fdncred) | update human-date-parser to 3.0 | [#15426](https://github.com/nushell/nushell/pull/15426) | +| [@fdncred](https://github.com/fdncred) | bump to the latest rust version | [#15483](https://github.com/nushell/nushell/pull/15483) | +| [@fdncred](https://github.com/fdncred) | Revert "Fix #15394 for `table -e` wrapping issue" | [#15498](https://github.com/nushell/nushell/pull/15498) | +| [@fdncred](https://github.com/fdncred) | fix `datetime-diff` so that it reports ms, us, ns as well | [#15537](https://github.com/nushell/nushell/pull/15537) | +| [@fdncred](https://github.com/fdncred) | add `--raw-value` option to `debug` command | [#15581](https://github.com/nushell/nushell/pull/15581) | +| [@fdncred](https://github.com/fdncred) | add more details to `decribe -d` | [#15591](https://github.com/nushell/nushell/pull/15591) | +| [@fdncred](https://github.com/fdncred) | bump reedline to 75f2c50 | [#15659](https://github.com/nushell/nushell/pull/15659) | +| [@fennewald](https://github.com/fennewald) | Limit Allowed `serde_json` Versions to Match Usage | [#15504](https://github.com/nushell/nushell/pull/15504) | +| [@g2p](https://github.com/g2p) | Upgrade calamine dependency to fix zip semver breakage | [#15657](https://github.com/nushell/nushell/pull/15657) | +| [@hfrentzel](https://github.com/hfrentzel) | Run scripts of any file extension in PATHEXT on Windows | [#15611](https://github.com/nushell/nushell/pull/15611) | +| [@hustcer](https://github.com/hustcer) | Fix upgrading and checking of typos | [#15454](https://github.com/nushell/nushell/pull/15454) | +| [@hustcer](https://github.com/hustcer) | Update Nu to 0.103.0 for release workflow and improve Windows OS checks | [#15625](https://github.com/nushell/nushell/pull/15625) | +| [@jjflash95](https://github.com/jjflash95) | Fix #15440 default --empty fails at empty streams | [#15562](https://github.com/nushell/nushell/pull/15562) | +| [@kidrigger](https://github.com/kidrigger) | Fix examples about RFC3339 format in `date now` and `format date`. | [#15563](https://github.com/nushell/nushell/pull/15563) | +| [@lazenga](https://github.com/lazenga) | Fix #13546: Outer joins incorrectly removing unmatched rows | [#15472](https://github.com/nushell/nushell/pull/15472) | +| [@migraine-user](https://github.com/migraine-user) | Fix typo in doc_config.nu + small description | [#15461](https://github.com/nushell/nushell/pull/15461) | +| [@mokurin000](https://github.com/mokurin000) | fix(nu-command): support ACL, SELinux, e.g. in cd have_permission check | [#15360](https://github.com/nushell/nushell/pull/15360) | +| [@mztikk](https://github.com/mztikk) | Consider PATH when running command is nuscript in windows | [#15486](https://github.com/nushell/nushell/pull/15486) | +| [@pyz4](https://github.com/pyz4) | `polars cast`: add decimal option for dtype parameter | [#15464](https://github.com/nushell/nushell/pull/15464) | +| [@pyz4](https://github.com/pyz4) | `polars into-df`/`polars into-lazy`: `--schema` will not throw error if only some columns are defined | [#15473](https://github.com/nushell/nushell/pull/15473) | +| [@pyz4](https://github.com/pyz4) | FIX `polars as-datetime`: ignores timezone information on conversion | [#15490](https://github.com/nushell/nushell/pull/15490) | +| [@pyz4](https://github.com/pyz4) | `polars`: add new command `polars replace-time-zone` | [#15538](https://github.com/nushell/nushell/pull/15538) | +| [@pyz4](https://github.com/pyz4) | `polars`: add new command `polars convert-time-zone` | [#15550](https://github.com/nushell/nushell/pull/15550) | +| [@pyz4](https://github.com/pyz4) | `polars`: add new command `polars over` | [#15551](https://github.com/nushell/nushell/pull/15551) | +| [@pyz4](https://github.com/pyz4) | `polars`: extend `NuExpression::extract_exprs` to handle records | [#15553](https://github.com/nushell/nushell/pull/15553) | +| [@pyz4](https://github.com/pyz4) | `polars`: update `get-` datetime components commands to allow expressions as inputs | [#15557](https://github.com/nushell/nushell/pull/15557) | +| [@pyz4](https://github.com/pyz4) | `polars`: update `polars lit` to handle nushell Value::Duration and Value::Date types | [#15564](https://github.com/nushell/nushell/pull/15564) | +| [@pyz4](https://github.com/pyz4) | `polars`: expand `polars col` to handle multiple columns and by types | [#15570](https://github.com/nushell/nushell/pull/15570) | +| [@pyz4](https://github.com/pyz4) | fix(polars): cast as date now returns Date type instead of Datetime\ | [#15574](https://github.com/nushell/nushell/pull/15574) | +| [@pyz4](https://github.com/pyz4) | feat(polars): add `polars truncate` for rounding datetimes | [#15582](https://github.com/nushell/nushell/pull/15582) | +| [@pyz4](https://github.com/pyz4) | feat(polars): loosen constraints on accepted expressions in `polars group-by` | [#15583](https://github.com/nushell/nushell/pull/15583) | +| [@pyz4](https://github.com/pyz4) | feat(polars): enable `as_date` and `as_datetime` to handle expressions as inputs | [#15590](https://github.com/nushell/nushell/pull/15590) | +| [@pyz4](https://github.com/pyz4) | feat(polars): add pow (`**`) operator for polars expressions | [#15598](https://github.com/nushell/nushell/pull/15598) | +| [@pyz4](https://github.com/pyz4) | fix(custom_value) + fix(polars): map `//` operator to FloorDivide for custom values and in polars | [#15599](https://github.com/nushell/nushell/pull/15599) | +| [@pyz4](https://github.com/pyz4) | fix(polars): remove requirement that pivot columns must be same type in `polars pivot` | [#15608](https://github.com/nushell/nushell/pull/15608) | +| [@pyz4](https://github.com/pyz4) | feat(polars): enable parsing decimals in polars schemas | [#15632](https://github.com/nushell/nushell/pull/15632) | +| [@pyz4](https://github.com/pyz4) | fix(polars): conversion from nanoseconds to time_units in Datetime and Duration parsing | [#15637](https://github.com/nushell/nushell/pull/15637) | +| [@pyz4](https://github.com/pyz4) | feat(polars): enable parsing strings as dates and datetime in polars schema | [#15645](https://github.com/nushell/nushell/pull/15645) | +| [@scarlet-storm](https://github.com/scarlet-storm) | Enable socks proxy support in ureq | [#15597](https://github.com/nushell/nushell/pull/15597) | +| [@sebasnallar](https://github.com/sebasnallar) | Add --follow-symlinks flag to glob command (fixes #15559) | [#15626](https://github.com/nushell/nushell/pull/15626) | +| [@sgvictorino](https://github.com/sgvictorino) | preserve variable capture spans in blocks | [#15334](https://github.com/nushell/nushell/pull/15334) | +| [@sgvictorino](https://github.com/sgvictorino) | enable streaming in `random` `binary`/`chars` | [#15361](https://github.com/nushell/nushell/pull/15361) | +| [@sgvictorino](https://github.com/sgvictorino) | reset argument/redirection state after `eval_call` errors | [#15400](https://github.com/nushell/nushell/pull/15400) | +| [@sholderbach](https://github.com/sholderbach) | Fix `to nuon --serialize` of closure | [#15357](https://github.com/nushell/nushell/pull/15357) | +| [@sholderbach](https://github.com/sholderbach) | Fix Exbibyte parsing | [#15515](https://github.com/nushell/nushell/pull/15515) | +| [@sholderbach](https://github.com/sholderbach) | Fix future clippy lints | [#15519](https://github.com/nushell/nushell/pull/15519) | +| [@sholderbach](https://github.com/sholderbach) | Bump `crossbeam-channel` | [#15541](https://github.com/nushell/nushell/pull/15541) | +| [@sholderbach](https://github.com/sholderbach) | Fix labelling of plugins through correct glob | [#15634](https://github.com/nushell/nushell/pull/15634) | +| [@suimong](https://github.com/suimong) | Improve `std/log` performance | [#15614](https://github.com/nushell/nushell/pull/15614) | +| [@vansh284](https://github.com/vansh284) | Improve completions for exact matches (Issue #14794) | [#15387](https://github.com/nushell/nushell/pull/15387) | +| [@vansh284](https://github.com/vansh284) | Substring Match Algorithm | [#15511](https://github.com/nushell/nushell/pull/15511) | +| [@whiter001](https://github.com/whiter001) | create nu_plugin_node_example.js | [#15482](https://github.com/nushell/nushell/pull/15482) | +| [@ysthakur](https://github.com/ysthakur) | Bump to 0.103.1 dev version | [#15347](https://github.com/nushell/nushell/pull/15347) | +| [@ysthakur](https://github.com/ysthakur) | Revert "Improve completions for exact matches (Issue #14794)" | [#15457](https://github.com/nushell/nushell/pull/15457) | +| [@ysthakur](https://github.com/ysthakur) | Enable exact match behavior for any path with slashes | [#15458](https://github.com/nushell/nushell/pull/15458) | +| [@zhiburt](https://github.com/zhiburt) | Fix #15394 for `table -e` wrapping issue | [#15407](https://github.com/nushell/nushell/pull/15407) | +| [@zhiburt](https://github.com/zhiburt) | fix f25525b | [#15500](https://github.com/nushell/nushell/pull/15500) | From 8b424fc26ea4a356f04827e19a1adba3e8f59a1f Mon Sep 17 00:00:00 2001 From: NotTheDr01ds <32344964+NotTheDr01ds@users.noreply.github.com> Date: Tue, 29 Apr 2025 22:35:36 -0400 Subject: [PATCH 8/8] Final with ToC --- blog/2025-04-29-nushell_0_104_0.md | 129 +++++++++++++++++++---------- 1 file changed, 86 insertions(+), 43 deletions(-) diff --git a/blog/2025-04-29-nushell_0_104_0.md b/blog/2025-04-29-nushell_0_104_0.md index db0f2976c6e..1a34794e1ca 100644 --- a/blog/2025-04-29-nushell_0_104_0.md +++ b/blog/2025-04-29-nushell_0_104_0.md @@ -20,13 +20,56 @@ 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) -# Highlights and themes of this release +# Highlights and themes of this release [[toc](#table-of-contents)] -## New Job-Control Features +## New Job-Control Features [[toc](#table-of-contents)] -### Inter-Job Messaging (Experimental) +### Inter-Job Messaging (Experimental) [[toc](#table-of-contents)] Jobs can now communicate with other jobs. The following commands were added in [#15253](https://github.com/nushell/nushell/pull/15253): @@ -38,15 +81,15 @@ Jobs can now communicate with other jobs. The following commands were added in See `help job ` for details. -### Job tags +### Job tags [[toc](#table-of-contents)] Jobs can now be tagged using `job tag`, added in [#15555](https://github.com/nushell/nushell/pull/15555). -## New `datetime` and `duration` Features +## New `datetime` and `duration` Features [[toc](#table-of-contents)] Thanks to [@LoicRiegel](https://github.com/LoicRiegel) for a number of `datetime` and `duration` features in this release: -### New `date from-human` command +### New `date from-human` command [[toc](#table-of-contents)] The new `date from-human` command introduced in [#15495](https://github.com/nushell/nushell/pull/15495) is now used to parse human-language date forms like _"tomorrow"_ into `datetime` values. @@ -61,7 +104,7 @@ The equivalent functionality from `into datetime` has been removed from that com See a full overview of the [breaking changes](#breaking-changes) ::: -### `into datetime` now accepts a record +### `into datetime` now accepts a record [[toc](#table-of-contents)] With [#15455](https://github.com/nushell/nushell/pull/15455), it is now possible to construct a datetime from a record input. If the timezone is not specified, the locale is used: @@ -70,7 +113,7 @@ With [#15455](https://github.com/nushell/nushell/pull/15455), it is now possible # => Sun, 30 Mar 2025 12:15:59 +0200 (2 weeks ago) ``` -### `into duration` now accepts a record +### `into duration` now accepts a record [[toc](#table-of-contents)] With [#15600](https://github.com/nushell/nushell/pull/15600), it is now possible to construct a datetime from a record input. If the timezone is not specified, the local is used: @@ -79,7 +122,7 @@ With [#15600](https://github.com/nushell/nushell/pull/15600), it is now possible # => -10wk 1day 2hr 3min 4sec 5ms 6µs 7ns ``` -### `into datetime --format` can now parse dates and times separately +### `into datetime --format` can now parse dates and times separately [[toc](#table-of-contents)] Previously, `into datetime --format` required both a date and a time. With [#15544](https://github.com/nushell/nushell/pull/15544), each can be created separately. The system's local timezone will be used @@ -92,7 +135,7 @@ For example, to parse a `DD/MM/YYYY`: # => Mon, 25 Mar 2024 00:00:00 +0100 (a year ago) ``` -### `into duration` now accepts floats +### `into duration` now accepts floats [[toc](#table-of-contents)] With [#15297](https://github.com/nushell/nushell/pull/15297), `into duration` now accepts floats as a valid input type: @@ -101,7 +144,7 @@ With [#15297](https://github.com/nushell/nushell/pull/15297), `into duration` no # => 1day 12hr ``` -## New Polars commands +## New Polars commands [[toc](#table-of-contents)] The following `polars` commands have been added in this release: @@ -114,11 +157,11 @@ The following `polars` commands have been added in this release: - `polars over` ([#15551](https://github.com/nushell/nushell/pull/15551) by [@pyz4](https://github.com/pyz4)) - `polars truncate` ([#15582](https://github.com/nushell/nushell/pull/15582) by [@pyz4](https://github.com/pyz4)) -# Changes +# Changes [[toc](#table-of-contents)] -## Additions +## Additions [[toc](#table-of-contents)] -### `kill` now accepts list spreading +### `kill` now accepts list spreading [[toc](#table-of-contents)] In [#15558](https://github.com/nushell/nushell/pull/15558) from [@Mrfiregem](https://github.com/Mrfiregem), the signature of the `kill` command was changed so that it can accept multiple arguments via the list spreading operator. For example: @@ -126,7 +169,7 @@ In [#15558](https://github.com/nushell/nushell/pull/15558) from [@Mrfiregem](htt ps | where name == bash | kill ...$in.pid ``` -### Custom indicator for missing table values +### Custom indicator for missing table values [[toc](#table-of-contents)] Missing values (not `null`) are represented by ❎ in tables. [#15647](https://github.com/nushell/nushell/pull/15647) from [@Bahex](https://github.com/Bahex) makes this indicator configurable. For example: @@ -134,7 +177,7 @@ Missing values (not `null`) are represented by ❎ in tables. [#15647](https://g $env.config.table.missing_symbol = " ∅ " ``` -### Some `math` commands now work with bounded ranges +### Some `math` commands now work with bounded ranges [[toc](#table-of-contents)] With [#15319](https://github.com/nushell/nushell/pull/15319) from [@LoicRiegel](https://github.com/LoicRiegel), the following commands have been updated to allow bounded ranges as input: @@ -159,23 +202,23 @@ Example: # => ╰───┴────╯ ``` -### 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](#table-of-contents)] Many distributions (including our binary distributions) place plugins in the same directory as the Nushell executable. With [#15380](https://github.com/nushell/nushell/pull/15380) from [@NotTheDr01ds](https://github.com/NotTheDr01ds), plugins in this type of environment will now work out-of-the-box using `plugin register`. -### `env-conversions` helpers added to the standard library +### `env-conversions` helpers added to the standard library [[toc](#table-of-contents)] Previously, the default `$env.ENV_CONVERSION` for `PATH` could be "reused" in other path-related conversions. In a previous release, this conversion was removed and became Rust-based. [#15569](https://github.com/nushell/nushell/pull/15569) by [@NotTheDr01ds](https://github.com/NotTheDr01ds) adds the equivalent helper to the standard library so that it can be easily used. -### Proxy support for `http` commands +### Proxy support for `http` commands [[toc](#table-of-contents)] With [#15597](https://github.com/nushell/nushell/pull/15597) from [@scarlet-storm](https://github.com/scarlet-storm), commands like `http get` can now utilize a proxy using environment variables. -### Tab completion when importing the standard library and its exports +### Tab completion when importing the standard library and its exports [[toc](#table-of-contents)] With [#15270](https://github.com/nushell/nushell/pull/15270), [@blindFS](https://github.com/blindFS) enabled tab-completion for the standard library and its exports with the `use` (and related) commands. -### New columns available from `ps -l` on macOS +### New columns available from `ps -l` on macOS [[toc](#table-of-contents)] [#15341](https://github.com/nushell/nushell/pull/15341) from [@fdncred](https://github.com/fdncred) adds the following columns to `ps -l` on macOS: @@ -183,78 +226,78 @@ With [#15270](https://github.com/nushell/nushell/pull/15270), [@blindFS](https:/ - `priority` - `process_threads` -### LSP: Snippet-style completions +### LSP: Snippet-style completions [[toc](#table-of-contents)] In [#15494](https://github.com/nushell/nushell/pull/15494), [@blindFS](https://github.com/blindFS) added the ability for completions of built-in commands to insert a snippet with placeholders for its arguments. In addition, you'll find numerous LSP fixes below from [@blindFS](https://github.com/blindFS). -### `debug --raw-value` +### `debug --raw-value` [[toc](#table-of-contents)] [@fdncred](https://github.com/fdncred) added a `--raw-value` option to the `debug` command in [15581](https://github.com/nushell/nushell/pull/15581) to allow retrieval of only the debug string part of the Nushell value. -### More info from `describe --detailed` +### More info from `describe --detailed` [[toc](#table-of-contents)] In [#15591](https://github.com/nushell/nushell/pull/15591), [@fdncred](https://github.com/fdncred) added more details to the `describe --detailed` output, including the Rust data type, the Nushell data type, and the value. -### Support `PATHEXT` for additional extensions on Windows +### Support `PATHEXT` for additional extensions on Windows [[toc](#table-of-contents)] With the changes in [#15611](https://github.com/nushell/nushell/pull/15611) by [@hfrentzel](https://github.com/hfrentzel), Nushell will now automatically attempt to execute scripts using any extension found in the `PATHEXT` environment variable on Windows. -### Execute Nushell scripts on the Path in Windows +### Execute Nushell scripts on the Path in Windows [[toc](#table-of-contents)] Also, with [#15486](https://github.com/nushell/nushell/pull/15486) from [@mztikk](https://github.com/mztikk), Nushell scripts can be more easily executed from any directory in the `Path`. -### New flag `glob --follow-symlinks` +### New flag `glob --follow-symlinks` [[toc](#table-of-contents)] [@sebasnallar](https://github.com/sebasnallar) added `--follow-symlinks` to ... folllow symlinks when globbing ([#15626](https://github.com/nushell/nushell/pull/15626)) -### Substring match algorithm +### Substring match algorithm [[toc](#table-of-contents)] In [#15511](https://github.com/nushell/nushell/pull/15511), [@vansh284](https://github.com/vansh284) added the option to use substring matching for completions. Previously, only prefix and fuzzy matching were allowed. Users can now set `$env.config.completions.algorithm` to `"substring"` to enable this. Custom completers already had the ability to use substring matching by setting `positional: false` in their [options](https://www.nushell.sh/book/custom_completions.html#options-for-custom-completions). However, `positional` has now been deprecated, and completers should set `completion_algorithm: "substring"` to maintain the same behavior. -## Breaking changes +## Breaking changes [[toc](#table-of-contents)] -### Parse human date time explicitly +### Parse human date time explicitly [[toc](#table-of-contents)] `into datetime` used to parse not only strictly formatted date time strings, but also human readable ones. This created some situations where unexpected values might result from `into datetime`. This functionality has been removed. Instead, users can now explicitly choose to opt-in to that functionality using the new `date from-human` command added in [#15495](https://github.com/nushell/nushell/pull/15495) by [@LoicRiegel](https://github.com/LoicRiegel). -### `str join` formatting for `datetime` values has changed +### `str join` formatting for `datetime` values has changed [[toc](#table-of-contents)] When a `datetime` is passed to `str join`, the resulting format of the string has changed. With [#15629](https://github.com/nushell/nushell/pull/15629) from [@LoicRiegel](https://github, it will now format positive dates using RFC2822 and negative dates using RFC3339. This could be a breaking change if you depend on a particular format of the output of `str join`. Consider using `format date` before `str join`. -### `history` with sqlite uses datetimes now +### `history` with sqlite uses datetimes now [[toc](#table-of-contents)] Previously, the `history` command would return a `start_timestamp` with a `string` when using the SQLite backend. With [#15630](https://github.com/nushell/nushell/pull/15630), it now returns an actual Nushell `datetime`. If you were previously relying on a `string` value from that column, you can easily convert it using `format date`. -### `date` is now `datetime` +### `date` is now `datetime` [[toc](#table-of-contents)] The `describe` command previously incorrectly reported `datetime` values as `date`. This has been fixed in [#15264](https://github.com/nushell/nushell/pull/15264). If you were previously checking the type of a value using `describe`, you should change occurrences of `date` to `datetime`. -## Deprecations +## Deprecations [[toc](#table-of-contents)] -### `positional` completer option +### `positional` completer option [[toc](#table-of-contents)] The `positional` [option](https://www.nushell.sh/book/custom_completions.html#options-for-custom-completions) available to custom completers has been deprecated. See the section about the [Substring match algorithm](#substring-match-algorithm-toc) above for details. -## Removals +## Removals [[toc](#table-of-contents)] -### Removed `-s` and `-p` in `do` +### Removed `-s` and `-p` in `do` [[toc](#table-of-contents)] We deprecated the `-s` and `-p` flags and planned to remove them in version 0.102.0. We forgot about it for a couple of releases, but [#15456](https://github.com/nushell/nushell/pull/15456) by [WindSoilder](https://github.com/WindSoilder) finally completes this removal. -## Bug fixes and other changes +## Bug fixes and other changes [[toc](#table-of-contents)] | author | title | link | | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | @@ -312,17 +355,17 @@ We deprecated the `-s` and `-p` flags and planned to remove them in version 0.10 | [@zhiburt](https://github.com/zhiburt) | Fix #15394 for `table -e` wrapping issue | [#15407](https://github.com/nushell/nushell/pull/15407) | | [@zhiburt](https://github.com/zhiburt) | fix f25525b | [#15500](https://github.com/nushell/nushell/pull/15500) | -# Notes for plugin developers +# Notes for plugin developers [[toc](#table-of-contents)] -## Convert `IoError` into `LabeledError` +## Convert `IoError` into `LabeledError` [[toc](#table-of-contents)] In version 0.102.0 `IoError`s were added on top of `std::io::Error`s. [@132ikl](https://github.com/132ikl) made it easier in [#15327](https://github.com/nushell/nushell/pull/15327) to return these in `SimplePluginCommand`s. -## New Repo for Plugin Examples +## New Repo for Plugin Examples [[toc](#table-of-contents)] [@cptpiepmatz](https://github.com/cptpiepmatz) has created a [new repository](https://github.com/nushell/plugin-examples) for plugin examples. It includes various examples demonstrating how to write plugins with different features and in multiple languages, including Nu. The existing plugin examples in the main repository will be moved there soon. -# Hall of fame +# Hall of fame [[toc](#table-of-contents)] Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! :pray: @@ -377,7 +420,7 @@ Thanks to all the contributors below for helping us solve issues, improve docume | [@pyz4](https://github.com/pyz4) | feat(polars): enable parsing decimals in polars schemas | [#15632](https://github.com/nushell/nushell/pull/15632) | | [@pyz4](https://github.com/pyz4) | feat(polars): enable parsing strings as dates and datetime in polars schema | [#15645](https://github.com/nushell/nushell/pull/15645) | -# Full changelog +# Full changelog [[toc](#table-of-contents)] | author | title | link | | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |