Subject: CVS commit: pkgsrc/shells/nushell
From: pin
Date: 2023-07-26 21:36:37
Message id: 20230726193637.BB074FBDB@cvs.NetBSD.org

Log Message:
shells/nushell: update to 0.83.0

Themes of this release / New features

Since last release, some commands have changed and some have been created,
here is a list of some changes and what they mean:

 - amtoine in #9646
   : which returns the type of the command instead of only whether it is
   builtin or not and uses more explicit column names
 - atahabaki in #9750
   : str expand now allows empty member in brace expansion, e.g. A{,B,C} would
   expand to [A, AB, AC]
 - fdncred in #9669
   : keybinding listen gives more information about keys like home and end,
   namely their kind and state
 - NotLebedev in #9453
   : input listen allows to query for a single key press, e.g. the following
   will take a 4-char input 1..4 | each { input listen } |
   where key_type == char | get code | str join
 - kubouch in #9687
   : path commands lose the -c flag; instead, use update to update table columns

Command set refinement efforts

Again with this new release, we are continuing refining our set of core
commands. As part of this, another set of commands have moved to extra.
Thanks to folks who are helping our efforts on the road to 1.0!

    Note
    No command has been removed completely, they have just been moved in the
    extra feature of Nushell. simply use cargo ... --features extra to reenable
    them.

Math commands have been moved by @stormasm in #9674, #9657 and #9647 and the
following commands have been moved in #9404

: fmt, each while, roll, roll down, roll left, roll right, roll up, rotate,
update cells, decode hex, encode hex, from url, to html, ansi gradient,
ansi linkand format

Language improvements

Since last release, a few changes have happened to the Nu language itself.
Declaration and assignment of variables

Until now, declaration keywords such as let and mut have required the use of
parentheses around pipelines to assign the output of a chain of command to a
variable. Thanks to @jntrnr in #9658 and #9589, this syntax has been relaxed
for let and mut.

Another parser improvement has to do with the use of if and match in variable
assignment. In #9650, @Windsoilder

Input / output type checking and annotations (@jntrnr)

Nushell as a language is more strictly typed than other shell languages.
However, not everything was type-checked nor possible to annotate and this
new release tries to fill this gap a bit more.

First, #9686 makes the input / output type signatures clearer in the help pages
of commands. Then, #9690 and #9680 enable input / output type annotations on
custom commands and enforce a strong type checking on the input and output of
commands. This means a few things:

 - the input / output of custom commands can be annotated
 - some type-invalid calls to commands are now parsed as an error,
   e.g. 123 | get foo gives the an error.

This is still a work in progress, so some commands might have incorrect or
missing input / output type annotations 😮 This is expected and we worked and
are working on this to fix all incorrect signatures (#9755, #9749, #9707,
#9706, #9695, #9683, #9775, #9741, #9742, #9739 and #9778)!

Shoutouts
In between the two releases, @1Kinoti has worked on some nice improvements to
the language
 - match guards have been added to the match command in #9621
 - table types can now have parameters, just as records and lists can, thansk
   to #9613
 - structural subtyping has been improved in #9614 and allow to match
   structured types regardless of the orders of the fields

Configuration tweaks
Contributions have been made to give a more consistent and sensible default
experience in Nushell, both when using the default_config.nu config file or
when not having a config, e.g. with nu -n. A better right prompt has been
written in #9585 and #9581 and the default configuration has been polished
in #9676

The standard library

The biggest topic in this 0.83 release for the standard library has been the
test runner!

Thanks to @Yethal, the test runner of the standard library can now use
annotations to decide whether or not to run a command as part of the test
suite of a project: #9628, #9622, #9611 and #9406

and std testing run-tests would successfully run the addition test, no need to
define tests with test_ in their names!
Thanks to @Hofer-Julian (#9607), the standard library now also comes with a
pwd command that tells you were you are in the filesystem.

Breaking changes

PLEASE NOTE: there are some big breaking changes in this release. These include:

 - Removal of let-env (now use the $env.FOO = "BAR" form instead)
 - Stricter checking of input/output types
 - Transitioning of a set of commands to now be avialable via extra feature
   rather than default

Files:
RevisionActionfile
1.37modifypkgsrc/shells/nushell/Makefile
1.24modifypkgsrc/shells/nushell/cargo-depends.mk
1.29modifypkgsrc/shells/nushell/distinfo