Next | Query returned 69 messages, browsing 31 to 40 | Previous

History of commit frequency

CVS Commit History:


   2023-08-01 10:04:27 by pin | Files touched by this commit (3) | Package updated
Log message:
shells/nushell: update to 0.83.1

Nushell 0.83.1 (hot-fix)

A few days ago, we released the 0.83 version of Nushell. As you can see in the
release notes, the release included a major upgrade to the type system as well
as wide-reaching breaking changes.

Extensive efforts were made before the release to mitigate these changes to
make them easier to adopt when 0.93 was released, and included:
 - quite a lot of command signatures have been updated to keep functionalities
   at the same level while adding better type checking
 - major integration scripts from 3rd-party applications have been fixed prior
   to the release

However, as you might have noticed and thanks to the feedback of you the
community, more issues and bugs have been found. Many commands needed additional
updates to play well with the updated type system. We decided to release a
hotfix release to address what had been found, and this is that release.
You can find out more about the hotfix in Tracking issue for 0.83.0 fixup #9812

What does the hot-fix release address?

Most of the type-system-related issues have been fixed, hopefully bringing most
of the command set of Nushell back to its previous feature level with the nice
addition of better input/output type checking and annotations. In a few places,
the type system itself was fixed, as with the case of $rest args now
type-checking correctly in a pipeline.

What will the hot-fix release NOT address?
Bring the let-env command back to life.

Thankfully, the community helped by updating their Nushell integrations and
releasing corresponding new versions.
Please, check your tools like starship for updates.
Fully fix the dataframe integration.

When upgrading the type system for the 0.83, we removed a semi-working system
that enabled the dataframe commands to run both in a lazy and eager mode, but
only if the types were known at parse-time. Due to the complexity of reworking
this and the dataframe support currently being a tier-two feature in Nushell,
we won't be able to fully fix this with this patch release. Thankfully @ayax79
started work in #9858 which promises to make the dataframe commands work again
within the general Nushell type system.

Breaking changes for plugin authors

With the type system changes in 0.83.0 any plugins that declared that their
signature "vectorizes_over_list": true were not able to automatically \ 
broadcast
their operation for a type T (e.g. number) over a list<T> input. With this \ 
patch
release, we removed this field from nu-protocol.

You need to add the list<T> signature if necessary. Also recompile your
plugins using nu-plugin 0.83.1 or remove the vectorizes_over_list field from
the signature information if you don't use nu-plugin (e.g. plugins not
implemented in Rust).

Breaking changes for plugin users

You may need to recompile or update your plugins and then re-register your
plugins.
   2023-07-26 21:36:37 by pin | Files touched by this commit (3) | Package updated
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
   2023-06-28 10:57:14 by pin | Files touched by this commit (3) | Package updated
Log message:
shells/nushell: update to 0.82.0

Today, we're releasing version 0.82 of Nu. This release focuses on polishing
the user experience.

Note: Beginning with this release, Nushell is switching to a four-week release
schedule.
For details see, https://www.nushell.sh/blog/2023-06-27-road-to-1_0.html

NOTE: The optional dataframe functionality is available
using --features=dataframe

This feature is not enabled by default on pkgsrc.
To compile with this feature add 'dataframe' to the list of features defined
(CARGO_FEATURES+=) in the package Makefile.

As part of this release, we also publish a set of optional plugins.

Themes of this release/New features:
 - Custom datetime format (@fnordpig)
Until now, Nushell did not allow changing the default format of dates and times,
leading quite often to undesired rendering, e.g. seeing 'A year ago' in the
output of ls when one wants to know the exact time.
#9500 introduces a new config option to change the default output of dates and
times.

 - Support for comments in multiline pipes (@WindSoilder)
From now on, either in the REPL, in scripts or in modules, you can comment out
any line of a multiline pipe without breaking its execution. This hopefully
makes debugging and testing part of a pipeline much easier!

 - Continuing cratification effort
