Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 92 additions & 0 deletions blog/2024-10-15-nushell_0_99_0.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,24 @@ As part of this release, we also publish a set of optional plugins you can insta
for the list of available *containers*
-->

## Handling stopped TUI applications

Thanks to [@nome](https://github.com/nome) in [#13741](https://github.com/nushell/nushell/pull/13741), Nushell will no longer hang the terminal on unix systems if an external command is suspended (e.g., via `ctrl+z`). Instead, Nushell will now display a message and wait for any key press before bringing the suspended process back to the terminal foreground.

# Changes [[toc](#table-of-content)]

## Additions [[toc](#table-of-content)]

### `ls --threads`

With [#13836](https://github.com/nushell/nushell/pull/13836), an experimental `--threads` flag was added to `ls`. When provided, this flag makes `ls` use multiple threads (the exact number is currently undefined). In some cases, this significantly reduces the running time of `ls`.

### `enhanced keybinding configuration` [[toc](#table-of-content)]

**Support for kitty keyboard protocol modifiers.**

Thanks to [@replcat](https://github.com/replcat) in [#13906](https://github.com/nushell/nushell/pull/13906), keybindings in your config can now use any combination of the modifiers `shift`, `alt`, `ctrl`, `super`, `hyper`, and `meta`. Note that this requires your terminal to support the kitty keyboard protocol and for the config option `$env.config.use_kitty_protocol` to be set to `true`.

**Support for Unicode Code Points in Keycodes.**

Starting from [#14020](https://github.com/nushell/nushell/pull/14020), users can now specify characters in the keycode field using their Unicode code points, in the format `char_uXXXX`, where `XXXX` is the hexadecimal Unicode code point. This provides greater flexibility when configuring keybindings in Nushell.
Expand Down Expand Up @@ -105,6 +117,19 @@ $env.config = {
}
```

### `input listen`

The `input listen` command now supports the kitty keyboard protocol and respects the `$env.config.use_kitty_protocol` config option. This was added in [#13892](https://github.com/nushell/nushell/pull/13892) thanks to [@weirdan](https://github.com/weirdan).

### `random bytes` and `random chars`

`random bytes` and `random chars` now support file size values as arguments for the amount/length of data to be generated.

```nu
random binary 1kb
random chars --length 1kb
```

## Breaking changes [[toc](#table-of-content)]

### Standard Library
Expand Down Expand Up @@ -140,8 +165,62 @@ Refer to the [Standard Library](/book/standard_library.md) documentation for mor

## Removals [[toc](#table-of-content)]

### `decode new-base64` and `encode new-base64`

The `decode new-base64` and `encode new-base64` commands added in the last release have now replaced the previous `decode base64` and `encode base64` commands [as planned](https://www.nushell.sh/blog/2024-09-17-nushell_0_98_0.html#encode-new-base64-decode-new-base64-toc) with [#14018](https://github.com/nushell/nushell/pull/14018).

### `group`

With [#14056](https://github.com/nushell/nushell/pull/14056), the `group` command [deprecated back in 0.96.0](https://www.nushell.sh/blog/2024-07-23-nushell_0_96_0.html#chunks-toc) has been removed. Please use the `chunks` command instead.

## Bug fixes and other changes [[toc](#table-of-content)]

### Default config prompt

After [#13857](https://github.com/nushell/nushell/pull/13857), Nushell will only prompt the user to write the default config files if the default config directory does not exist. After the first prompt, the default config directory is created regardless of the response so that the user is not prompted again.

### Mid-pipeline exit codes

Some internal commands collect their input which could trigger the non-zero exit code error added in 0.98.0. After, [#13899](https://github.com/nushell/nushell/pull/13899) this has been fixed and only the final command in a pipeline can trigger a non-zero exit code error if it is an external command.

### Last exit code

Fixed `$env.LAST_EXIT_CODE` not being set to `1` for errors not relating to external commands in [#13954](https://github.com/nushell/nushell/pull/13954).

### `try`

In [#13885](https://github.com/nushell/nushell/pull/13885), a bug where `try` did not catch errors when assigned to a variable using `let` was fixed. In addition, an issue was fixed in [#13992](https://github.com/nushell/nushell/pull/13992) where `try` would sometimes print values when it was not the last pipeline element.

### Parser bugs

Thanks to [@sgvictorino](https://github.com/sgvictorino) in [#14053](https://github.com/nushell/nushell/pull/14053), several parser bugs related to strings containing equal signs has been fixed.

### `hash`

The `hash` commands supported binary input, but their command signatures did not say so. This has been fixed in [#13923](https://github.com/nushell/nushell/pull/13923).

### `view source`

`view source` now sets the pipeline metadata to `application/x-nuscript` after [#13859](https://github.com/nushell/nushell/pull/13859) thanks to [@Bahex](https://github.com/Bahex).

### `do -p`

Fixed `do` not waiting for external commands to complete when provided the `-p` flag in [#13881](https://github.com/nushell/nushell/pull/13881).

### `format date`

[#14037](https://github.com/nushell/nushell/pull/14037) fixed `format date` not respecting the current `$env.LC_TIME`.

### `save -p`

There progress bar for `save -p` now updates at a minimum of every 75ms. Before, the progress bar would update at every write, making it hard to read.

### Panic fixes

Thanks to [@sgvictorino](https://github.com/sgvictorino), panics due to empty record input for `inspect` and `explore` was fixed in [#13893](https://github.com/nushell/nushell/pull/13893).

Thanks to [@anka-213](https://github.com/anka-213) in [#10395](https://github.com/nushell/nushell/pull/10395), a parser panic regarding custom command arguments was fixed.

<!-- NOTE: to start investigating the contributions of last release, i like to list them all in a raw table.
to achieve this, one can use the [`list-merged-prs` script from `nu_scripts`](https://github.com/nushell/nu_scripts/blob/main/make_release/release-note/list-merged-prs)
as follows:
Expand Down Expand Up @@ -179,6 +258,19 @@ Thanks to all the contributors below for helping us solve issues and improve doc
| ------------------------------------ | ----- | ------------------------------------------------------- |
| [@author](https://github.com/author) | ... | [#12345](https://github.com/nushell/nushell/pull/12345) |

<!-- TODO: add to table above

https://github.com/nushell/nushell/pull/13890
https://github.com/nushell/nushell/pull/13985
https://github.com/nushell/nushell/pull/13986
https://github.com/nushell/nushell/pull/13993
https://github.com/nushell/nushell/pull/14007
https://github.com/nushell/nushell/pull/14013
https://github.com/nushell/nushell/pull/14038
https://github.com/nushell/nushell/pull/14065

-->

# Full changelog [[toc](#table-of-content)]

<!-- TODO:
Expand Down