Skip to content

Commit

Permalink
[WIP] Release notes for 0.69 (#598)
Browse files Browse the repository at this point in the history
* [WIP] Release notes for 0.69

Please contribute your major changes to the relase notes on the `release_notes_69` branch.

Currently just a stub

* Remove missed mentions of old version

* Update module env and virtualenv

* Add TODO

* Update 2022-09-27-nushell-0_69.md

* Update 2022-09-27-nushell-0_69.md

* Update 2022-09-27-nushell-0_69.md

* Update 2022-09-27-nushell-0_69.md

Co-authored-by: Jakub Žádník <[email protected]>
Co-authored-by: JT <[email protected]>
  • Loading branch information
3 people committed Sep 28, 2022
1 parent 66532a2 commit 2f66a57
Showing 1 changed file with 152 additions and 0 deletions.
152 changes: 152 additions & 0 deletions blog/2022-09-27-nushell-0_69.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
---
title: Nushell 0.69
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.69 of Nu. This is release continues to make nushell nicer.
---

# Nushell 0.69

Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your commandline. 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 commandline pipelines.

Today, we're releasing version 0.69 of Nu.
<!-- more -->

# Where to get it

Nu 0.69 is available as [pre-built binaries](https://github.com/nushell/nushell/releases/tag/0.69.1) or from [crates.io](https://crates.io/crates/nu). Note: this release is officially "0.69.1" because of a last-minute issue that was found and fixed. If you have Rust installed you can install it using `cargo install nu`.

If you want all the built-in goodies, you can install `cargo install nu --features=extra`.

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_<plugin name>`.

# Themes of this release

## Finishing the rework of modules and environment ([WindSoilder, kubouch](https://github.com/nushell/nushell/pull/6468))

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](https://en.wikipedia.org/wiki/J%C3%A1ra_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.

### Summary of deprecations

Here is a recap of the table posted in the previous release post with updated entries.

| command | pre-previous release (0.67) | previous release (0.68) | this release (0.69) |
| ------------ | --------------------------------------------------- | ---------------------------------------------------------------------- | --------------------------------- |
| `source` | imports everything into the current scope | same (deprecated) | same (deprecated) |
| `source-env` | N/A | imports environment variables | removed |
| `use` | imports environment variables, commands and aliases | same | same |
| `hide` | hides enviornment variables, commands and aliases | same | hides only commands and aliases* |
| `hide-env` | hides environment variables | same | same |
| `export env` | defines a single environment variable in a module | same | removed |
| `export-env` | N/A | (in a module) defines the envrionment for the whole module | same |
| `export-env` | N/A | (in a script) when evaluated, preserves the environment from the block | same |
| `export ...` | only allowed in a module | allowed in a script as well | same |
| `config.nu` | plain script | plain script | plain script |
| `env.nu` | plain script | plain script | plain script |
| `login.nu` | plain script | plain script | plain script |

* Technically, `hide` still hides environment variables but it works in a "compatibility mode" that is intended to only serve its purpose in the virtualenv activation script. As soon as the virtualenv integration gets updated, hiding environment variables with `hide` will be removed completely.

## 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](https://github.com/pypa/virtualenv/pull/2422) 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](https://github.com/nushell/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](https://kubouch.notion.site/4db276462ba24704919edb4cc4b86be7?v=10506505557f4f7b9a65155128c04250).

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.

# Full changelog

## Nushell

- jt created [bump to 0.69.1](https://github.com/nushell/nushell/pull/6631), and [remove -d and -t from touch](https://github.com/nushell/nushell/pull/6629), and [bump to updated reedline](https://github.com/nushell/nushell/pull/6626), and [bump to 0.69](https://github.com/nushell/nushell/pull/6623), and [Remove month and year duration constants](https://github.com/nushell/nushell/pull/6613), and [touchup some clippy warnings in tests](https://github.com/nushell/nushell/pull/6612)
- sholderbach created [Clippy with the current stable toolchain](https://github.com/nushell/nushell/pull/6615), and [Update reedline to better vi behavior](https://github.com/nushell/nushell/pull/6614), and [Add "space" key to bind in vi normal mode](https://github.com/nushell/nushell/pull/6590), and [Improve wording around `all` and `any`](https://github.com/nushell/nushell/pull/6524)
- MichelMunoz created [6582 - Incorrect documentation for some string operations](https://github.com/nushell/nushell/pull/6610)
- nibon7 created [version: show built time git branch](https://github.com/nushell/nushell/pull/6609), and [Apply clippy fix for rust 1.63.0](https://github.com/nushell/nushell/pull/6576), and [Use style from lscolors to render the rest of the filename](https://github.com/nushell/nushell/pull/6564), and [Use stripped path for lscolors to get style](https://github.com/nushell/nushell/pull/6561), and [Make clickable links smarter](https://github.com/nushell/nushell/pull/6556)
- WindSoilder created [fix sys info mem usage](https://github.com/nushell/nushell/pull/6607), and [when execute external command, escape args if possible](https://github.com/nushell/nushell/pull/6560), and [Remove deprecated environment functionality](https://github.com/nushell/nushell/pull/6468)
- Fl1tzi created [fix issue 6602 (broken highlighting in find)](https://github.com/nushell/nushell/pull/6604)
- Kangaxx-0 created [[Cleanup]Nu completion unit tests](https://github.com/nushell/nushell/pull/6601), and [Fix 6529 - Trim overlay name](https://github.com/nushell/nushell/pull/6555), and [Add overlay use usage for 'as'](https://github.com/nushell/nushell/pull/6551), and [Fix 6252 by remove unit tests](https://github.com/nushell/nushell/pull/6515)
- fdncred created [bump pinned rust version to 1.63](https://github.com/nushell/nushell/pull/6600), and [add history session command](https://github.com/nushell/nushell/pull/6587), and [add history session id to $nu](https://github.com/nushell/nushell/pull/6585), and [rename with_sql to query dfr](https://github.com/nushell/nushell/pull/6568), and [update sql-parser crate and all the files it touches](https://github.com/nushell/nushell/pull/6566), and [synchronize the db commands with file names](https://github.com/nushell/nushell/pull/6565), and [update to the latest sysinfo crate](https://github.com/nushell/nushell/pull/6563), and [update text in readme file](https://github.com/nushell/nushell/pull/6557), and [provide a way to use sql to query dataframes](https://github.com/nushell/nushell/pull/6537)
- rgwood created [Fix mv data loss when changing folder case (step 1)](https://github.com/nushell/nushell/pull/6599)
- dandavison created [Improve `uniq --help` text](https://github.com/nushell/nushell/pull/6580), and [Improve "Did you mean?" suggestions](https://github.com/nushell/nushell/pull/6579), and [Reinstate the `-a` short form of `save --append`](https://github.com/nushell/nushell/pull/6575), and [Revert foreground process changes to fix MacOS piping bug (less and fzf)](https://github.com/nushell/nushell/pull/6542), and [Don't compute 'did you mean' suggestions unless showing them to user](https://github.com/nushell/nushell/pull/6540), and [`str collect` => `str join`](https://github.com/nushell/nushell/pull/6531)
- kubouch created [Add export-env eval to use command](https://github.com/nushell/nushell/pull/6572), and [Require static path for `source-env`](https://github.com/nushell/nushell/pull/6526)
- aroneous created [Support Arrow IPC file format with dataframes](https://github.com/nushell/nushell/pull/6548)
- hustcer created [Bump dev version to v0.68.2](https://github.com/nushell/nushell/pull/6538)
- merelymyself created [default to $nothing if cellpath not found](https://github.com/nushell/nushell/pull/6535), and [Stop panic when typing `module spam { export def-env`](https://github.com/nushell/nushell/pull/6523), and [remove panic from `lpad` and `rpad`, change truncation behaviour for `lpad`](https://github.com/nushell/nushell/pull/6495)
- CBenoit created [build: update `cpufeatures` crate](https://github.com/nushell/nushell/pull/6527)
- unrelentingtech created [Add a 'commandline' command for manipulating the current buffer](https://github.com/nushell/nushell/pull/6492), and [shell_integration: Report current working directory as OSC 7](https://github.com/nushell/nushell/pull/6481)

## Extension

- fdncred created [Update readme screenshots](https://github.com/nushell/vscode-nushell-lang/pull/65), and [bump version for release](https://github.com/nushell/vscode-nushell-lang/pull/64), and [add some tweaks to the auto-generated syntax](https://github.com/nushell/vscode-nushell-lang/pull/63), and [remove themes + cleanup](https://github.com/nushell/vscode-nushell-lang/pull/62), and [correct syntax highlighting for block parameters](https://github.com/nushell/vscode-nushell-lang/pull/61)
- Yethal created [Updated syntax + fixed generation script](https://github.com/nushell/vscode-nushell-lang/pull/60)

## Documentation

- drbrain created [Explain … for a repeating positional parameter](https://github.com/nushell/nushell.github.io/pull/613)
- tensorush created [Fix built-in and plug-in typos](https://github.com/nushell/nushell.github.io/pull/611), and [Fix some typos](https://github.com/nushell/nushell.github.io/pull/610)
- WindSoilder created [add background task section](https://github.com/nushell/nushell.github.io/pull/609), and [add doc about plugin name](https://github.com/nushell/nushell.github.io/pull/607), and [update plugin for newest changes](https://github.com/nushell/nushell.github.io/pull/600)
- fdncred created [add a dataframe cookbook example](https://github.com/nushell/nushell.github.io/pull/608)
- hustcer created [Refactor vuepress config](https://github.com/nushell/nushell.github.io/pull/605)
- apraga created [Cookbook : SSH passphase management](https://github.com/nushell/nushell.github.io/pull/604)
- Yethal created [Update modules.md](https://github.com/nushell/nushell.github.io/pull/603)
- dandavison created [`str collect` => `str join`](https://github.com/nushell/nushell.github.io/pull/602)

## Nu_Scripts

- Neur1n created [feat: added coloring/hl.nu, a highlighting module](https://github.com/nushell/nu_scripts/pull/299)
- WindSoilder created [add background feature](https://github.com/nushell/nu_scripts/pull/298)
- fdncred created [add cargo update completions](https://github.com/nushell/nu_scripts/pull/297)
- FrancescElies created [cargo clippy completions](https://github.com/nushell/nu_scripts/pull/296)
- e2dk4r created [custom completions: scoop: fix getting environmental variables on nu v0.68.0](https://github.com/nushell/nu_scripts/pull/293)
- Lightfire228 created [[WIP] Feature/auto venv](https://github.com/nushell/nu_scripts/pull/289)

## reedline

- sholderbach created [Prepare 0.12.0 release](https://github.com/nushell/reedline/pull/487), and [List that space can be bound through `Char(' ')`](https://github.com/nushell/reedline/pull/486), and [Vi-Refactor: Properly parse motions separate from the actions](https://github.com/nushell/reedline/pull/484), and [Fix vi character search parsing](https://github.com/nushell/reedline/pull/483), and [Fix documentation string formatting and linking](https://github.com/nushell/reedline/pull/482)
- fdncred created [enable easier history session id conversion](https://github.com/nushell/reedline/pull/485), and [change history session_id to a systematically generated number](https://github.com/nushell/reedline/pull/481)
- jcgruenhage created [Don't bundle sqlite by default](https://github.com/nushell/reedline/pull/474)
- unrelentingtech created [Allow external manipulation of the command line buffer, fixes #423](https://github.com/nushell/reedline/pull/472)
- GrxE created [Basic external printer](https://github.com/nushell/reedline/pull/467)

0 comments on commit 2f66a57

Please sign in to comment.