On the road to 1.0, we have started moving commands around to make place for
those which really matter. As this process involves the creation of some new
Rust crates, e.g. nu-cmd-extra, we call it cratification 😃
With this new release, the bytes commands have been moved behind the extra
feature (use cargo build --features extra to activate them back).
Apart from moving less stable or common ocmmands behind flag, this should also
improve compile times for everyone.

 - Splitting the $nu variable (@jntrnr)
Nushell 0.82 introduces a new familly of stat commands, the scope ... commands.
These commands allow you to access some information about the current Nushell
instance that were previously available in the $nu variable!
e.g. $nu.scope.commands now becomes scope commands.
On the other hand, $nu becomes much smaller and only holds simple paths and
constants.

 - Entering Linguist support (@hustcer)
With the efforts of @hustcer, Nushell is now an official language of Linguist,
allowing for better language support in GitHub.

 - REPL: Mark line entries as excluded from the history by leading with a space
 (samlich)
In some situations you may want to avoid storing an entry inside your shell
history. For example if it includes a secret or running it again in a different
context could be dangerous. To stop nushell from storing a particular line in
its history you can now start with a space and it will be ignored. You can
still recall your last entry once by pressing the Up-Arrow but the command will
never be written to disk and disappear as soon as you submit another command.

 - New commands
     http options
     scope aliases
     scope commands
     scope engine-stats
     scope modules
     scope variables
     scope

 - Breaking changes
    #9509 Cratification moves the bytes commands to nu-cmd-extra. They are thus
     only accessible with --features extra
    #9496 Clean up config by removing legacy options that were previously
     deprecated.
    #9487 Split $nu variable into scope commands and simpler $nu
    #9427 The filesize prefixes Z/Zi have been removed as their underlying
     values where not correctly representable.
    #9407 In the ls --long output the uid column has been renamed to user to be
     consistent with group
    #9368 Don't allow save command to save both stdout and stderr to the same
     file
   2023-06-07 16:37:52 by pin | Files touched by this commit (3) | Package updated
Log message:
shells/nushell: update to 0.81.0

Themes of this release / New features
Polishing the experience
 This release focuses on improving the user experience, fixing some
 long-standing bugs, and adding a few helpful features.

 One of the bugs that was fixed for 0.81 was a long-standing issue with
 reedline, Nushell's line editor. Now, Nushell will prefer to move to make room
 for text that had been output rather than risking writing over top of it.
 This maybe improve the general experience of working in the terminal,
 resizing, and more.

 There have also been fixes to table printing to make it work better for more
 cases.

 Startup time improvements

 Startup times have also been improved. Through a combination of various fixes
 to both how the standard library files were handles and how the parser worked,
 we've been able to see significant improvements, sometimes as high as
 30-50% faster.

Breaking changes
 We had to remove ARMv7 and RISC-V from this release due to a breaking change
 in one of the dependencies. We hope to resolve this for future releases.

 Exclude globs now need square brackets

 view source now works over rest arguments

 alias calls are now position dependent
   2023-05-17 23:33:35 by pin | Files touched by this commit (3) | Package updated
Log message:
shells/nushell: update to 0.80.0

Themes of this release / New features
 - Record type annotations (@1Kinoti)
   Starting with this release, you can add more information about the type of
   a record your command expects. For example:

     def okay [person: record<name: string age: int>] {}

   The above will require two fields to be present, a name that's a string, and
   an age that's an int. The current version requires that the record has
   exactly these fields, though we may loosen this in future releases to allow
   for structural subtyping.
 - Modules from directories (@Kubouch)
   It is now possible to create a module from a directory. The directory must
   contain mod.nu and all other .nu files are added as a submodule of the
   module. This allows some traditional shell patterns such as dumping
   completion files into a directory to be loaded automatically. Check out the
   newly updated book chapter for more details and examples.

   The enabling feature for module directories was organizing modules into
   submodule structure instead of solely relying on re-importing symbols with
   export use. module and especially export module have been added as a result
   of this change. While not immediately visible, the module update allows for
   cleaner submodule oganization without relying on re-exporting symbols with
   export use. Since modules are now aware of their submodules, in the future
   we hope to improve discoverability of definitions within modules, enhancing
   our IDE support (such as our LSP).

 - Stdlib update ([@amtoine, @EmilySeville7cfg, @skelly37, @YummyOreo]
   [std-lib PRs])

