diff --git a/assets/images/0_86_completions.gif b/assets/images/0_86_completions.gif new file mode 100644 index 00000000000..5227bf3b2d8 Binary files /dev/null and b/assets/images/0_86_completions.gif differ diff --git a/blog/2023-10-17-nushell_0_86.md b/blog/2023-10-17-nushell_0_86.md new file mode 100644 index 00000000000..b2bd376b65a --- /dev/null +++ b/blog/2023-10-17-nushell_0_86.md @@ -0,0 +1,808 @@ +--- +title: Nushell 0.86 +author: The Nu Authors +author_site: https://twitter.com/nu_shell +author_image: https://www.nushell.sh/blog/images/nu_logo.png +excerpt: Today, we're releasing version 0.86 of Nu. This release adds fish-like directory completions, type system improvements, our first officially supported uutils command, and much more. +--- + + + +# Nushell 0.86 + +Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your command line. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful command line pipelines. + + + +Today, we're releasing version 0.86 of Nu. This release adds fish-like directory completions, type system improvements, our first officially supported uutils command, and much more. + +# Where to get it + +Nu 0.86 is available as [pre-built binaries](https://github.com/nushell/nushell/releases/tag/0.86.0) or from [crates.io](https://crates.io/crates/nu). If you have Rust installed you can install it using `cargo install nu`. + +> :bulb: **Note** +> The optional dataframe functionality is available by `cargo install nu --features=dataframe`. + +As part of this release, we also publish a set of optional plugins you can install and use with Nu. To install, use `cargo install nu_plugin_`. + +# Table of content + +- [_Themes of this release / New features_](#themes-of-this-release-new-features-toc) + - [_Hall of fame_](#hall-of-fame-toc) + - [_Bug fixes_](#bug-fixes-toc) + - [_Enhancing the documentation_](#enhancing-the-documentation-toc) + - [_Internal changes_](#internal-changes-toc) + - [_Platform support_](#platform-support-toc) + - [_Making errors better_](#making-errors-better-toc) + - [_Improving the completions in the REPL_](#improving-the-completions-in-the-repl-toc) + - [_The type system_](#the-type-system-toc) + - [_Some news with the standard library_](#some-news-with-the-standard-library-toc) + - [_Miscellaneous_](#miscellaneous-toc) + - [_Our set of commands is evolving_](#our-set-of-commands-is-evolving-toc) + - [_New commands_](#new-commands-toc) + - [_Changes to existing commands_](#changes-to-existing-commands-toc) + - [_A few updates on the `explore` command_](#a-few-updates-on-the-explore-command-toc) + - [_Deprecated commands_](#deprecated-commands-toc) + - [_Removed commands_](#removed-commands-toc) +- [_Breaking changes_](#breaking-changes-toc) +- [_Full changelog_](#full-changelog-toc) + +# Themes of this release / New features [[toc](#table-of-content)] + + + +## Hall of fame [[toc](#table-of-content)] + +### Bug fixes [[toc](#table-of-content)] + +Thanks to all the contributors below for helping us solve issues and bugs :pray:. This effort is a major part of what is moving Nushell closer to 1.0 with each release. +| author | title | pr | +| -------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------- | +| [@anka-213](https://github.com/anka-213) | Fix exponential parser time on sequence of [[[[ | [#10439](https://github.com/nushell/nushell/pull/10439) | +| [@anka-213](https://github.com/anka-213) | Fix tilde-expansion for multi-byte unicode chars | [#10434](https://github.com/nushell/nushell/pull/10434) | +| [@sholderbach](https://github.com/sholderbach) | Improve `select` row perf for large N | [#10355](https://github.com/nushell/nushell/pull/10355) | +| [@anka-213](https://github.com/anka-213) | Prevent cubic time on nested parentheses | [#10467](https://github.com/nushell/nushell/pull/10467) | +| [@amtoine](https://github.com/amtoine) | fix public boolean switches in the standard library | [#10477](https://github.com/nushell/nushell/pull/10477) | +| [@bobhy](https://github.com/bobhy) | std dt datetime-diff: fix uninitialized field ref when borrowing | [#10466](https://github.com/nushell/nushell/pull/10466) | +| [@NotLebedev](https://github.com/NotLebedev) | Fix default argument value type checking | [#10460](https://github.com/nushell/nushell/pull/10460) | +| [@fdncred](https://github.com/fdncred) | fix magenta_reverse and friends | [#10491](https://github.com/nushell/nushell/pull/10491) | +| [@zhiburt](https://github.com/zhiburt) | nu-table: Fix failing test (relied on termwidth assumptions) | [#10492](https://github.com/nushell/nushell/pull/10492) | +| [@sholderbach](https://github.com/sholderbach) | Fix editor config for reedline and `config nu/env` | [#10535](https://github.com/nushell/nushell/pull/10535) | +| [@fennewald](https://github.com/fennewald) | Fix Default Prompt Tilde Insertion Logic | [#10539](https://github.com/nushell/nushell/pull/10539) | +| [@jntrnr](https://github.com/jntrnr) | fix windows default prompt slash direction | [#10555](https://github.com/nushell/nushell/pull/10555) | +| [@lavafroth](https://github.com/lavafroth) | fix: complete paths surrounded by quotes or backticks | [#10600](https://github.com/nushell/nushell/pull/10600) | +| [@dmatos2012](https://github.com/dmatos2012) | ucp: Change error when directory is specified but not recursive | [#10609](https://github.com/nushell/nushell/pull/10609) | +| [@zhiburt](https://github.com/zhiburt) | nu-explore: Try to fix a truncation issue in expand view | [#10580](https://github.com/nushell/nushell/pull/10580) | +| [@kubouch](https://github.com/kubouch) | Fix wrong parsing of signatures in predecl scan | [#10637](https://github.com/nushell/nushell/pull/10637) | +| [@kubouch](https://github.com/kubouch) | Fix parsing of signature inp/out types in predecls | [#10642](https://github.com/nushell/nushell/pull/10642) | +| [@gaetschwartz](https://github.com/gaetschwartz) | fix labelled error from shell error | [#10639](https://github.com/nushell/nushell/pull/10639) | +| [@CAD97](https://github.com/CAD97) | Fix registry query flag validation | [#10648](https://github.com/nushell/nushell/pull/10648) | +| [@CAD97](https://github.com/CAD97) | Fix clippy in registry_query.rs | [#10652](https://github.com/nushell/nushell/pull/10652) | +| [@WindSoilder](https://github.com/WindSoilder) | fix clippy | [#10659](https://github.com/nushell/nushell/pull/10659) | +| [@sholderbach](https://github.com/sholderbach) | Fix output types of `math` commands to be narrower | [#9740](https://github.com/nushell/nushell/pull/9740) | +| [@zhiburt](https://github.com/zhiburt) | nu-table: Use config color scheme in kv tables and `table -e` | [#10720](https://github.com/nushell/nushell/pull/10720) | +| [@lavafroth](https://github.com/lavafroth) | fix: only escape path containing numbers if they can be valid floating points | [#10719](https://github.com/nushell/nushell/pull/10719) | +| [@fdncred](https://github.com/fdncred) | evaluate `$nu` during `--ide-check` | [#10470](https://github.com/nushell/nushell/pull/10470) | +| [@WindSoilder](https://github.com/WindSoilder) | allow early return outside of main | [#10514](https://github.com/nushell/nushell/pull/10514) | +| [@lavafroth](https://github.com/lavafroth) | Preserve relative paths for local files | [#10658](https://github.com/nushell/nushell/pull/10658) | +| [@bobhy](https://github.com/bobhy) | glob with ../ prefix now works; | [#10504](https://github.com/nushell/nushell/pull/10504) | +| [@fnuttens](https://github.com/fnuttens) | Add support for HTTP proxy in network commands | [#10401](https://github.com/nushell/nushell/pull/10401) | + +### Enhancing the documentation [[toc](#table-of-content)] + +Thanks to all the contributors below for helping us making the documentation of Nushell commands better :pray: +| author | title | pr | +| -------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------- | +| [@sholderbach](https://github.com/sholderbach) | Docstring some intricacies around `SyntaxShape` | [#10544](https://github.com/nushell/nushell/pull/10544) | +| [@Hofer-Julian](https://github.com/Hofer-Julian) | Add long options for bits and bytes | [#10601](https://github.com/nushell/nushell/pull/10601) | +| [@Hofer-Julian](https://github.com/Hofer-Julian) | Add long options for conversions | [#10602](https://github.com/nushell/nushell/pull/10602) | +| [@Hofer-Julian](https://github.com/Hofer-Julian) | Use long options for debug | [#10621](https://github.com/nushell/nushell/pull/10621) | +| [@Hofer-Julian](https://github.com/Hofer-Julian) | Add long options for core and dataframes | [#10619](https://github.com/nushell/nushell/pull/10619) | +| [@Hofer-Julian](https://github.com/Hofer-Julian) | Add long options for filters | [#10641](https://github.com/nushell/nushell/pull/10641) | +| [@Hofer-Julian](https://github.com/Hofer-Julian) | Add long options for formats | [#10645](https://github.com/nushell/nushell/pull/10645) | +| [@amtoine](https://github.com/amtoine) | add examples with `..` and `/` to `path join` | [#10620](https://github.com/nushell/nushell/pull/10620) | +| [@DanyPDev](https://github.com/DanyPDev) | Add themes to help command when available #10318 | [#10623](https://github.com/nushell/nushell/pull/10623) | + +### Internal changes [[toc](#table-of-content)] + +Thanks to all the contributors below for working on the internals of Nushell, doing refactoring and bookkeeping, ... :pray: +| author | title | pr | +| -------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------- | +| [@fdncred](https://github.com/fdncred) | allow `values` command to support `LazyRecord`s | [#10418](https://github.com/nushell/nushell/pull/10418) | +| [@sholderbach](https://github.com/sholderbach) | Remove dead BSON related tests | [#10458](https://github.com/nushell/nushell/pull/10458) | +| [@sholderbach](https://github.com/sholderbach) | Simplify `nu!` test macros. | [#10403](https://github.com/nushell/nushell/pull/10403) | +| [@sholderbach](https://github.com/sholderbach) | Improve assertions in `src/tests.rs` | [#10449](https://github.com/nushell/nushell/pull/10449) | +| [@sholderbach](https://github.com/sholderbach) | Split up `nu-protocol/src/engine/engine_state.rs` | [#10368](https://github.com/nushell/nushell/pull/10368) | +| [@sholderbach](https://github.com/sholderbach) | Remove unused `SyntaxShape::Variable` | [#10511](https://github.com/nushell/nushell/pull/10511) | +| [@sholderbach](https://github.com/sholderbach) | Remove parsing literals of unrepresentable `SyntaxShape`s | [#10512](https://github.com/nushell/nushell/pull/10512) | +| [@amtoine](https://github.com/amtoine) | break the definition of LS_COLORS onto multiple lines | [#10538](https://github.com/nushell/nushell/pull/10538) | +| [@sholderbach](https://github.com/sholderbach) | Rename `SyntaxShape::Custom` to `CompleterWrapper` | [#10548](https://github.com/nushell/nushell/pull/10548) | +| [@bobhy](https://github.com/bobhy) | `toolkit check pr` does same clippy checks as github CI | [#10528](https://github.com/nushell/nushell/pull/10528) | +| [@Hofer-Julian](https://github.com/Hofer-Julian) | chore: Small refactor of `eval.rs` | [#10554](https://github.com/nushell/nushell/pull/10554) | +| [@stormasm](https://github.com/stormasm) | engine eval.rs remove pub from fn eval_element_with_input | [#10587](https://github.com/nushell/nushell/pull/10587) | +| [@sholderbach](https://github.com/sholderbach) | Parse custom completer annotation only in args | [#10581](https://github.com/nushell/nushell/pull/10581) | +| [@sholderbach](https://github.com/sholderbach) | Move `SyntaxShape` specifier parsing into own file | [#10448](https://github.com/nushell/nushell/pull/10448) | +| [@Hofer-Julian](https://github.com/Hofer-Julian) | Let `run_in_login_mode` succeed even with broken local config | [#10622](https://github.com/nushell/nushell/pull/10622) | +| [@fdncred](https://github.com/fdncred) | change canonicalize test use a more deeply rooted folder | [#10685](https://github.com/nushell/nushell/pull/10685) | +| [@quat1024](https://github.com/quat1024) | Use `heck` for string casing (again) | [#10680](https://github.com/nushell/nushell/pull/10680) | +| [@lavafroth](https://github.com/lavafroth) | refactor: move the `partial_from` function to the single place it is invoked | [#10705](https://github.com/nushell/nushell/pull/10705) | + +### Platform support [[toc](#table-of-content)] + +Thanks to all the contributors below for helping Nushell be used on more platforms easily :pray: +| author | title | pr | +| -------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------- | +| [@fdncred](https://github.com/fdncred) | optimize aarch64 when able | [#10433](https://github.com/nushell/nushell/pull/10433) | +| [@hustcer](https://github.com/hustcer) | Add full releases of Nu binaries along with the standard releases | [#10457](https://github.com/nushell/nushell/pull/10457) | +| [@hustcer](https://github.com/hustcer) | feat: Update nightly build workflow add full release support | [#10485](https://github.com/nushell/nushell/pull/10485) | +| [@hustcer](https://github.com/hustcer) | Update winget submission workflow include only default msi files | [#10487](https://github.com/nushell/nushell/pull/10487) | +| [@hustcer](https://github.com/hustcer) | Improve release script for github release workflow | [#10502](https://github.com/nushell/nushell/pull/10502) | +| [@hustcer](https://github.com/hustcer) | Update build flags for riscv64gc and armv7 targets | [#10564](https://github.com/nushell/nushell/pull/10564) | + +### Making errors better [[toc](#table-of-content)] + +Thanks to all the contributors below for making errors better and less confusing for users :pray: +| author | title | pr | +| -------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------- | +| [@amtoine](https://github.com/amtoine) | show the whole path in "missing mod.nu" errors | [#10416](https://github.com/nushell/nushell/pull/10416) | +| [@amtoine](https://github.com/amtoine) | show the full directory / file path in "directory not found" error | [#10430](https://github.com/nushell/nushell/pull/10430) | +| [@WindSoilder](https://github.com/WindSoilder) | make better error message for `not` operator | [#10507](https://github.com/nushell/nushell/pull/10507) | +| [@amtoine](https://github.com/amtoine) | improve assertion error messages in `std assert` | [#10551](https://github.com/nushell/nushell/pull/10551) | +| [@GPadley](https://github.com/GPadley) | Map `DirectoryNotFound` to `FileNotFound` for `open` command (issue #10085) | [#10089](https://github.com/nushell/nushell/pull/10089) | +| [@brunerm99](https://github.com/brunerm99) | Add warning to `url join` when input key is not supported (#10506) | [#10565](https://github.com/nushell/nushell/pull/10565) | +| [@amtoine](https://github.com/amtoine) | make "can't follow stream paths" error a bit better | [#10569](https://github.com/nushell/nushell/pull/10569) | +| [@brunerm99](https://github.com/brunerm99) | give better error if required field of `url join` is invalid | [#10589](https://github.com/nushell/nushell/pull/10589) | + +## Improving the completions in the [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop) [[toc](#table-of-content)] + +With Nushell `0.86.0` come a few improvements to the completions! + +[@ZerdoX-x](https://github.com/ZerdoX-x) did add built-in support for the `doas` command in addition +to `sudo` in [#10256](https://github.com/nushell/nushell/pull/10256). + +In [#10543](https://github.com/nushell/nushell/pull/10543), [@lavafroth](https://github.com/lavafroth) +have implement _Fish-like completions for nested directories_. This means that now typing `tar/de/inc` +in the [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop) of Nushell and +hitting TAB will autocomplete to `./target/debug/incremental` if you are in a Rust directory with +compiled artifact. + +![Animation showing shorthand directory expansion](../assets/images/0_86_completions.gif) + +> :bulb: **Note** +> please have a look at +> [this comment on GitHub](https://github.com/nushell/nushell/issues/10543#issuecomment-1740451687) +> for a preview of this feature. + +::: warning Breaking change +See a full overview of the [breaking changes](#breaking-changes) +::: +As a consequence to [#10543](https://github.com/nushell/nushell/pull/10543), [@jntrnr](https://github.com/jntrnr) +helped remove the _cd with abbreviation_ feature from Nushell. +This feature will be taken care of by the _Fish-like completions_ described above and the removal +mainly means that `$env.config.cd.abbreviations` is not longer a valid config field: do not forget +to update your configs :wink: + +## The type system [[toc](#table-of-content)] + +With this new release, we are still working on the type system of Nushell. + +[@WindSoilder](https://github.com/WindSoilder) has been working on the arguments and options of +custom commands. With [#10424](https://github.com/nushell/nushell/pull/10424), default values won't +overwrite type annotations anymore, i.e. the following is now possible: + +```nushell +def foo [x: any = null] { print $"$x } + +foo "string" # will show `x: string` +foo null # will show `x: ` +``` + +::: warning Breaking change +See a full overview of the [breaking changes](#breaking-changes) +::: +Continuing with the options on custom commands, let's talk about an important change introduced by +[#10456](https://github.com/nushell/nushell/pull/10456) about _boolean_ switches: + +- annotating a _boolean_ option will create an option and will require to pass a boolean value + +```nushell +def foo [--option: bool] { if $option { print "yeah" } } + +foo --option # will give an error +foo --option false # won't print anything +foo --option true # will print "yeah" +``` + +- to create a _boolean_ switch, you need to omit the type annotation + +```nushell +def bar [--switch] { if $switch { print "yeah" } } + +bar # won't print anything +bar --switch # will print "yeah" +``` + +> :bulb: **Note** +> Boolean options are one step towards addressing a major pain point of Nushell: Passing flags around to other commands. +> Calling a command with a flag, such as `def inner [--foo] { ... }`, from another command used to require `if`-`else` to pass the flag: +> ```nushell +> def outer [--foo] { +> if $foo { +> inner --foo +> } else { +> inner +> } +> } +> ``` +> With boolean options, it is now possible to define `def inner [--foo: bool] { ... }` and then call simply as +> ```nushell +> def outer [--foo] { +> inner --foo $foo +> } +> ``` + +Once again, [@NotLebedev](https://github.com/NotLebedev) has been pushing forward type annotations +to their limits, this time by allowing complex types in input/output signaturate for custom commands +and in `let` assignments. This means that [#10405](https://github.com/nushell/nushell/pull/10405) +allows one to write things like: + +```nushell +let my_r: record = { a: 123 } +``` + +or + +```nushell +def my_complex_command []: nothing -> record { { a: 123 } } +``` + +> :bulb: **Note** +> other contributions worth mentionning about the type system: +> | author | title | pr | +> | -------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------- | +> | [@sholderbach](https://github.com/sholderbach) | Use `int` type name consistently | [#10579](https://github.com/nushell/nushell/pull/10579) | +> | [@sholderbach](https://github.com/sholderbach) | Relax type-check of key-less `table`/`record` | [#10629](https://github.com/nushell/nushell/pull/10629) | +> | [@fdncred](https://github.com/fdncred) | change Type::Float => SyntaxShape::Number to SyntaxShape::Float | [#10689](https://github.com/nushell/nushell/pull/10689) | + +## Unified command definitions + +Nushell currently has three ways to define a command: +* `def` to define a regular command +* `def-env` to define a command that preserves the environment +* `extern-wrapped` to define a command with a signature where unknown flags and parameters are collected into strings without throwing an error +* (`extern` defines an external signature, not a real command) + +In this release, [@kubouch](https://github.com/kubouch) unified the syntax in [#10566](https://github.com/nushell/nushell/pull/10566) such that the `def-env` and `extern-wrapped` are now defined with the `--env` and `--wrapped` options to the `def` keyword. +We made this change to go in line with the `let-env` removal and simplifying the language in general. +Also, confusingly, `extern-wrapped` has nothing to do with `extern` apart from the permissive signature. +We hope the new notation makes it clearer. +A bonus feature of this change is that now you can define `def --env --wrapped`! + +> :bulb: **Note** +> In the next release, `def-env` and `extern-wrapped` will get deprecated. If you have any of those definitions in your scripts, simply replace them with `def --env` or `def --wrapped`. In the following releases, they will be removed completely. + +## Some news with the standard library [[toc](#table-of-content)] + +Thanks to [@Yethal](https://github.com/Yethal) and their work in [#10545](https://github.com/nushell/nushell/pull/10545), +the use of the test runner and the `std testing run-tests` command should be faster! + +Work has been done to improve the `std log` module: + +- [@gaetschwartz](https://github.com/gaetschwartz) allow specifying a custom date format with [#10603](https://github.com/nushell/nushell/pull/10603) +- [@fdncred](https://github.com/fdncred) remove the underline from `NU_LOG_FORMAT` with [#10604](https://github.com/nushell/nushell/pull/10604) + +Finally, a bug with `std dirs goto`, a _shell_ command in the _prelude_ of the library, has been +fixed by [@bobhy](https://github.com/bobhy) in [#10706](https://github.com/nushell/nushell/pull/10706). + +## Miscellaneous [[toc](#table-of-content)] + +Nushell now supports the _keyboard enhancement protocol_ from [Kitty](https://sw.kovidgoyal.net/kitty/) +with the work of [@Abdillah](https://github.com/Abdillah) in [#10540](https://github.com/nushell/nushell/pull/10540). +This feature is off by default but can be turned on in `config.nu` with the `$env.use_kitty_protocol` +config option. + +Nushell and Direnv are now integrated with each other thanks to [@amtoine](https://github.com/amtoine) +in [direnv/direnv#1175](https://github.com/direnv/direnv/pull/1175) and +[#10675](https://github.com/nushell/nushell/pull/10675). + +With the changes from [#10593](https://github.com/nushell/nushell/pull/10593) written by +[@gaetschwartz](https://github.com/gaetschwartz), `open` can now read `tar.gz` file because `from` +can handle multiple extensions. To be more precise, if `from tar.gz` and `from gz` are defined at the +same time, `open foo.tar.gz` will try to call `from tar.gz` first and then fall back to `from gz`. + +Let's finish with some delight to make the Nushell experience a bit nicer: + +- transient prompts are now possible introduced in [#10391](https://github.com/nushell/nushell/pull/10391) + by [@ysthakur](https://github.com/ysthakur) +- `LS_COLORS` supports `.fb2` files as text documents thanks to [@1256-bits](https://github.com/1256-bits) + in [#10532](https://github.com/nushell/nushell/pull/10532) +- a few more grid icons have been added by [@fdncred](https://github.com/fdncred) in [#10583](https://github.com/nushell/nushell/pull/10583) + +## Our set of commands is evolving [[toc](#table-of-content)] + +As usual, new release rhyms with changes to commands! + +It's official! ๐Ÿฅณ With the landing of PR [10678](https://github.com/nushell/nushell/pull/10678) the +uutils/coreutils version of `cp` is now the default copy command in nushell. We're so happy to have +this command landed and we're working on several other commands. If you'd like to help out please +visit our [Discord](https://discord.gg/NtAbbGn) and ask about helping. The +[coreutils](https://github.com/uutils/coreutils) team would also appreciate your help since changes +need to be made their before integrating into nushell. + +### New commands [[toc](#table-of-content)] + +- when parsing raw data streams from external commands, a common task in Nushell is to give explicit + types to all fields and columns of the parsed data structure. Until now, this had to be done manually + but, thanks to [@fdncred](https://github.com/fdncred) and [#10427](https://github.com/nushell/nushell/pull/10427), + the new `into value` command should help make that task easier by trying to infer the types for you: + +```nushell +# should help you catch integer user and group IDs in the `/etc/passwd` file on *nix systems +open /etc/passwd | lines | split column ":" user . uid gid desc home shell | into value +``` + +- [@zhiburt](https://github.com/zhiburt) did add an `--abbreviated` option to `table` to truncate the + output of long tables in [#10399](https://github.com/nushell/nushell/pull/10399) +- to get the content of the default config files of Nushell without overwritting the true `config.nu` + and `env.nu`, [@poliorcetics](https://github.com/poliorcetics) have added the `--default` option to + both `config nu` and `config env` in [#10480](https://github.com/nushell/nushell/pull/10480) +- to now about all the available escapes that Nushell supports, [@vedaRadev](https://github.com/vedaRadev) + have added `help escapes` in [#10522](https://github.com/nushell/nushell/pull/10522) +- tired of crawling the internet or computing series of number with loops and mutable variables? + [@hudclark](https://github.com/hudclark) got your back with the new `unfold` command from [#10489](https://github.com/nushell/nushell/pull/10489)! + The first 10 Fibonacci numbers can now be computed very easily with something like + +```nushell +unfold [0, 1] {|fib| {out: $fib.0, next: [$fib.1, ($fib.0 + $fib.1)]} } | first 10 +``` + +To crawl multi-page API responses, e.g. when listing issues of a GitHub repository, the `unfold` is +very handy and allows to transform + +```nushell +mut pages = [] +for page in 1.. { + let resp = http get ( + { + scheme: https, + host: "api.github.com", + path: "/repos/nushell/nushell/issues", + params: { page: $page, per_page: $PAGE_SIZE } + } | url join) + + $pages = ($pages | append $resp) + + if ($resp | length) < $PAGE_SIZE { + break + } +} +$pages +``` + +into + +```nushell +unfold 1 {|page| + let resp = http get ( + { + scheme: https, + host: "api.github.com", + path: "/repos/nushell/nushell/issues", + params: { page: $page, per_page: $PAGE_SIZE } + } | url join) + + if ($resp | length) < $PAGE_SIZE { + {out: $resp} + } else { + {out: $resp, next: ($page + 1)} + } +} +``` + +- in previous release, `from ndjson` and `from jsonl` have been added to the standard library. In this + new release, [@amtoine](https://github.com/amtoine) has added their `to` counterpart in [#10519](https://github.com/nushell/nushell/pull/10519) +- to complete `url encode`, `url decode` has been added by [@lpchaim](https://github.com/lpchaim) in [#10611](https://github.com/nushell/nushell/pull/10611) +- `dfr` to get some help on dataframes by [@sholderbach](https://github.com/sholderbach) in [#10683](https://github.com/nushell/nushell/pull/10683) +- our mascot `ellie` has been added to the standard library by [@amtoine](https://github.com/amtoine) in [#10686](https://github.com/nushell/nushell/pull/10686) +- complementary to the `sys` command, `debug info`, added by [@fdncred](https://github.com/fdncred) in + [#10711](https://github.com/nushell/nushell/pull/10711), should give more insight into the resources + Nushell is using at runtime + +### Changes to existing commands [[toc](#table-of-content)] + +The `open` command is now case-insensitive when it comes to file extensiens thanks to +[@poketch](https://github.com/poketch) in [#10451](https://github.com/nushell/nushell/pull/10451). + +A bug inside `from ics` and `from vcf` has been fixed thanks to [@joergsch](https://github.com/joergsch) +in [#10577](https://github.com/nushell/nushell/pull/10577). + +::: warning Breaking change +See a full overview of the [breaking changes](#breaking-changes) +::: +With [#10526](https://github.com/nushell/nushell/pull/10526) from [@WindSoilder](https://github.com/WindSoilder), +the `--column` option of the `rename` command now takes a `record` instead of a `list`: + +```nushell +> ls | where type == file | rename --column {name: filename, size: nb_bytes} +#โ”ฌfilenameโ”€โ”ฌtypeโ”ฌnb_bytesโ”ฌโ”€โ”€โ”€โ”€โ”€modifiedโ”€โ”€โ”€โ”€โ”€โ”€ +0โ”‚LICENSE โ”‚fileโ”‚ 35.1 KBโ”‚2022-12-23 11:34:42 +1โ”‚README.mdโ”‚fileโ”‚ 9.3 KBโ”‚2023-10-04 18:41:25 +โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +``` + +The `do` command can now mutate its outside environment with a new `--env` option added by [@ClipplerBlood](https://github.com/ClipplerBlood) +in [#10572](https://github.com/nushell/nushell/pull/10572). This means that the following will now be possible: + +```nushell +do --env { cd some/where } +``` + +#### A few updates on the `explore` command [[toc](#table-of-content)] + +Once again, [@rgwood](https://github.com/rgwood) has done work to simplify the `explore` command + +- the highlighting of selected cells has been made easier to see in [#10533](https://github.com/nushell/nushell/pull/10533) | +- some config options have been removed in[#10559](https://github.com/nushell/nushell/pull/10559), + [#10562](https://github.com/nushell/nushell/pull/10562) and [#10570](https://github.com/nushell/nushell/pull/10570) + +### Deprecated commands [[toc](#table-of-content)] + +The following commands and options are being deprecated and will be removed soon: + +- `random int` in favor of `random integer` in [#10520](https://github.com/nushell/nushell/pull/10520) +- the `$nothing` built-in variable in favor of the `null` value in [#10478](https://github.com/nushell/nushell/pull/10478) +- `to xml --pretty {int}` in favor of `to xml --indent {int}` in [#10660](https://github.com/nushell/nushell/pull/10660) + +### Removed commands [[toc](#table-of-content)] + +The following commands are being removed from Nushell: + +- `random decimal` in favor of `random float` in [#10342](https://github.com/nushell/nushell/pull/10342) +- `into decimal` in favor of `into float` in [#10341](https://github.com/nushell/nushell/pull/10341) + +# Breaking changes [[toc](#table-of-content)] + +- [#10456](https://github.com/nushell/nushell/pull/10456) differentiating between `--x` and `--x: bool` + +In 0.86, we now differentiate between a switch `--x` and a flag with a boolean argument `--x: bool`. If you declare a flag as a parameter and give it the `: bool` type annotation, we now require that the flag is followed by a boolean value. Previously, we took the boolean type to mean that the flag was actually a switch. + +- [#10680](https://github.com/nushell/nushell/pull/10680) Use `heck` for string casing (again) + +## Before + +``` +G:/Dev/nu-itself/nushell> [UserID ABCdefGHI foo123bar] | str camel-case +โ•ญโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ +โ”‚ 0 โ”‚ userID โ”‚ +โ”‚ 1 โ”‚ abcdefGHI โ”‚ +โ”‚ 2 โ”‚ foo123Bar โ”‚ +โ•ฐโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ +G:/Dev/nu-itself/nushell> [UserID ABCdefGHI foo123bar] | str snake-case +โ•ญโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ +โ”‚ 0 โ”‚ user_id โ”‚ +โ”‚ 1 โ”‚ ab_cdef_ghi โ”‚ +โ”‚ 2 โ”‚ foo_12_3bar โ”‚ +โ•ฐโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ +``` + +## After + +``` +G:/Dev/nu-itself/nushell> [UserID ABCdefGHI foo123bar] | str camel-case +โ•ญโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ +โ”‚ 0 โ”‚ userId โ”‚ +โ”‚ 1 โ”‚ abCdefGhi โ”‚ +โ”‚ 2 โ”‚ foo123bar โ”‚ +โ•ฐโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ +G:/Dev/nu-itself/nushell> [UserID ABCdefGHI foo123bar] | str snake-case +โ•ญโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ +โ”‚ 0 โ”‚ user_id โ”‚ +โ”‚ 1 โ”‚ ab_cdef_ghi โ”‚ +โ”‚ 2 โ”‚ foo123bar โ”‚ +โ•ฐโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ +``` + +- [#10341](https://github.com/nushell/nushell/pull/10341) remove `into decimal` +- [#10342](https://github.com/nushell/nushell/pull/10342) remove `random decimal` +- [#10588](https://github.com/nushell/nushell/pull/10588) Remove cd w/ abbreviations + +`cd` with abbreviations was a feature you could enable to expand an abbreviated path for you automatically. It would do so after you hit return. In comparing the experience between this and the fish-like path abbreviation completions added in 0.86, we decided the new style of completions satisfied this in a much more visual way. + +- [#10526](https://github.com/nushell/nushell/pull/10526) Rename: change the SyntaxShape of `-c` flag from list to record + +After this change, we need to use -c flag like this: + +``` +> [[a, b, c]; [1, 2, 3]] | rename -c { a: ham } +But we can rename many columns easily, here is another example: +``` + +``` +> [[a, b, c]; [1, 2, 3]] | rename -c { a: ham, b: ham2 } +``` + +# Full changelog [[toc](#table-of-content)] + +## Nushell + +- [fdncred](https://github.com/fdncred) created + - [add coreutils to cp search terms](https://github.com/nushell/nushell/pull/10738) + - [add a `debug info` command to show memory info](https://github.com/nushell/nushell/pull/10711) + - [change Type::Float => SyntaxShape::Number to SyntaxShape::Float](https://github.com/nushell/nushell/pull/10689) + - [change canonicalize test use a more deeply rooted folder](https://github.com/nushell/nushell/pull/10685) + - [rename nushell's cp command to cp-old making coreutils the default cp](https://github.com/nushell/nushell/pull/10678) + - [bump rust-toolchain to 1.71.1](https://github.com/nushell/nushell/pull/10634) + - [remove underline from std NU_LOG_FORMAT](https://github.com/nushell/nushell/pull/10604) + - [add a few more grid icons](https://github.com/nushell/nushell/pull/10583) + - [fix magenta_reverse and friends](https://github.com/nushell/nushell/pull/10491) + - [evaluate `$nu` during `--ide-check`](https://github.com/nushell/nushell/pull/10470) + - [new command: `into value`](https://github.com/nushell/nushell/pull/10427) + - [allow `values` command to support `LazyRecord`s](https://github.com/nushell/nushell/pull/10418) + - [optimize aarch64 when able](https://github.com/nushell/nushell/pull/10433) +- [0scvr](https://github.com/0scvr) created + - [docs: fix typos in CONTRIBUTING.md](https://github.com/nushell/nushell/pull/10727) +- [sholderbach](https://github.com/sholderbach) created + - [Pin `uu_cp` to the `0.0.22` release.](https://github.com/nushell/nushell/pull/10725) + - [Update `polars` to `0.33`](https://github.com/nushell/nushell/pull/10672) + - [Fix output types of `math` commands to be narrower](https://github.com/nushell/nushell/pull/9740) + - [Add a stub `dfr` command](https://github.com/nushell/nushell/pull/10683) + - [Relax type-check of key-less `table`/`record`](https://github.com/nushell/nushell/pull/10629) + - [Move `SyntaxShape` specifier parsing into own file](https://github.com/nushell/nushell/pull/10448) + - [Parse custom completer annotation only in args](https://github.com/nushell/nushell/pull/10581) + - [Use `int` type name consistently](https://github.com/nushell/nushell/pull/10579) + - [Rename `SyntaxShape::Custom` to `CompleterWrapper`](https://github.com/nushell/nushell/pull/10548) + - [Fix editor config for reedline and `config nu/env`](https://github.com/nushell/nushell/pull/10535) + - [Docstring some intricacies around `SyntaxShape`](https://github.com/nushell/nushell/pull/10544) + - [Remove parsing literals of unrepresentable `SyntaxShape`s](https://github.com/nushell/nushell/pull/10512) + - [Remove unused `SyntaxShape::Variable`](https://github.com/nushell/nushell/pull/10511) + - [Rename `random integer` to `random int`](https://github.com/nushell/nushell/pull/10520) + - [Bump `dialoguer` to `0.11.0`](https://github.com/nushell/nushell/pull/10510) + - [Improve `select` row perf for large N](https://github.com/nushell/nushell/pull/10355) + - [Split up `nu-protocol/src/engine/engine_state.rs`](https://github.com/nushell/nushell/pull/10368) + - [Improve assertions in `src/tests.rs`](https://github.com/nushell/nushell/pull/10449) + - [Simplify `nu!` test macros.](https://github.com/nushell/nushell/pull/10403) + - [Remove dead BSON related tests](https://github.com/nushell/nushell/pull/10458) + - [Bump to `0.85.1` development version](https://github.com/nushell/nushell/pull/10431) +- [zhiburt](https://github.com/zhiburt) created + - [nu-table: Use config color scheme in kv tables and `table -e`](https://github.com/nushell/nushell/pull/10720) + - [nu-explore: Try to fix a truncation issue in expand view](https://github.com/nushell/nushell/pull/10580) + - [nu-table: Fix failing test (relied on termwidth assumptions)](https://github.com/nushell/nushell/pull/10492) + - [nu-table: Add table option `--abbreviated`](https://github.com/nushell/nushell/pull/10399) +- [lavafroth](https://github.com/lavafroth) created + - [fix: only escape path containing numbers if they can be valid floating points](https://github.com/nushell/nushell/pull/10719) + - [refactor: move the `partial_from` function to the single place it is invoked](https://github.com/nushell/nushell/pull/10705) + - [Preserve relative paths for local files](https://github.com/nushell/nushell/pull/10658) + - [fix: complete paths surrounded by quotes or backticks](https://github.com/nushell/nushell/pull/10600) + - [Fish-like completions for nested directories](https://github.com/nushell/nushell/pull/10543) +- [gaetschwartz](https://github.com/gaetschwartz) created + - [allow multiple extensions](https://github.com/nushell/nushell/pull/10593) + - [fix labelled error from shell error](https://github.com/nushell/nushell/pull/10639) + - [Allow specifying a custom date format in std log](https://github.com/nushell/nushell/pull/10603) +- [bobhy](https://github.com/bobhy) created + - [dirs goto: update current ring slot before leaving it.](https://github.com/nushell/nushell/pull/10706) + - [ `toolkit check pr` does same clippy checks as github CI](https://github.com/nushell/nushell/pull/10528) + - [glob with ../ prefix now works;](https://github.com/nushell/nushell/pull/10504) + - [std dt datetime-diff: fix uninitialized field ref when borrowing](https://github.com/nushell/nushell/pull/10466) +- [quat1024](https://github.com/quat1024) created + - [Use `heck` for string casing (again)](https://github.com/nushell/nushell/pull/10680) +- [amtoine](https://github.com/amtoine) created + - [add Ellie to the standard library](https://github.com/nushell/nushell/pull/10686) + - [remove `into decimal`](https://github.com/nushell/nushell/pull/10341) + - [add Direnv to the integrations](https://github.com/nushell/nushell/pull/10675) + - [remove `random decimal`](https://github.com/nushell/nushell/pull/10342) + - [add examples with `..` and `/` to `path join`](https://github.com/nushell/nushell/pull/10620) + - [make "can't follow stream paths" error a bit better](https://github.com/nushell/nushell/pull/10569) + - [add `to ndjson` and `to jsonl` to the standard library](https://github.com/nushell/nushell/pull/10519) + - [improve assertion error messages in `std assert`](https://github.com/nushell/nushell/pull/10551) + - [break the definition of LS_COLORS onto multiple lines](https://github.com/nushell/nushell/pull/10538) + - [remove the `$nothing` variable](https://github.com/nushell/nushell/pull/10478) + - [show the full directory / file path in "directory not found" error](https://github.com/nushell/nushell/pull/10430) + - [show the whole path in "missing mod.nu" errors](https://github.com/nushell/nushell/pull/10416) + - [fix public boolean switches in the standard library](https://github.com/nushell/nushell/pull/10477) +- [app/dependabot](https://github.com/app/dependabot) created + - [Bump trash from 3.0.6 to 3.1.0](https://github.com/nushell/nushell/pull/10654) + - [Bump byteorder from 1.4.3 to 1.5.0](https://github.com/nushell/nushell/pull/10657) + - [Bump crate-ci/typos from 1.16.15 to 1.16.17](https://github.com/nushell/nushell/pull/10653) + - [Bump shadow-rs from 0.23.0 to 0.24.1](https://github.com/nushell/nushell/pull/10655) + - [Bump wax from 0.5.0 to 0.6.0](https://github.com/nushell/nushell/pull/10574) + - [Bump crate-ci/typos from 1.16.13 to 1.16.15](https://github.com/nushell/nushell/pull/10575) + - [Bump ureq from 2.7.1 to 2.8.0](https://github.com/nushell/nushell/pull/10573) + - [Bump crate-ci/typos from 1.16.11 to 1.16.13](https://github.com/nushell/nushell/pull/10493) + - [Bump rayon from 1.7.0 to 1.8.0](https://github.com/nushell/nushell/pull/10497) +- [brunerm99](https://github.com/brunerm99) created + - [give better error if required field of `url join` is invalid](https://github.com/nushell/nushell/pull/10589) + - [Add warning to `url join` when input key is not supported (#10506)](https://github.com/nushell/nushell/pull/10565) +- [DanyPDev](https://github.com/DanyPDev) created + - [Add themes to help command when available #10318](https://github.com/nushell/nushell/pull/10623) +- [Hofer-Julian](https://github.com/Hofer-Julian) created + - [Let `run_in_login_mode` succeed even with broken local config](https://github.com/nushell/nushell/pull/10622) + - [Deprecate `to xml --pretty {int}` in favor of `--indent {int}`](https://github.com/nushell/nushell/pull/10660) + - [Add long options for formats](https://github.com/nushell/nushell/pull/10645) + - [Add long options for filters](https://github.com/nushell/nushell/pull/10641) + - [Add long options for core and dataframes](https://github.com/nushell/nushell/pull/10619) + - [Use long options for debug](https://github.com/nushell/nushell/pull/10621) + - [Add long options for conversions](https://github.com/nushell/nushell/pull/10602) + - [Add long options for bits and bytes](https://github.com/nushell/nushell/pull/10601) + - [Port command examples to long option](https://github.com/nushell/nushell/pull/10596) + - [chore: Small refactor of `eval.rs`](https://github.com/nushell/nushell/pull/10554) +- [WindSoilder](https://github.com/WindSoilder) created + - [fix clippy](https://github.com/nushell/nushell/pull/10659) + - [Rename: change the SyntaxShape of `-c` flag from list to record](https://github.com/nushell/nushell/pull/10526) + - [allow early return outside of main](https://github.com/nushell/nushell/pull/10514) + - [make better error message for `not` operator](https://github.com/nushell/nushell/pull/10507) + - [differentiating between `--x` and `--x: bool`](https://github.com/nushell/nushell/pull/10456) + - [don't overrite arg's type if it's annotated explicitly](https://github.com/nushell/nushell/pull/10424) + - [update lock file](https://github.com/nushell/nushell/pull/10437) +- [CAD97](https://github.com/CAD97) created + - [Fix clippy in registry_query.rs](https://github.com/nushell/nushell/pull/10652) + - [Fix registry query flag validation](https://github.com/nushell/nushell/pull/10648) +- [kubouch](https://github.com/kubouch) created + - [Fix parsing of signature inp/out types in predecls](https://github.com/nushell/nushell/pull/10642) + - [Fix wrong parsing of signatures in predecl scan](https://github.com/nushell/nushell/pull/10637) + - [Add --env and --wrapped flags to def](https://github.com/nushell/nushell/pull/10566) +- [dmatos2012](https://github.com/dmatos2012) created + - [ucp: Change error when directory is specified but not recursive](https://github.com/nushell/nushell/pull/10609) +- [lpchaim](https://github.com/lpchaim) created + - [Add url decode command](https://github.com/nushell/nushell/pull/10611) +- [jntrnr](https://github.com/jntrnr) created + - [Revert "Port command examples to long option"](https://github.com/nushell/nushell/pull/10597) + - [Remove cd w/ abbreviations](https://github.com/nushell/nushell/pull/10588) + - [Allow auto-cd on trailing slash](https://github.com/nushell/nushell/pull/10585) + - [fix windows default prompt slash direction](https://github.com/nushell/nushell/pull/10555) +- [joergsch](https://github.com/joergsch) created + - [Correct line folding in `from ics`/`from vcf`](https://github.com/nushell/nushell/pull/10577) +- [stormasm](https://github.com/stormasm) created + - [engine eval.rs remove pub from fn eval_element_with_input](https://github.com/nushell/nushell/pull/10587) + - [update the doc in toolchain.toml describing the update plan](https://github.com/nushell/nushell/pull/10453) +- [ClipplerBlood](https://github.com/ClipplerBlood) created + - [Add --env flag to do command](https://github.com/nushell/nushell/pull/10572) +- [rgwood](https://github.com/rgwood) created + - [`explore`: remove unused colour config code](https://github.com/nushell/nushell/pull/10570) + - [`explore`: remove 4 line config options](https://github.com/nushell/nushell/pull/10562) + - [`explore`: remove `Bottom` and `Right` orientations](https://github.com/nushell/nushell/pull/10559) + - [`explore`: highlight selected cell using background colour instead of cursor](https://github.com/nushell/nushell/pull/10533) +- [Yethal](https://github.com/Yethal) created + - [stdlib: Reduce test file parsing overhead](https://github.com/nushell/nushell/pull/10545) +- [hustcer](https://github.com/hustcer) created + - [Update build flags for riscv64gc and armv7 targets](https://github.com/nushell/nushell/pull/10564) + - [Improve release script for github release workflow](https://github.com/nushell/nushell/pull/10502) + - [Update winget submission workflow include only default msi files](https://github.com/nushell/nushell/pull/10487) + - [feat: Update nightly build workflow add full release support](https://github.com/nushell/nushell/pull/10485) + - [Add full releases of Nu binaries along with the standard releases](https://github.com/nushell/nushell/pull/10457) +- [hudclark](https://github.com/hudclark) created + - [feat: Add unfold command](https://github.com/nushell/nushell/pull/10489) +- [vedaRadev](https://github.com/vedaRadev) created + - [Add 'help escapes' command for quick reference of nushell string escapes](https://github.com/nushell/nushell/pull/10522) +- [poketch](https://github.com/poketch) created + - [Making `open` case-insensitive to file extensions](https://github.com/nushell/nushell/pull/10451) +- [fennewald](https://github.com/fennewald) created + - [Fix Default Prompt Tilde Insertion Logic](https://github.com/nushell/nushell/pull/10539) +- [Abdillah](https://github.com/Abdillah) created + - [Add kitty protocol config to nushell](https://github.com/nushell/nushell/pull/10540) +- [1256-bits](https://github.com/1256-bits) created + - [Change LS_COLORS to highlight .fb2 files as text documents](https://github.com/nushell/nushell/pull/10532) +- [ZerdoX-x](https://github.com/ZerdoX-x) created + - [Completions: add support for doas as for sudo](https://github.com/nushell/nushell/pull/10256) +- [fnuttens](https://github.com/fnuttens) created + - [Add support for HTTP proxy in network commands](https://github.com/nushell/nushell/pull/10401) +- [poliorcetics](https://github.com/poliorcetics) created + - [Command: Add `config env/nu --default` to print defaults](https://github.com/nushell/nushell/pull/10480) +- [NotLebedev](https://github.com/NotLebedev) created + - [Fix default argument value type checking](https://github.com/nushell/nushell/pull/10460) + - [Allow complex types in input/output and let](https://github.com/nushell/nushell/pull/10405) +- [ysthakur](https://github.com/ysthakur) created + - [Transient prompt](https://github.com/nushell/nushell/pull/10391) +- [anka-213](https://github.com/anka-213) created + - [Prevent cubic time on nested parentheses](https://github.com/nushell/nushell/pull/10467) + - [Fix tilde-expansion for multi-byte unicode chars](https://github.com/nushell/nushell/pull/10434) + - [Fix exponential parser time on sequence of [[[[](https://github.com/nushell/nushell/pull/10439) +- [GPadley](https://github.com/GPadley) created + - [Map `DirectoryNotFound` to `FileNotFound` for `open` command (issue #10085)](https://github.com/nushell/nushell/pull/10089) + +## Extension + +- [glcraft](https://github.com/glcraft) created + - [Update Textmate](https://github.com/nushell/vscode-nushell-lang/pull/160) + +## Documentation + +- [app/dependabot](https://github.com/app/dependabot) created + - [Bump postcss from 8.4.29 to 8.4.31](https://github.com/nushell/nushell.github.io/pull/1103) +- [petrisch](https://github.com/petrisch) created + - [Fixing #460 changing .html links to .md links](https://github.com/nushell/nushell.github.io/pull/1099) + - [Align the DE/book structure to the EN original](https://github.com/nushell/nushell.github.io/pull/1075) +- [joergsch](https://github.com/joergsch) created + - [repeat variable assignment](https://github.com/nushell/nushell.github.io/pull/1108) + - [fix variable name](https://github.com/nushell/nushell.github.io/pull/1107) + - [prevent same entry in $env.PATH](https://github.com/nushell/nushell.github.io/pull/1104) + - [Update table.md](https://github.com/nushell/nushell.github.io/pull/1101) + - [Update dataframes.md](https://github.com/nushell/nushell.github.io/pull/1102) +- [KAAtheWiseGit](https://github.com/KAAtheWiseGit) created + - [book/overlays: fix tip div formatting](https://github.com/nushell/nushell.github.io/pull/1106) + - [Fix a minor typo in `working_with_lists`](https://github.com/nushell/nushell.github.io/pull/1105) +- [cptpiepmatz](https://github.com/cptpiepmatz) created + - [Added "Use hooks to export state via environment variables" Section in setup.md](https://github.com/nushell/nushell.github.io/pull/1100) +- [dedebenui](https://github.com/dedebenui) created + - [fixed alias normalization](https://github.com/nushell/nushell.github.io/pull/1097) +- [Hofer-Julian](https://github.com/Hofer-Julian) created + - [Improve command docs](https://github.com/nushell/nushell.github.io/pull/1096) + - [make_docs: Parallelize command generation](https://github.com/nushell/nushell.github.io/pull/1095) + - [Fix broken links](https://github.com/nushell/nushell.github.io/pull/1082) + - [Change to an actual link in last blog post](https://github.com/nushell/nushell.github.io/pull/1070) +- [hustcer](https://github.com/hustcer) created + - [Update CONTRIBUTING.md and lefthook module](https://github.com/nushell/nushell.github.io/pull/1092) + - [Update syntax highlighting for Nu](https://github.com/nushell/nushell.github.io/pull/1090) + - [Update syntax highlighting for some blog docs](https://github.com/nushell/nushell.github.io/pull/1089) + - [Update syntax highlighting for commands docs from shell to nu](https://github.com/nushell/nushell.github.io/pull/1088) + - [Add real Nushell syntax highlighting support](https://github.com/nushell/nushell.github.io/pull/1078) + - [Fix code formatting hooks](https://github.com/nushell/nushell.github.io/pull/1079) + - [Refresh commands' docs for v0.85](https://github.com/nushell/nushell.github.io/pull/1069) +- [savente93](https://github.com/savente93) created + - [finish sentence in pattern matching.md](https://github.com/nushell/nushell.github.io/pull/1087) + - [Expand `append` examples and add `match` example](https://github.com/nushell/nushell.github.io/pull/1083) +- [amtoine](https://github.com/amtoine) created + - [add the "style guide" page to the sidebar](https://github.com/nushell/nushell.github.io/pull/1086) +- [EmilyGraceSeville7cf](https://github.com/EmilyGraceSeville7cf) created + - [Write best practices and style guide](https://github.com/nushell/nushell.github.io/pull/904) +- [sholderbach](https://github.com/sholderbach) created + - [Fix typo](https://github.com/nushell/nushell.github.io/pull/1080) +- [ShalokShalom](https://github.com/ShalokShalom) created + - [correct typo](https://github.com/nushell/nushell.github.io/pull/1077) +- [marcelarie](https://github.com/marcelarie) created + - [Update external_completers.md](https://github.com/nushell/nushell.github.io/pull/1076) +- [ysthakur](https://github.com/ysthakur) created + - [Add information on transient prompt](https://github.com/nushell/nushell.github.io/pull/1074) + +## Nu_Scripts + +- [TechWatching](https://github.com/TechWatching) created + - [Move def before extern in winget-completions.nu](https://github.com/nushell/nu_scripts/pull/638) +- [amtoine](https://github.com/amtoine) created + - [make_release: do not annotate boolean switches in public API](https://github.com/nushell/nu_scripts/pull/635) + - [add a section about _after the release_ in the release README](https://github.com/nushell/nu_scripts/pull/560) + - [enhance release note PR template](https://github.com/nushell/nu_scripts/pull/618) + - [update the `direnv` hook](https://github.com/nushell/nu_scripts/pull/628) + - [Add cartesian product to math module](https://github.com/nushell/nu_scripts/pull/624) + - [tix the release note PR opening script](https://github.com/nushell/nu_scripts/pull/611) +- [bobhy](https://github.com/bobhy) created + - [Add widget for nu exe (debug/release, and main vs other branch)](https://github.com/nushell/nu_scripts/pull/634) +- [cptpiepmatz](https://github.com/cptpiepmatz) created + - [Use Existing Path Env Var for FNM](https://github.com/nushell/nu_scripts/pull/632) +- [fj0r](https://github.com/fj0r) created + - [mask-completions](https://github.com/nushell/nu_scripts/pull/631) + - [git-v2: new command `gcf` for copying files from other branch](https://github.com/nushell/nu_scripts/pull/616) + - [kubernetes/kn: create namespace when it doesn't exist](https://github.com/nushell/nu_scripts/pull/610) +- [savente93](https://github.com/savente93) created + - [add tests to str.nu](https://github.com/nushell/nu_scripts/pull/627) + - [Add gnu wc wrapper](https://github.com/nushell/nu_scripts/pull/625) + - [Add `str append` to stdlib-candidate](https://github.com/nushell/nu_scripts/pull/626) +- [sholderbach](https://github.com/sholderbach) created + - [Replace use of `$nothing` with `null`](https://github.com/nushell/nu_scripts/pull/621) + - [Move `random/into decimal` to `random/into float`](https://github.com/nushell/nu_scripts/pull/606) +- [schrieveslaach](https://github.com/schrieveslaach) created + - [Fix git-completions.nu](https://github.com/nushell/nu_scripts/pull/620) +- [1adept](https://github.com/1adept) created + - [Fix: Completions Broken '-s' flag in man-completions](https://github.com/nushell/nu_scripts/pull/619) +- [Abdillah](https://github.com/Abdillah) created + - [completions/git: add filename completion to diff and checkout](https://github.com/nushell/nu_scripts/pull/617) +- [marcelarie](https://github.com/marcelarie) created + - [Use new syntax in `rbenv` module](https://github.com/nushell/nu_scripts/pull/614) + - [Use 0.85 syntax in `direnv` module](https://github.com/nushell/nu_scripts/pull/615) +- [baehyunsol](https://github.com/baehyunsol) created + - [use `repeat` instead of string multiplication](https://github.com/nushell/nu_scripts/pull/612) + +## Reedline + +- [sholderbach](https://github.com/sholderbach) created + - [Fix clippy lint from most recent Rust](https://github.com/nushell/reedline/pull/646) + - [Update motto title](https://github.com/nushell/reedline/pull/640) +- [horasal](https://github.com/horasal) created + - [Accept `Command` with args for `BufferEditor`](https://github.com/nushell/reedline/pull/630)