| Age | Commit message (Collapse) | Author | Files | Lines |
|
- New ++ operator (merelymyself)
In this release, you can now use the ++ operator to append lists together.
For example, you can combine two lists into a new lists made up of the both
lists.
Note: Currently, this operator cannot be used to join two tables. This
functionality is still being worked on and will likely be present in the
next version.
- Improved consistency across commands and types
Nushell continues improve quality of the language and shell with a set of
consistency improvements in this release. These include:
- More iterating filter commands now support the $in variable consistently
(webbedspace)
- Lists now support upsert (fdncred)
- merge can now also operate on records (webbedspace)
- str substring can take ranges (rgwood)
- from and to now show help info (rgwood)
- Right prompts can now be on the last line (nibon7)
Previously the right prompt appeared only on the same line where the user
input started. Now you can choose to place the right prompt part on the last
line of user input. This feature is not enabled by default, you can enable
it using the config nu command to modify the config.nu file, just set
render_right_prompt_on_last_line to true.
- Configuring the default value viewer via display_output hook (perbothner)
You're now able to configure a new hook, called display_output, which will
become the default way that you view data.
Using this, you can for example, use table --expand to always see fully
expanded tables.
If your terminal supports it, you can this to render a more full-featured
output. For example, DomTerm could be used by setting the display_output
hook to: to html --partial --no-color | domterm hcat, sending html to the
terminal to be rendered when displaying values.
- Updated PR Review Process
Recently, we have been fortunate to see a rise in submitted pull requests
and we are super grateful for this growing desire to improve Nushell.
Unfortunately, in some cases, a well-intended PR does not match the
direction Nushell is going, forcing us to close it which leads to wasted
time and effort. To help focus PRs in the future, we kindly ask potential
contributors to first reach out to us before making a substantial change to
Nushell, especially if the change will affect user experience. We updated
our contributing guide as well as the PR template to reflect this policy.
- Completion actions now more familiar (dandavison)
We've also recently improved how completions work in Nushell to feel closer
to how other shells work. Specifically:
- Completion goes "as far as possible". So, the entire word if there's a
unique completion, or else up to the shared prefix of possible
completions.
- Removes the quick completion behavior whereby a word was completed
automatically as soon as the input came to have a unique completion.
- Tab now completes instead of selecting the next menu item (this can be
configured)
- Breaking changes
- New --force (-f) flag for the mv command. This change alters mv default
behavior. By default overwriting existing files is now prevented (You can
use alias mv = mv -f in you config to get the old defaults back). (#6904)
- The column name for the command name in $nu.scope.commands has been
changed from command to name. Thus, $nu.scope.commands | where name =~
zip would give you specific command info. (#7007)
- The str distance command now directly returns an Int instead of a record
{"distance": <Int>} (#6963)
- The argument order of format filesize was made consistent with other
commands that accept a CellPath to specify fields that should be affected
by it. Now the string specifying the format is the first positional
argument and the cell path is specified in the following positional
argument(s). (#6879)
- The --perf flag for Nu was removed as part of an effort to simplify
diagnostics logging #6834
|
|
Themes of this release:
- New table flags
--expand: changes a standard table view; expand the table structure so
internally all data will be displayed as inner tables
- NOTICE
The expand mode can be considered generally slower than a base table view.
So, if you have a large data set it may be slow.
--expand-deep {int}: set a limit after which table enlargement is stopped
--flatten: an --expand view option to return a set of values instead of
table for a simple lists
--flatten-separator {char}: a configuration of a separator for --flatten
--collapse: changes a standard table view; expand the table structure in a
squashed way
- NOTICE
collapse mode currently doesn't support width control, therefore if your
terminal is not wide enough the table might be broken. The collapse mode can
be considered generally slower than a base table view. So, if you have a
large data set it may be slow.
- Breaking changes
The command first 1 now returns a list with the single value rather than the
value itself. This brings it in line with the behaviour of last 1.
The dataframe command with-sql or query dfr has been renamed to query df for
consistency.
- Next Steps
We're continuing to work on language updates and hope to have more
information for you soon.
|
|
Today, we're releasing version 0.69 of Nu.
Note: this release is officially 0.69.1 because of a last-minute issue that was
found and fixed.
As part of this release, we also publish a set of optional plugins you can
install and use with Nu.
Themes of this release
Finishing the rework of modules and environment (WindSoilder, kubouch)
If you followed the development since the last release, you might have noticed
we successfully applied "the method of dead ends" pioneered by Jára Cimrman
"Somebody had to probe this dead end of human knowledge and announce to the
world: Not this way, friends!"
In short, the source-env experiment did not work out as planned. We hoped to
allow to call source-env with dynamic paths which, however, proved unfeasible.
Therefore, in this release, we remove all notions of source-env from Nushell
and instead use will be used activate the module's environment.
Any call to use will run the module's export-env { ... } block (if there is one)
and keep its environment. A positive side of it is that one call of use is
enough to import both commands/aliases and the environment, there is no need to
call two separate commands as we planned for source-env.
We're also keeping the source command for now, as well as the current config
file format. One reason is that we want to first investigate whether it is
possible to export also regular variables from modules and whether we can use
the module keyword inside modules. However, the use of modules is still
preferred over source as it will become the default way in the future.
Upcoming virtualenv activation changes (kubouch)
To reflect the recent changes to the module environment, we are changing the
virtualenv integration to use overlays. This will come in effect as soon as
this PR
gets merged. In practice, this means that instead of source activate.nu, you'll
use overlay use activate.nu, deactivate will work the same.
Under the hood, calling overlay use activate.nu will activate the activate
overlay and deactivate is just an alias for calling overlay hide activate.
If you wish, you can manually name the overlay, for example overlay use
activate.nu as spam, but then you'd need to remove it with overlay hide spam
instead of deactivate.
Grammar Experiments (JT)
We've recently also started working on some improvements to Nushell's syntax.
While these aren't part of Nushell 0.69, you can try this experimental syntax
in our new grammar
repo. Some experiments we're looking into:
Traditional function definition syntax
def foo(x: int) { ... }
Traditional function call syntax
foo(3)
And much more. We're hoping to talk more about these experiments as they mature.
Breaking changes
We found a regression in the correctness of the -d and -t flags of touch.
To get the release out, we've removed these flags, but hope to replace them
with correct implementations in the future.
We also removed support for duration literals above weeks, including month,
year, and decade literals. These were found to be confusing as it's unclear
what a duration of a month is (30 days? 31 days?)
The str collect command is now str join.
Next Steps
We've been progressing with our design towards 0.80 as outlined in this Notion
page.
Some time was spent trying out possible new syntax directions but we were not
confident to release them yet. In the next release we'll see a removal of
features deprecated in this release and we'll continue to push ahead for
the 0.80.
|
|
This is the 0.68.1 release of Nushell. It is a bugfix release of 0.68.
This addresses a bug with blocks and source-env.
For convenience, we are providing full builds for Windows, Linux, and macOS.
These are the "all extra features" builds, so be sure you have the requirements
to enable all capabilities:
https://www.nushell.sh/book/installation.html#dependencies
With this release, we have also statically linked OpenSSL into the binary to
make it easier to use across a larger range of platforms. If you encounter any
issue with this, please let us know.
|
|
This is a huge jump over several releases and it's impossible to list changes.
Please visit https://www.nushell.sh/blog/ for the details of every release.
Be aware that there are lots of changes across all aspects of Nushell.
- There's a new engine, new line editor, and new commands.
- Configuration files will not work and have to be re-written.
- Previous scripts will need to be updated, and you'll need to learn some of
the new ways of doing things in Nushell to get back to the same level of
comfort.
- Several shell improvements and behavior changes.
- There's also a new plugin architecture and quite a number of breaking
changes after fixing design flaws, cleaned-up the design, and rethought how
commands should work.
- New additional startup file (env.nu) which, sets up the environment that
you'll run Nushell in. As a result, you're able to set up important
environment variables like $env.NU_LIB_DIRS before 'config.nu' begins to run.
- Deeper integration with SQLite, new completion logic, introduction of
overlays, hooks, lazy dataframes, input overloading, input/output type,
new variable naming convention ...
So, please do read about the changes before.
|
|
-Remove unused repo parts (#4271)
-Drop with iter range (#4242)
|
|
What's New:
-You can now learn about some of the upcoming changes in Nushell by reading the
tutor e-q page. It will tell you about some of the new features and breaking
changes, as well as link you to the full list of changes.
Fixes:
-Fix to the sample configuration file
-Fix to a crate description
-Bump to some dependencies in wasm support
-Update to sysinfo support
-Fix to build on latest Rust stable + clippy
|
|
What's New
Fixes
-Can optionally use an insecure SSL cert (nibon7)
-Fixed a crash when viewing text files (nibon7)
-Build fixed for NetBSD (0323pin)
Breaking change
-For naming consistency, into column_path is now into column-path
|
|
What's New
-Features:
-Add -l/--login flag for compat with other shells
-Fixes:
-save --append will now create a file if missing
-Upgraded dependencies
-Corrected spelling in crate docs and code docs
-Fixed the markup in some of the crate docs
-external arguments are now sanitized more
-upx/strip has been removed after feedback from users
-Clipboard capability via arboard removed
-Removed some unnecessary allocation
|
|
Today, we're releasing 0.40 of Nu. This release is includes better table imports
and much smaller release size.
What's New
-Detecting columns (jt)
Nushell now supports a new command: detect columns. This command is intended as
an easy way to handle tabular data that's written as text. Commands like ps,
ls -l, netstat, df, and others commonly output their output as text.
With detect columns, you can run the external command, and convert them into
Nushell's tabular data format.
-Smaller binaries (fdncred)
The size of the Nushell release binaries has come up as regular feedback from
Nushell users. "Why does the shell have to be so big?" And we've heard you!
Today's release now uses a combination of strip and upx to bring considerable
savings in binary size. The Linux release (plugins incl.) has dropped from
475mb to 58mb(!!), making it 88% smaller. We're seeing similar improvements in
the sizes of the macOS and Windows releases.
|
|
Today, we're releasing 0.39 of Nu. This release is a bugfix release of 0.38.
What's New:
-History file is now removed when the history is cleared (fdncred)
-HTML selector has a regression fixed (lucassmmg)
-Unused dependencies were removed (lucassmmg)
-Updated clippy warnings were fixed (jt)
Engine-q progress
You'll notice that this release is pretty light, only a set of fixes on 0.38.
his is because our energy is now largely focused on engine-q.
We're excited to get this in front of you.
Just to tease a little of what will be possible, this week we added support for
processing streams in parallel in engine-q using a new par-each command.
We'll talk more about this as it develops.
|
|
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
|
|
|
|
Today, we're releasing 0.38 of Nu. This release includes polish to the user
interface, improvements to how columns are passed, lots of bug fixes, and
updates on the upcoming engine.
What's New
-Quickly jump to a shell (tw4452852)
If you've used shells, you've no doubt used the n and p commands to quickly jump
between them. This can be a big time saver when you're working in multiple
directories.
In this release, we've added a g command that helps you quickly jump to a
particular shell. This helps in the cases where you end up with more than two
shells open and you already know what shell you want to jump to.
Additional improvements
-Improvements in updated table cell values
-update cells command now can take a list of columns
-You can now also pass a list of columns to select
-Improvements in how html table scraping works and also
-Fix to compiling on nightly
-Removed unused deps
-Completions now can complete inside of an argument
-We now expand tilde when reading plugin directories
-We also turn off ansi colors when not in a TTY
-Fixed some of the wasm deps
-Fixed a leak of a let-binding
-Use SIMD-enabled compiler flags
-Updated polars dependency to 0.16
-Updates to how path join works
-Moved nu-path tests into integration tests
-New support for converting to column paths
-Cleanup fixes to make tests more resilient
-Internal improvement to make working with spans easier
-Fix to gitpod
-Fix to big int handling in to
-Fixed a typo
-Fixed some typos in the tutor
-Removed the experimental scrolling support as it had broken
|
|
Today, we're releasing 0.37 of Nu. This release adds a new find function,
improvements to the current engine, and updates on the upcoming engine.
What's New
finding data in tables
In 0.37, you now have access to a new find command, which can help you quickly
look for data across all columns in a table.
You can still reach your system's find command using ^ by typing ^find.
Additional improvements
-fdncred added more support for ansi art, and more chars
-aminya removed shelling out in some cases where it's not needed
-jt made sys/ps/fetch/post core commands, moving them from plugins to internal
commands. This allows for future capability to have nushell download its own
extensions.
-andrasio began adding support for creating errors inside of nushell code,
extended tags to support basic command reflection
-lily-mara added into filesize
-tw4452852 added support to append when calling save
-Pantoshire improved errors when bash-style alias was mistakingly used
-tranzystorek-io did a lot of general code improvements
-kubouch did some fixes to paths and the source command
-elferherrera updated the prompt environment variable to PROMPT_COMMAND to show
that it is nushell code that gets run
|
|
-This release fixes some long-standing issues with history, improves the help
system, improves dataframes, and much more.
|
|
-Add the -s parameter to submit package to winget in pipeline (#3767)
-corrected position of dataframes (#3776)
-fixed show_hints option to allow hints to be turned off (#3780)
-Updated polars version for faster CSV reader (#3781)
-Fix docs for the config variable completion_type (#3804)
-bat theme wasn't getting set properly (#3807)
-Dataframe Shape command (#3805)
-Support other variables than PATH in pathvar (2nd attempt) (#3828)
-change describe so it doesn't output colored strings (#3832)
-Read from standard input in rm (#3763)
-use chrono_humanize for datetime formatting (#3834)
-All is a DataFrame (#3812)
-Add sha256 to the hash command (#3836)
-added the ability to compare time units like 1hr < 2hr (#3845)
-Update implementing_a_command.md (#3848)
-Improve md5 and sha256 code (#3841)
-Fix clippy lint and disable broken lint (#3865)
-document compiling without openssl (#3862)
-Add named positionals to all (#3863)
-add performance metrics for measuring startup time (#3854)
-fix interpolated strings when using unicode (#3866)
-Support equals sign in shorthand environment variable values (#3869)
-simple contains arguments (#3874)
-Better representation in nested dataframes (#3875)
|
|
Hello, and welcome to the Nushell project. The goal of this project is to take
the Unix philosophy of shells, where pipes connect simple commands together, and
bring it to the modern style of development.
Nu takes cues from a lot of familiar territory: traditional shells like bash,
advanced shells like PowerShell, functional programming, systems programming,
and more. But rather than trying to be the jack of all trades, Nu focuses its
energy on doing a few things well:
-Create a flexible cross-platform shell with a modern feel
-Allow you to mix and match commandline applications with a shell that
understands the structure of your data
-Have the level of UX polish that modern CLI apps provide
The easiest way to see what Nu can do is to start with some examples, so let's
dive in, https://www.nushell.sh/book/
|