Breaking changes
 - #8940 Change type of parameter default values to Option<Value>
 - #9007 Fix unexpected flattening of data by par-each (Issue #8497)
 - #9056 REFACTOR: remove deprecated commands (old-alias)
   2023-04-27 09:16:17 by pin | Files touched by this commit (3) | Package updated
Log message:
shells/nushell: update to 0.79.0

Themes of this release / New features

- Standard library (@amtoine, @bobhy, @fdncred, @presidento, ...)
  This is it. We finally release the standard library with this 0.79!
  It's been on the mind of the core team of Nushell for some time and it was
  made real between the two releases.

  But first of all... what is the standard library?

  The nushell standard library is a collection of nushell scripts that are
  automatically loaded in the nushell binary and reachable via the use command
  without any additional setup.

  Note: some of the commands from the standard library are used without human
  intervention as part of what we call the prelude.
  As said above, the other commands are available with the use command.
  The goal of this library is, as its name suggests, to provide a standard
  experience and a standardized set of commands and tools to any Nushell user.
  In std, one can find things like:
    - a test framework to write robust Nushell scripts, modules and libraries
    - implementation of builtin commands once written in rust
    - logging commands with several log levels
    - ...

  Note: yes, you heard right, in the future, the standard library might become
  a sanctuary for non-time-critical commands that were once written in rust as
  part of the built-in set of commands!
  Right now, we are actively trying to move the help commands from the nushell
  core implementation to the library.

  With this release, the library comes with the following custom commands:
  std assert, std dirs, std help, std iter, std log and xml module
  See https://www.nushell.sh/blog/2023-04-25-nushell_0_79.html for a
  description of these and a list of available sub-commands.

  some other commands live under the std namespace, without any module: clip,
  path add and run-tests.

