You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[*Streaming all the things*](#streaming-all-the-things-toc)
28
+
-[*New language feature: raw strings*](#new-language-feature-raw-strings-toc)
29
+
-[*Removal of deprecated features*](#removal-of-deprecated-features-toc)
30
30
-[*Hall of fame*](#hall-of-fame-toc)
31
31
-[*Bug fixes*](#bug-fixes-toc)
32
32
-[*Enhancing the documentation*](#enhancing-the-documentation-toc)
@@ -68,28 +68,27 @@ As part of this release, we also publish a set of optional plugins you can insta
68
68
for the list of available *containers*
69
69
-->
70
70
71
-
## Fixing path and CWD handling
71
+
## Fixing path and CWD handling[[toc](#table-of-content)]
72
72
73
73
One of our contributors, [@YizhePKU](https://github.com/YizhePKU), has started an effort to refactor how Nushell internally handles the current working directory and paths in general. Namely, Nushell aggressively canonicalizes paths instead of using logical paths which can lead to unintuitive or annoying behavior ([#2175](https://github.com/nushell/nushell/issues/2175)). Thanks to their work, `$env.CWD` and the `pwd` now support logical paths. With time, we intend to make similar to changes to other commands to make them more intuitive and consistent with the rest of Nushell. Another goal with these changes is to eliminate bugs in commands, as some commands incorrectly use the Nushell process's current working directory instead of `$env.CWD`. So far, the `grid`, `path type`, and `touch --reference` commands have been fixed, and we are aiming to bring more fixes in the next release. We kindly ask for your patience as we rework this part of Nushell, and we would appreciate if you would report any issues you encounter!
See a full overview of the [breaking changes](#breaking-changes)
79
79
:::
80
80
81
-
In an effort to allow more ergonomic cross-platform scripting, we have changed the environment in
82
-
Nushell to be case-preserving ([#12701](https://github.com/nushell/nushell/pull/12701)). That is, environment variables keep their initial casing but can be accessed in a case-insensitive manner within Nushell. This means that accessing `$env.PATH` or `$env.Path` will now work on both unix-based systems and Windows systems. To get environment variables in a case-sensitive manner, you can use `get -s`.
81
+
In an effort to allow more ergonomic cross-platform scripting, we have changed the environment in Nushell to be case-preserving ([#12701](https://github.com/nushell/nushell/pull/12701)). That is, environment variables keep their initial casing but can be accessed in a case-insensitive manner within Nushell. This means that accessing `$env.PATH` or `$env.Path` will now work on both unix-based systems and Windows systems. To get environment variables in a case-sensitive manner, you can use `get -s`.
83
82
```nushell
84
83
$env | get -s PATH
85
84
```
86
85
Please note that there are still a few things that have to be ironed out with this new behavior. For example, it is currently unclear what `load-env { FOO: BAR, foo: bar }` should do. So, there may be more changes in the near future.
87
86
88
-
## Streaming all the things
87
+
## Streaming all the things[[toc](#table-of-content)]
89
88
90
89
Another major effort with this release was to make streaming more consistent and widespread ([#12774](https://github.com/nushell/nushell/pull/12774), [#12897](https://github.com/nushell/nushell/pull/12897), [#12918](https://github.com/nushell/nushell/pull/12918), and more). For example, Nushell now passes operating system pipe descriptors directly to external commands, meaning there should be an improvement to throughput for some pipelines. Additionally, several commands were reworked so that they are now able to stream their output in more cases instead of having to collect it all in memory beforehand. The commands in question include `from csv`, `to csv`, `from tsv`, `to tsv`, `from json --objects`, `take`, `skip`, `first`, `last`, `bytes ends-with`, `bytes collect`, `str join`, `into string`, and `into binary`. Of course, the plan is to add more commands to this list in the future, so this is only the beginning!
91
90
92
-
## New language feature: raw strings
91
+
## New language feature: raw strings[[toc](#table-of-content)]
93
92
94
93
This release adds a new type of string literal to the language: raw strings ([#9956](https://github.com/nushell/nushell/pull/9956)). These are just like single quoted strings, except that raw strings may also contain single quotes. This is possible, since raw strings are enclosed by a starting `r#'` and an ending `'#`. This syntax should look familiar to users of Rust.
95
94
```nushell
@@ -102,7 +101,7 @@ Additional `#` symbols can be added to the start and end of the raw string to en
102
101
r###'this text has multiple '## symbols'###
103
102
```
104
103
105
-
## Removal of deprecated features
104
+
## Removal of deprecated features[[toc](#table-of-content)]
106
105
107
106
::: warning Breaking change
108
107
See a full overview of the [breaking changes](#breaking-changes)
0 commit comments