Skip to content

Commit 285c702

Browse files
authored
Start 0.98.0 release notes (#1550)
1 parent 44b6f8f commit 285c702

File tree

1 file changed

+79
-4
lines changed

1 file changed

+79
-4
lines changed

blog/2024-09-17-nushell_0_98_0.md

Lines changed: 79 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ author_site: https://twitter.com/nu_shell
55
author_image: https://www.nushell.sh/blog/images/nu_logo.png
66
excerpt: Today, we're releasing version 0.98.0 of Nu. This release adds...
77
---
8+
89
<!-- TODO: complete the excerpt above -->
910

1011
# Nushell 0.98.0
1112

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

1415
<!-- TODO: write this excerpt -->
16+
1517
Today, we're releasing version 0.98.0 of Nu. This release adds...
1618

1719
# Where to get it
@@ -21,6 +23,7 @@ Nu 0.98.0 is available as [pre-built binaries](https://github.com/nushell/nushel
2123
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>`.
2224

2325
# Table of content
26+
2427
- [_Highlights and themes of this release_](#highlights-and-themes-of-this-release-toc)
2528
- [_Changes to commands_](#changes-to-commands-toc)
2629
- [_Additions_](#additions-toc)
@@ -49,6 +52,7 @@ As part of this release, we also publish a set of optional plugins you can insta
4952
-->
5053

5154
# Highlights and themes of this release [[toc](#table-of-content)]
55+
5256
<!-- NOTE: if you wanna write a section about a breaking change, when it's a very important one,
5357
please add the following snippet to have a "warning" banner :)
5458
> see [an example](https://www.nushell.sh/blog/2023-09-19-nushell_0_85_0.html#pythonesque-operators-removal)
@@ -63,18 +67,86 @@ As part of this release, we also publish a set of optional plugins you can insta
6367
for the list of available *containers*
6468
-->
6569

70+
## Removing support for the system clipboard
71+
72+
With [#13694](https://github.com/nushell/nushell/pull/13694), support for the system clipboard in keybinds has been removed, as this is not something that we think we can provide good, cross-platform support for in a secure manner. Namely,
73+
74+
- Tests for the clipboard feature are lacking due to the difficulty in setting up tests on each platform.
75+
- The clipboard feature is known to be problematic on certain systems, potentially affecting startup times. Due to the lack of tests, other unfound issues may be lurking.
76+
- The system clipboard adds a potential attack surface.
77+
- The clipboard feature adds 1MB to the binary size.
78+
79+
So, going forward, users that want the system clipboard functionality will have to compile a custom build of nushell by enabling the `system-clipboard` cargo feature. As an alternative, we recommend users delegate system clipboard handling to their terminal.
80+
6681
# Changes to commands [[toc](#table-of-content)]
6782

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

85+
### `metadata access`
86+
87+
Thanks to [@Bahex](https://github.com/Bahex) in [#13785](https://github.com/nushell/nushell/pull/13785), a new `metadata access` command was added. It takes a closure argument, and the first argument to the closure will be the metadata record. Additionally, the pipeline input to `metadata access` will be forwarded to the closure as is. So, unlike the `metadata` command, this new command allows you to get the metadata of a pipeline without consuming the pipeline.
88+
89+
### `split column --numbered`
90+
91+
Thanks to [@nome](https://github.com/nome) in [#13831](https://github.com/nushell/nushell/pull/13831), a `--numbered` flag was added to `split column` which limits the number of times to split the input string (just like `split row --numbered`).
92+
7093
## Breaking changes [[toc](#table-of-content)]
7194

95+
### `into record`
96+
97+
In [#13637](https://github.com/nushell/nushell/pull/13637), several changes/improvements were made to list inputs for `into record`:
98+
99+
- A list of pairs of values will be converted into a record. For example:
100+
```nushell
101+
[[a 1] [b 2]] | into record
102+
# { a: 1, b: 2 }
103+
```
104+
- A list of records are merged into a single record (records at the end of the list have precedence):
105+
```nushell
106+
[{ a: 1 } { b: 2 } { a: 3 }] | into record
107+
# { a: 3, b: 2 }
108+
```
109+
110+
As a consequence, the previous behavior for list inputs has been removed (the index of each item would be used as the key). Instead, this old behavior can now be accomplished through either of the following:
111+
112+
```nushell
113+
0.. | zip $list | into record
114+
115+
$list | enumerate | transpose -r -d | into record
116+
```
117+
118+
Additionally, `into record` no longer supports range values as input.
119+
120+
After [#13650](https://github.com/nushell/nushell/pull/13650), `into record` also now outputs `millisecond`, `microsecond`, and `nanosecond` columns when provided with a datetime value.
121+
122+
### `clear`
123+
124+
In [#13821](https://github.com/nushell/nushell/pull/13821), [@T3sT3ro](https://github.com/T3sT3ro) changed the `clear` command to clear the entire scrollback buffer. As such, the `--all` flag was removed, since it is now the default behavior. Instead, a `--keep-scrollback` flag was added, which when used, makes `clear` clear only the terminal (the previous default behavior).
125+
126+
### `path exists`
127+
128+
After [#13763](https://github.com/nushell/nushell/pull/13763), if an I/O error occurs when checking if a path exists, `false` is now returned instead of throwing an error (this includes errors due to insufficient permissions).
129+
72130
## Deprecations [[toc](#table-of-content)]
73131

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

134+
### `str deunicode`
135+
136+
In [#13693](https://github.com/nushell/nushell/pull/13693), the `str deunicode` command (added in v0.96.0) has been removed due to concerns with stability and support post v1.0.
137+
76138
## Bug fixes and other changes [[toc](#table-of-content)]
77139

140+
### `find`
141+
142+
After [#13848](https://github.com/nushell/nushell/pull/13848), the find command no longer strips tabs from its input.
143+
144+
Also, regex patterns are now properly escaped after [#13792](https://github.com/nushell/nushell/pull/13792).
145+
146+
### `detect columns`
147+
148+
One source of panics was fixed in [#13752](https://github.com/nushell/nushell/pull/13752).
149+
78150
<!-- NOTE: to start investigating the contributions of last release, i like to list them all in a raw table.
79151
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)
80152
as follows:
@@ -103,6 +175,7 @@ As part of this release, we also publish a set of optional plugins you can insta
103175
-->
104176

105177
# All breaking changes [[toc](#table-of-content)]
178+
106179
<!-- TODO:
107180
paste the output of
108181
```nu
@@ -117,15 +190,17 @@ As part of this release, we also publish a set of optional plugins you can insta
117190

118191
Thanks to all the contributors below for helping us solve issues and improve documentation :pray:
119192

120-
| author | title | url |
121-
| ------------------------------------ | ----------- | ------------------------------------------------------- |
122-
| [@author](https://github.com/author) | ... | [#12345](https://github.com/nushell/nushell/pull/12345) |
193+
| author | title | url |
194+
| ------------------------------------------------ | ------------------------- | ------------------------------------------------------- |
195+
| [@author](https://github.com/author) | ... | [#12345](https://github.com/nushell/nushell/pull/12345) |
196+
| [@poliorcetics](https://github.com/poliorcetics) | doc: fix broken doc links | [#13644](https://github.com/nushell/nushell/pull/13644) |
123197

124198
# Full changelog [[toc](#table-of-content)]
199+
125200
<!-- TODO:
126201
paste the output of
127202
```nu
128203
./make_release/release-note/get-full-changelog
129204
```
130205
here
131-
-->
206+
-->

0 commit comments

Comments
 (0)