- TL;DR
  As there has been quite a lot of contributions already (see the 50 closed
  PRs at the time i'm writing this), i'm just gonna give some hints and links
  in this release note, leaving the rest to the amazing work of other
  contributors who wrote parts of the lib and its documents
  (shout out to @bobhy, @fdncred and @presidento)

  - the library can be used and tested with or use direct imports, such as
    use std dirs
  - one can follow the activity of the library in the roadmap
  - the library comes with a test framework; see the Testing your Nushell code
    chapter of the book
  - the long term information, changelog and updates shall be found in the
    Standard library chapter of the Nushell book
  - if you are a contributor willing to help out, everything happens in the
    nu-std crate, especially the CONTRIBUTING.md document which explains all
    there is to know about "developing with std" in great details.

  If, for some reason, you want to load Nushell without the standard library,
  start nu with the --no-std-lib. This can be the case if you find the startup
  times much longer than before. We're aiming to improve the loading speed
  in the future.

- enhanced IDE support in our VS code extension (JT, fdncred)
  Nushell now has a first LSP (Language Server Protocol) implementation with a
  VSCode integration. If you install the latest version of our VSCode plugin,
  you'll see hovers, inlays, tooltips, error squigglies and other features.
  We are still very early in the LSP development, but the extension is already
  very usable and definitely moves the experience of writing Nu code to another
  level!

  While currently we have only VSCode integration, the server itself is
  standalone and we welcome projects adding the LSP support to more editors.

- atuin now supports Nushell
  Thanks to @stevenxxiu you can now use atuin with Nushell. We are happy to see
  Nushell supported by more projects and we welcome PRs adding more
  integrations.

- Relaxed parsing rules (JT)
  We listened to your feedback around the syntax changes introduced with 0.78
  and decided to revert to the old behavior around the parsing rules for
  numeric literals as well as the compulsory || for closures.

- Removed old alias implementation (kubouch)
  While there are still some missing pieces, we removed the old alias
  implementation. This means that old-alias is no longer available. We decided
  to remove it to clean up the code. It makes further fixes to aliases easier
  as you do not need to remember which alias implementation a piece of code
  belongs to.

  There are two notable missing features from the old aliases:
  - Missing completions with external completers.
  - Most parser keywords (such as source) cannot be aliased but adding support
    for aliasing them should be possible in most cases.
  - Not possible to alias with environment shorthands
    (e.g., alias foo = FOO=bar spam)
  - Some presentation issues, such as the output of which and the alias usage
    pointing at the aliased call instead of the alias itself.

- Changes to default files locations (ito-hiroki)
  $nu.config-path and $nu.env-path are now set based on --config
  and --env-config flags passed to Nushell and also use the path after
  resolving symlinks. This means that they no longer guarantee pointing at the
  default Nushell's config directory. To be able to refere to the default
  config directory, $nu.default-config-dir was added and used in default env.nu
  to always point NU_LIB_DIRS to the scripts directory under the default config
  directory.

  Related to that, $env.CURRENT_FILE was added to be able to show the currently
  evaluated file.

- Breaking changes
  #8797 old-alias is no longer available
  #8724 str index-of -r now uses ranges
  #8792 config nu and config env now open $nu.config-path and $nu.env-path,
        respectively.
  #8779 Aliasing math expressions now shows error immediately instead of
        failing silently and showing a confusing error later.
  #8917 exec inherits Nushell's environment variables
  #8887 NU_LIB_DIRS definition in env.nu changed
   2023-04-05 10:05:14 by pin | Files touched by this commit (3) | Package updated
Log message:
shell/nushell: update to 0.78.0

Themes of this release / New features
 - Pattern matching (jt)
   With 0.78, Nushell now comes with the match expression, which allows you to
   do pattern matching on a value. It supports a variety of different kinds of
   patterns, which can be mixed and matched to create more complicated patterns.
 - Alias changes (kubouch)
     - Aliases now can shadow
       We've updated the new alias command we introduced in 0.77 to work more
       closely to the previous one.
     - Alias can be named the same as the aliased command
     - Old alias still keeps working
       Since there are still some remaining issues to fix with the new alias
       implementation, we still keep old-alias around for this release.
 - Speed improvements (jt)
   We've sped up the performance of tight loops like for and while considerably
   in this release.
 - Optional cell path members (rgwood)
   In Nu 0.78, you can use ? in cell paths to suppress errors from missing data.
   ? is a more convenient+powerful version of the -i/--ignore-errors flag on
   get and select.
 - better error handling in error make (amtoine in #8511 and #8570)
   The error make command now gives better hints about why the format is not a
   valid error make format:
     - with an empty format, error make {} will say that there is a "missing
       required member $.msg"
     - with an empty $.label, error make {msg: "message", label: {}} \ 
will say
       there is a "missing required member $.label.text"
     - finally, when $.label.start / $.label.end is not defined while the other
       is, error make will give a hint as to add the missing one to the format!
   The second change disallow the use of a $.label.start greater than
   $.label.end as a span.
 - Support for pretty output format in to nuon (amtoine)
   The to nuon command can now output pretty NUON data with whitespaces for
   better readability.
   The default behaviour still is to output everything on a single line,
   encouraging users to leverage the compactness of the NUON data format.
 - New math exp command (lesves)
   To complement the math ln command, we now include a math exp command for
   exponentiation with the base e.

Breaking changes
 - let requires surrounding parentheses for saving command output
   let x = ls will not run the ls command anymore. If you need to save the
   output of a command, you need to wrap it in parentheses: let x = (ls).
 - || now required in closures
   To help differentiate between blocks (which can mutate variables) and
   closures (which can be used in a pipeline), we've changed the syntax of
   closures to require ||. This means the simplest closure now looks like {|| }
 - We no longer automatically print values as part of a script
   We've changed the automatic-printing rules for scripts and the REPL to now
   only automatically print the last value. This means two major breaking
   changes:
     - We no longer automatically print loop values
     - We no longer print the results of every line automatically, requiring
       you to do it manually
 - Bare words can't start with a number
   Words that start with a number or are in some way number-like must now must
   be wrapped in backticks to be treated at a bare word or wrapped in quotes to
   be a string
 - Fields can only be defined once
   You can no longer redefine a field in a record during initialization
 - Thread configuration moves to par-each
   Nushell no longer accepts the -t/--threads flag to the binary as it's now
   part of par-each
 - Ranges become the standard range specifier
   str substring now only accepts ranges as does bytes at
 - Alias recursion has been disabled
 - Empty lists handled more consistently
   [] | select foo now returns an empty list instead of null and sort, uniq,
   sort-by, and uniq-by now return empty lists when given an empty list
   (previously they would throw an error)
   These changes make it easier to work with lists of unknown size.
 - Comparison operators now allow null
   Previously expressions like 1 < null would error; now they return null
   2023-03-17 11:40:31 by pin | Files touched by this commit (2) | Package updated
Log message:
shells/nushell: update to 0.77.1

 The 0.77.1 release is a hotfix release of 0.77. It fixes an issue related to
 subexpressions not properly handling output values.
   2023-03-15 11:04:00 by pin | Files touched by this commit (3) | Package updated
Log message:
shells/nushell: update to 0.77.0

Themes of this release / New features
 - Reworked aliases (Breaking changes!) (kubouch)
   Aliases have been a constant source of panics and growing code complexity as
   a result of trying to patch the panics. In this release, we re-implement
   aliases from scratch. Instead of replacing spans of expressions, aliases are
   implemented as another type of command, quite like extern is used to
   implement known externals. Alias is a command that wraps another command
   call. As a result, in some cases, aliases do not behave exactly the same as
   before. Here are the key facts:
    - Alias can only alias another command call. For example, alias la = ls -a
    works, but the following does not:
       - alias foo = "foo"
            "foo" is not a command call, use alias foo = echo \ 
"foo" instead
       - alias lsn = (ls | sort-by type name -i)
            subexpression is not a command call, use a custom command instead
     - Alias cannot alias command named the same as the alias. E.g., alias
     ls = ls -a is not possible currently, and gives an unhelpful error message.
     We plan to fix this as soon as possible and in the future we aim for this
     to work.
     - Some parser keywords are not allowed to be aliased. Currently, overlay
     commands can be aliased but the other parser keywords can not. We can add
     support for aliasing more parser keywords in the future.

If some of the above is too limiting for you, the old aliases are still
unchanged and available as old-alias. Just change alias to old-alias and it
should work the same as before. If there are no more problems with the new
alias implementation, and we manage to iron out the recursive alias issue,
we will remove old-alias in the next release, otherwise, we'll keep it around
longer.

 - More consistent timestamp handling (bobhy)
   Simplified conversion between Nushell date type and unix timestamps (#8244).

Nushell now standardizes on representing a Unix timestamp as a number of
nanoseconds relative to the unix epoch 1970-01-01 00:00:00 +0000 (UTC).
Since the timestamp is stored in a (64 bit signed) Nushell int type, this
limits the range of dates that can be represented to approximately 21-sep-1677
through 11-apr-2262.

In prior versions, Nushell attempted to extend the range of representable dates
by allowing multiple resolutions of timestamps (seconds, milliseconds as well
as nanoseconds) to be stored and relied on arbitrary range check heuristics to
disambiguate the value intended. However, there were bugs in the checks and
incorrect results could be produced.

With this change <int> | into datetime assumes the input is a number of
nanoseconds and can never produce a date outside this range.
The timestamp epoch is the standard unix epoch. Note the timezone is UTC/GMT.

<datetime> | into int can now produce an error if the input is outside the
supported range.

And finally, although not strictly required by the above fix,
<date> | date to-record and <date> | date to-table now have a \ 
nanosecond field
containing the subsecond residue of the input value (however it was produced).

 - New XML format (NotLebedev)

 New format for xml data created and accepted by from xml and to xml commands
 (#7947).

Commands from xml and to xml now use format where each xml entry is represented
by a single {tag: <tag name> attributes: <tag attributes> content:
[<child entries>]} record. Special xml entries also use this record, replacing
irrelevant fields with null for easier use.

Creating a little html page. In case of to xml one can deviate from rigid
structure and omit empty fields of records.

 - New additions to $nu (StevenDoesStuffs, amtoine)
 The builtin $nu variable now contains new entries:
  - is-interactive: Nushell was launched in interactive mode
  - is-login: Nushell was launched in login mode
  - startup_time: Nushell's startup time

 - Reworked http subcommands (jaudiger)

The http command now has more subcommands and existing subcommands have been
reworked.

Make sure to browse the help messages of these commands. They contain fully
functional examples thanks to pointing at www.example.com.

 - Breaking changes

    - Alias changes, see above
    - env command has been removed, use $env instead
    (https://github.com/nushell/nushell/pull/8185)
    - str trim no longer has --all, --both, and --format flags. str replace
    should be an adequate replacement; please let us know if it is not (#8205)
    - The changes to timestamp handling noted above (#8244) can require code
    changes to existing scripts:
      - Saved data containing the results of an old datetime-to-timestamp
      conversion will not deserialize correctly when read back by the current
      version of Nushell. In general, Nushell will produce incorrect datetime
      values without noting an error.
      - <int> | into datetime now assumes nanosecond scaling for all \ 
timestamps.
      You must ensure all timestamps computed by your script or retrieved from
      external sources are scaled appropriately.
      - <date> | into int can now fail, as noted above. You cannot rely on this
      operation to persist a arbitrary date.
    - The change to from xml and to xml commands noted above (#7947) will
    require to update scripts relying on old output/input format.
    - mkdir, cp, mv and rm return nothing. Errors and actions with --verbose
    flag are printed to stderr instead (#8014).
    - Plugin authors relying on nu_protocol::Value may need to update their
    code to account for a change to Value::Error (#8375    )
    - Different types of lists can now be appended. This can break scripts that
    were relying on the stricter behavior
    (https://github.com/nushell/nushell/pull/8157)
   2023-02-23 08:33:55 by pin | Files touched by this commit (3) | Package updated
Log message:
shells/nushell: update to 0.76.0

Debugging
We've added a few new commands to help with nushell debugging.
 - ast - The ast command works the same as before and produces an ast for any
   pipeline you give it.
 - debug - The debug command works the same as before and produces some
   output about nushell values.
 - explain - Provides detailed information about pipeline contents in a
  closure

The explain command attempts to explain to you how the pipeline, in the passed
in block, is going to be interpreted. It shows the pipeline and command index,
the looked up and found command name, the command argument data type, and
argument details, among other things. Note that spans are also included and can
be used with view span.

 - inspect - Immediately prints out the contents of a pipeline

The purpose of the inspect command is to help to debug pipelines. It works by
allowing you to inject the inspect command into a pipeline at any point. Then it
shows you what the input description is and what the input values are that are
passed into inspect. With each step it prints this information out while also
passing the value information on to the next step in the pipeline.

 - metadata - The metadata command works the same as before.
 - profile - Recursively profile pipelines and pipeline elements within a
   closure.

Enables fine-grained profiling of individual pipeline elements and recursively
stepping into blocks/closures. The recursion depth can be controlled (default is
1) and it can optionally collect the profiled source segments for easier
orientation and value in each step for easier debugging.

Note: There are known limitations that the profiler can't run. For example, it
can't collect data from subexpressions and loop iterations. It is caused by
profiling data being collected as pipeline metadata and a known bug that
pipeline metadata is not preserved in some cases.

 - timeit (formerly known as benchmark, same functionality)
 - view files - Lists source code inputs loaded into Nushell since the beginning
of the session

view files lists the files and entries loaded into nushell's EngineState memory.
Note the spans, for use with view span and the size of each file's contents
stored.

 - view source (formerly known as view-source, same functionality)
 - view span - View contents of a span

Spans are important to nushell. One of their uses is to show where errors are.
For instance, in this example below, the leader lines pointing to parts of the
command line are able to point to 10, /, and "bob" because each of \ 
those items
have a span.

In an effort to have a little more organization, we've assigned a category of
Debug to all commands that participate in nushell script debugging.
Here is a list of commands that are in that category now.

-ast
-debug
-explain
-inspect
-metadata
-profile
-timeit
-view
-view files
-view source
-view span

- "Multiplication" of strings and lists is now supported. (WindSoilder)
Like in Python you can now use the multiplication operator * to create n
concatenated copies of a string or list. Here n has to be an int value.

This can be useful if you want to quickly build ASCII art 😃!
Note that the operation is commutative.

- Dataframe commands are again explicitly separated from core nushell
commands. (#7998)
- Dataframe commands have all been renamed in order to avoid confusion with
nushell commands. It also makes our help commands less confusing.
For instance, you can now do help select and understand how to use the
traditional nushell select command and you can do help dfr select and
understand how to use the dataframe specific select command. Previously this
was a source of cryptic error messages that were confusing to users.

-PATH vs Path (#8003)
We fixed a PATH vs. Path bug in completions, so now you should be able to do
commands like cod<tab> and get completions like code and code.cmd across all
operating systems.

- More commands become plugins and plugins get first-class help support
(WindSoilder, #7984, #7942)
In an effort to both make the core nushell binary smaller and to improve our
plugins system along the way we moved the commands for several less common
file formats to nu_plugin_formats.

To make sure you still have a first-class experience while using these commands,
our plugins can now support code examples in the help and F1 menu.

As a result, plugin authors need to slightly update their command Signature to
PluginSignature which supports the examples and recompile.

- Improved error messages for int and string literals
Nushell now gives more specific and helpful messages when it detects syntax
errors. In this release we've improved errors for string and int literals but
we hope to improve more in the future. #7952

Errors in the format of escapes within double-quoted strings are reported
specifically.
Invalid digits in radix-prefixed int literals are now flagged as a specific
error. The old parser treated these invalid ints as bare strings.

- General housekeeping in the Nu codebase (Hofer-Julian, fdncred, rgwood,
sholderbach)
We are very lucky that we recently had a number of new contributors starting
to help out with bug fixes and improvements to Nushell. We want to thank you
and want to welcome you all!

In the background a number of contributors spent some time improving and
refactoring the codebase to get us up-to-date and make it more approachable for
newcomers. This includes work to break up less readable code in important
places, and a significant effort to get us up-to-speed on some coding standards.
We also updated a number of dependencies and want to continue to improve our
dependency tree. We recently enlisted the relentless help of the dependabot.
Furthermore, we enabled rudimentary tracking of test coverage through
codecov.io. This should help us identify areas were additional tests are needed
and can be a great contribution to the project.

- Breaking changes
- load-env can not accidentally set $env.PWD anymore (#7963)
- The --numbered flag to enumerate entries has been removed from each, par-each,
each while, and reduce. Use the enumerate command added in 0.75 instead. (#7777)
- Plugin system: nu_plugin::Plugin::signature has changed from fn
signature(&self) -> Vec<Signature> to fn signature(&self) ->
Vec<PluginSignature> to support examples on plugin commands. Plugin \ 
authors have
to update the relative structure to apply these changes. Normally you just need
to perform a global search/replace from Signature to PluginSignature, then
rebuild and run with the latest nushell version. (#7984)
- benchmark renamed to timeit (#8018)
- dataframe commands renamed with a prefix of dfr (#7998)
- view-source renamed to view source (#7989)
- Plugin commands can now include examples, which necessitated a change to the
plugin signature, which causes all plugins to need to be recompiled for use.
(#7984)
- str lpad and str rpad have been superceeded by fill in order to provide
 alignment (7846)
- from ini, from vcf, from ics, from eml commands are moved to plugin called
nu_plugin_formats to reduce the number of commands in nushell core, you need to
install and register the plugin manually to use these command. (#7942)
- http get -t,--timeout parameter is now -m,--max-time (8088)
- Filesystem commands now print to stderr when using --verbose flag (8014)
- The parse command will now create 0 indexed columns instead of 1 indexed
(7897)

Next | Query returned 69 messages, browsing 31 to 40 | Previous