mirror of
https://github.com/nushell/nushell
synced 2024-11-14 00:47:09 +00:00
871 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
dependabot[bot]
|
299a218de7
|
Bump tango-bench from 0.5.0 to 0.6.0 (#13861)
Bumps [tango-bench](https://github.com/bazhenov/tango) from 0.5.0 to 0.6.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Wind
|
1a081c09de
|
Bump version to 0.98.1 (#13896) | ||
Devyn Cairns
|
6e1e824473
|
Bump version to 0.98.0 (#13865)
|
||
Darren Schroeder
|
2afc6a974e
|
bump rust version to 1.79.0 (#13809)
# Description This PR bumps our rust version from 1.78 to 1.79.0 due to the 1.81.0 release. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
Darren Schroeder
|
edd69aa283
|
update the latest reedline (#13797)
# Description I swear, I only did `cargo update -p reedline`. However, I feel down the dependency rabbit hole. We need to get nushell on crossterm 28.1 and ratatui on 28.1 but we can't because tabled uses papergrid which uses an older version of unicode-width that can't be upgraded apparently. Ugh. I've opened an issue at the tabled repo about this. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
Stefan Holderbach
|
92091599ff
|
Fixup serde feature selection in nu-protocol (#13793)
Discovered by @cptpiepmatz that #13749 broke the standalone check for `nu-protocol` Explicit use of the feature as workspace root also disables all features for `serde`. Alternatively we could reconsider this there. |
||
dependabot[bot]
|
e7b7c7f39a
|
Bump nix from 0.28.0 to 0.29.0 (#13773)
Bumps [nix](https://github.com/nix-rust/nix) from 0.28.0 to 0.29.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/nix-rust/nix/blob/master/CHANGELOG.md">nix's changelog</a>.</em></p> <blockquote> <h2>[0.29.0] - 2024-05-24</h2> <h3>Added</h3> <ul> <li>Add <code>getregset()/setregset()</code> for Linux/glibc/x86/x86_64/aarch64/riscv64 and <code>getregs()/setregs()</code> for Linux/glibc/aarch64/riscv64 (<a href="https://redirect.github.com/nix-rust/nix/pull/2044">#2044</a>)</li> <li>Add socket option Ipv6Ttl for apple targets. (<a href="https://redirect.github.com/nix-rust/nix/pull/2287">#2287</a>)</li> <li>Add socket option UtunIfname. (<a href="https://redirect.github.com/nix-rust/nix/pull/2325">#2325</a>)</li> <li>make SigAction repr(transparent) & can be converted to the libc raw type (<a href="https://redirect.github.com/nix-rust/nix/pull/2326">#2326</a>)</li> <li>Add <code>From</code> trait implementation for conversions between <code>sockaddr_in</code> and <code>SockaddrIn</code>, <code>sockaddr_in6</code> and <code>SockaddrIn6</code> (<a href="https://redirect.github.com/nix-rust/nix/pull/2328">#2328</a>)</li> <li>Add socket option ReusePortLb for FreeBSD. (<a href="https://redirect.github.com/nix-rust/nix/pull/2332">#2332</a>)</li> <li>Added support for openat2 on linux. (<a href="https://redirect.github.com/nix-rust/nix/pull/2339">#2339</a>)</li> <li>Add if_indextoname function. (<a href="https://redirect.github.com/nix-rust/nix/pull/2340">#2340</a>)</li> <li>Add <code>mount</code> and <code>unmount</code> API for apple targets. (<a href="https://redirect.github.com/nix-rust/nix/pull/2347">#2347</a>)</li> <li>Added <code>_PC_MIN_HOLE_SIZE</code> for <code>pathconf</code> and <code>fpathconf</code>. (<a href="https://redirect.github.com/nix-rust/nix/pull/2349">#2349</a>)</li> <li>Added <code>impl AsFd for pty::PtyMaster</code> (<a href="https://redirect.github.com/nix-rust/nix/pull/2355">#2355</a>)</li> <li>Add <code>open</code> flag <code>O_SEARCH</code> to AIX, Empscripten, FreeBSD, Fuchsia, solarish, WASI (<a href="https://redirect.github.com/nix-rust/nix/pull/2374">#2374</a>)</li> <li>Add prctl function <code>prctl_set_vma_anon_name</code> for Linux/Android. (<a href="https://redirect.github.com/nix-rust/nix/pull/2378">#2378</a>)</li> <li>Add <code>sync(2)</code> for <code>apple_targets/solarish/haiku/aix/hurd</code>, <code>syncfs(2)</code> for <code>hurd</code> and <code>fdatasync(2)</code> for <code>aix/hurd</code> (<a href="https://redirect.github.com/nix-rust/nix/pull/2379">#2379</a>)</li> <li>Add fdatasync support for Apple targets. (<a href="https://redirect.github.com/nix-rust/nix/pull/2380">#2380</a>)</li> <li>Add <code>fcntl::OFlag::O_PATH</code> for FreeBSD and Fuchsia (<a href="https://redirect.github.com/nix-rust/nix/pull/2382">#2382</a>)</li> <li>Added <code>PathconfVar::MIN_HOLE_SIZE</code> for apple_targets. (<a href="https://redirect.github.com/nix-rust/nix/pull/2388">#2388</a>)</li> <li>Add <code>open</code> flag <code>O_SEARCH</code> to apple_targets (<a href="https://redirect.github.com/nix-rust/nix/pull/2391">#2391</a>)</li> <li><code>O_DSYNC</code> may now be used with <code>aio_fsync</code> and <code>fcntl</code> on FreeBSD. (<a href="https://redirect.github.com/nix-rust/nix/pull/2404">#2404</a>)</li> <li>Added <code>Flock::relock</code> for upgrading and downgrading locks. (<a href="https://redirect.github.com/nix-rust/nix/pull/2407">#2407</a>)</li> </ul> <h3>Changed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
6be458c686
|
Bump itertools from 0.12.1 to 0.13.0 (#13774)
Bumps [itertools](https://github.com/rust-itertools/itertools) from 0.12.1 to 0.13.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's changelog</a>.</em></p> <blockquote> <h2>0.13.0</h2> <h3>Breaking</h3> <ul> <li>Removed implementation of <code>DoubleEndedIterator</code> for <code>ConsTuples</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/853">#853</a>)</li> <li>Made <code>MultiProduct</code> fused and fixed on an empty iterator (<a href="https://redirect.github.com/rust-itertools/itertools/issues/835">#835</a>, <a href="https://redirect.github.com/rust-itertools/itertools/issues/834">#834</a>)</li> <li>Changed <code>iproduct!</code> to return tuples for maxi one iterator too (<a href="https://redirect.github.com/rust-itertools/itertools/issues/870">#870</a>)</li> <li>Changed <code>PutBack::put_back</code> to return the old value (<a href="https://redirect.github.com/rust-itertools/itertools/issues/880">#880</a>)</li> <li>Removed deprecated <code>repeat_call, Itertools::{foreach, step, map_results, fold_results}</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/878">#878</a>)</li> <li>Removed <code>TakeWhileInclusive::new</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/912">#912</a>)</li> </ul> <h3>Added</h3> <ul> <li>Added <code>Itertools::{smallest_by, smallest_by_key, largest, largest_by, largest_by_key}</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/654">#654</a>, <a href="https://redirect.github.com/rust-itertools/itertools/issues/885">#885</a>)</li> <li>Added <code>Itertools::tail</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/899">#899</a>)</li> <li>Implemented <code>DoubleEndedIterator</code> for <code>ProcessResults</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/910">#910</a>)</li> <li>Implemented <code>Debug</code> for <code>FormatWith</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/931">#931</a>)</li> <li>Added <code>Itertools::get</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/891">#891</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Deprecated <code>Itertools::group_by</code> (renamed <code>chunk_by</code>) (<a href="https://redirect.github.com/rust-itertools/itertools/issues/866">#866</a>, <a href="https://redirect.github.com/rust-itertools/itertools/issues/879">#879</a>)</li> <li>Deprecated <code>unfold</code> (use <code>std::iter::from_fn</code> instead) (<a href="https://redirect.github.com/rust-itertools/itertools/issues/871">#871</a>)</li> <li>Optimized <code>GroupingMapBy</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/873">#873</a>, <a href="https://redirect.github.com/rust-itertools/itertools/issues/876">#876</a>)</li> <li>Relaxed <code>Fn</code> bounds to <code>FnMut</code> in <code>diff_with, Itertools::into_group_map_by</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/886">#886</a>)</li> <li>Relaxed <code>Debug/Clone</code> bounds for <code>MapInto</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/889">#889</a>)</li> <li>Documented the <code>use_alloc</code> feature (<a href="https://redirect.github.com/rust-itertools/itertools/issues/887">#887</a>)</li> <li>Optimized <code>Itertools::set_from</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/888">#888</a>)</li> <li>Removed badges in <code>README.md</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/890">#890</a>)</li> <li>Added "no-std" categories in <code>Cargo.toml</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/894">#894</a>)</li> <li>Fixed <code>Itertools::k_smallest</code> on short unfused iterators (<a href="https://redirect.github.com/rust-itertools/itertools/issues/900">#900</a>)</li> <li>Deprecated <code>Itertools::tree_fold1</code> (renamed <code>tree_reduce</code>) (<a href="https://redirect.github.com/rust-itertools/itertools/issues/895">#895</a>)</li> <li>Deprecated <code>GroupingMap::fold_first</code> (renamed <code>reduce</code>) (<a href="https://redirect.github.com/rust-itertools/itertools/issues/902">#902</a>)</li> <li>Fixed <code>Itertools::k_smallest(0)</code> to consume the iterator, optimized <code>Itertools::k_smallest(1)</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/909">#909</a>)</li> <li>Specialized <code>Combinations::nth</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/914">#914</a>)</li> <li>Specialized <code>MergeBy::fold</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/920">#920</a>)</li> <li>Specialized <code>CombinationsWithReplacement::nth</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/923">#923</a>)</li> <li>Specialized <code>FlattenOk::{fold, rfold}</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/927">#927</a>)</li> <li>Specialized <code>Powerset::nth</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/924">#924</a>)</li> <li>Documentation fixes (<a href="https://redirect.github.com/rust-itertools/itertools/issues/882">#882</a>, <a href="https://redirect.github.com/rust-itertools/itertools/issues/936">#936</a>)</li> <li>Fixed <code>assert_equal</code> for iterators longer than <code>i32::MAX</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/932">#932</a>)</li> <li>Updated the <code>must_use</code> message of non-lazy <code>KMergeBy</code> and <code>TupleCombinations</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/939">#939</a>)</li> </ul> <h3>Notable Internal Changes</h3> <ul> <li>Tested iterator laziness (<a href="https://redirect.github.com/rust-itertools/itertools/issues/792">#792</a>)</li> <li>Created <code>CONTRIBUTING.md</code> (<a href="https://redirect.github.com/rust-itertools/itertools/issues/767">#767</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
348c59b740
|
Bump indexmap from 2.4.0 to 2.5.0 (#13772)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.4.0 to 2.5.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md">indexmap's changelog</a>.</em></p> <blockquote> <h2>2.5.0</h2> <ul> <li>Added an <code>insert_before</code> method to <code>IndexMap</code> and <code>IndexSet</code>, as an alternative to <code>shift_insert</code> with different behavior on existing entries.</li> <li>Added <code>first_entry</code> and <code>last_entry</code> methods to <code>IndexMap</code>.</li> <li>Added <code>From</code> implementations between <code>IndexedEntry</code> and <code>OccupiedEntry</code>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Stefan Holderbach
|
84e1ac27e5
|
Setup global cargo lint configuration (#13691)
# Description `cargo` somewhat recently gained the capability to store `lints` settings for the crate and workspace, that can override the defaults from `rustc` and `clippy` lints. This means we can enforce some lints without having to actively pass them to clippy via `cargo clippy -- -W ...`. So users just forking the repo have an easier time to follow similar requirements like our CI. ## Limitation An exception that remains is that those lints apply to both the primary code base and the tests. Thus we can't include e.g. `unwrap_used` without generating noise in the tests. Here the setup in the CI remains the most helpful. ## Included lints - Add `clippy::unchecked_duration_subtraction` (added by #12549) # User-Facing Changes Running `cargo clippy --workspace` should be closer to the CI. This has benefits for editor configured runs of clippy and saves you from having to use `toolkit` to be close to CI in more cases. |
||
Stefan Holderbach
|
2c379cba71
|
Remove system-clipboard from the default build (#13694)
# Description This feature tried to connect reedline with the system clipboard for three special bindings. To do so it uses the `arboard` crate with heavy dependencies for the system X or Wayland server or the Windows APIs. We had issues in the headless CI with it and builds with musl seem to stall. Removing it from the default build should negatively impact only a small subset of users aware of the extra bindings. You can still use the internal clipboard for binding based selection and the terminals extra bindings to copy arbitrary content into the system clipboard. For all other users it removes potential sources of failure and a whole 1 MB of release mode binary size (> 2% reduction). Furthermore a potentially substantial attack surface for Nushell is gone for default builds. - Should resolve #13019 - Work in the spirit of #13603 # User-Facing Changes The `edit` entries `copyselectionsystem`/`copyselectionsystem`/`pastesystem` for keybindings are gone in the default build If you strictly depend on this behavior, you can still build with the addition of `--features system-clipboard` |
||
Piepmatz
|
055d7e27e9
|
Use heck instead of convert_case for nu-derive-value (#13708)
<!-- if this PR closes one or more issues, you can automatically link the PR with them by using one of the [*linking keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword), e.g. - this PR should close #xxxx - fixes #xxxx you can also mention related issues, PRs or discussions! --> # Description <!-- Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes. Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience. --> @sholderbach mentioned that I introduced `convert_case` as a dependency while we already had `heck` for case conversion. So in this PR replaced the use `convert_case` with `heck`. Mostly I rebuilt the `convert_case` API with `heck` to work with it as I like the API of `convert_case` more than `heck`. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> Nothing changed, the use of `convert_case` wasn't exposed anywhere and all case conversions are still available. # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> No new tests required but my tests in `test_derive` captured some errors I made while developing this change, (hurray, tests work 🎉) - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
Stefan Holderbach
|
af76e11dd6
|
Remove str deunicode (#13693)
# Description Closes #13677 Remove the command `str deunicode`, as it has a narrow application, is loosely defined by the data provided by the `deunicode` crate and thus a stabilization liability post-1.0. Furthermore the data to perform the look-up is quite substantial. Removing the command and the `deunicode` dependency saves 0.9 MB of binary data in release mode (~ 2% of total) (checked via `cargo bloat --release` for a linux x86 build) # User-Facing Changes The `str deunicode` command recently added in #13270 is gone |
||
Maxim Zhiburt
|
525eac1afd
|
[DRAFT] Check fix for emojie, wrap issues (#13430)
Hi there Here I am using latest tabled. My tests shows it does fixes panics, but I am wanna be sure. @fdncred could you verify that it does fixes those panics/errors? Closes #13405 Closes #12786 |
||
Andrej Kolčin
|
822007dbbb
|
Remove unused same-file workspace dependency (#13678)
A small no-op change. It was used in a two years old `mv` fix
(
|
||
Andrej Kolčin
|
0560826414
|
encode /decode for multiple alphabets (#13428)
Based on the discussion in #13419. ## Description Reworks the `decode`/`encode` commands by adding/changing the following bases: - `base32` - `base32hex` - `hex` - `new-base64` The `hex` base is compatible with the previous version of `hex` out of the box (it only adds more flags). `base64` isn't, so the PR adds a new version and deprecates the old one. All commands have `string -> binary` signature for decoding and `string | binary -> string` signature for encoding. A few `base64` encodings, which are not a part of the [RFC4648](https://datatracker.ietf.org/doc/html/rfc4648#section-6), have been dropped. ## Example usage ```Nushell ~/fork/nushell> "string" | encode base32 | decode base32 | decode string ``` ```Nushell ~/fork/nushell> "ORSXG5A=" | decode base32 # `decode` always returns a binary value Length: 4 (0x4) bytes | printable whitespace ascii_other non_ascii 00000000: 74 65 73 74 test ``` ## User-Facing Changes - New commands: `encode/decode base32/base32hex`. - `encode hex` gets a `--lower` flag. - `encode/decode base64` deprecated in favor of `encode/decode new-base64`. |
||
Piepmatz
|
712fec166d
|
Improve working with IntoValue and FromValue for byte collections (#13641)
<!-- if this PR closes one or more issues, you can automatically link the PR with them by using one of the [*linking keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword), e.g. - this PR should close #xxxx - fixes #xxxx you can also mention related issues, PRs or discussions! --> # Description <!-- Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes. Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience. --> I was working with byte collections like `Vec<u8>` and [`bytes::Bytes`](https://docs.rs/bytes/1.7.1/bytes/struct.Bytes.html), both are currently not possible to be used directly in a struct that derives `IntoValue` and `FromValue` at the same time. The `Vec<u8>` will convert itself into a `Value::List` but expects a `Value::String` or `Value::Binary` to load from. I now also implemented that it can load from `Value::List` just like the other `Vec<uX>` versions. For further working with byte collections the type `bytes::Bytes` is wildly used, therefore I added a implementation for it. `bytes` is already part of the dependency graph as many crates (more than 5000 to crates.io) use it. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> User of `nu-protocol` as library, e.g. plugin developers, can now use byte collections more easily in their data structures and derive `IntoValue` and `FromValue` for it. # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> I added a few tests that check that these byte collections are correctly translated in and from `Value`. They live in `test_derive.rs` as part of the `ByteContainer` and I also explicitely tested that `FromValue` for `Vec<u8>` works as expected. - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> Maybe it should be explored if `Value::Binary` should use `bytes::Bytes` instead of `Vec<u8>`. |
||
Stefan Holderbach
|
e211b7ba53
|
Bump version to 0.97.2 (#13666) | ||
Devyn Cairns
|
60769ac1ba
|
Bump version to 0.97.1 (#13659)
# Description Bump version to `0.97.1`, which will be the actual next major release. (`0.97.0` had a bug.) |
||
Jack Wright
|
d667b3c0bc
|
bumped version number to 0.97 (#13655) | ||
Bruce Weirdan
|
a80273bd7b
|
Drop unused fs_extra and hamcrest2 dependencies (#13628)
Fixes nushell/nushell#7995 # Description This dependency is no longer used by nushell itself. # User-Facing Changes None. # Tests + Formatting Pased. # After Submitting None. |
||
dependabot[bot]
|
e841fce0f9
|
Bump indexmap from 2.3.0 to 2.4.0 (#13617)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.3.0 to 2.4.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md">indexmap's changelog</a>.</em></p> <blockquote> <h2>2.4.0</h2> <ul> <li>Added methods <code>IndexMap::append</code> and <code>IndexSet::append</code>, moving all items from one map or set into another, and leaving the original capacity for reuse.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Darren Schroeder
|
5f45f6c223
|
add more helpful error with text/xml (#13609)
# Description This PR is meant to provide a more helpful error message when using http get and the content type can't be parsed. ### Before ![image](https://github.com/user-attachments/assets/4e6176e2-ec35-48d8-acb3-af5d1cda4327) ### After ![image](https://github.com/user-attachments/assets/aa498ef7-f1ca-495b-8790-484593f02e35) The span isn't perfect but there's no way to get the span of the content type that I can see. In the middle of fixing this error, I also discovered how to fix the problem in general. Since you can now see the error message complaining about double quotes (char 22 at position 0. 22 hex is `"`). The fix is just to remove all the double quotes from the content_type and then you get this. ### After After ![image](https://github.com/user-attachments/assets/2223d34f-4563-4dea-90eb-83326e808af1) The discussion on Discord about this is that `--raw` or `--ignore-errors` should eat this error and it "just work" as well as default to text or binary when the mime parsing fails. I agree but this PR does not implement that. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
dependabot[bot]
|
ce13ecfd10
|
Bump mockito from 1.4.0 to 1.5.0 (#13558)
Bumps [mockito](https://github.com/lipanski/mockito) from 1.4.0 to 1.5.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lipanski/mockito/releases">mockito's releases</a>.</em></p> <blockquote> <h2>1.5.0</h2> <ul> <li><strong>[Breaking]</strong> <a href="https://redirect.github.com/lipanski/mockito/pull/198">Upgrade</a> to hyper v1</li> </ul> <p>Thanks to <a href="https://github.com/tottoto"><code>@tottoto</code></a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
bc6947cd09
|
Bump quick-xml from 0.31.0 to 0.32.0 (#13560)
Bumps [quick-xml](https://github.com/tafia/quick-xml) from 0.31.0 to 0.32.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tafia/quick-xml/releases">quick-xml's releases</a>.</em></p> <blockquote> <h2>v0.32.0</h2> <h2>Significant Changes</h2> <p>The method of reporting positions of errors has changed - use <code>error_position()</code> to get an offset of the error position. For <code>SyntaxError</code>s the range <code>error_position()..buffer_position()</code> also will represent a span of error.</p> <h3>⚠️ Breaking Changes</h3> <p>The way to configure parser has changed. Now all configuration is contained in the <code>Config</code> struct and can be applied at once. When <code>serde-types</code> feature is enabled, configuration is serializable.</p> <p>The way of resolve entities with <code>unescape_with</code> has changed. Those methods no longer resolve predefined entities (<code>lt</code>, <code>gt</code>, <code>apos</code>, <code>quot</code>, <code>amp</code>). <code>NoEntityResolver</code> renamed to <code>PredefinedEntityResolver</code>.</p> <p><code>Writer::create_element</code> now accepts <code>impl Into<Cow<str>></code> instead of <code>&impl AsRef<str></code>.</p> <p>Minimum supported version of serde raised to 1.0.139</p> <p>The full changelog is below.</p> <h2>What's Changed</h2> <h3>New Features</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/513">#513</a>: Allow to continue parsing after getting new <code>Error::IllFormed</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/677">#677</a>: Added methods <code>config()</code> and <code>config_mut()</code> to inspect and change the parser configuration. Previous builder methods on <code>Reader</code> / <code>NsReader</code> was replaced by direct access to fields of config using <code>reader.config_mut().<...></code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Added a method <code>Config::enable_all_checks</code> to turn on or off all well-formedness checks.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>escape::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>BytesCData::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>Serializer::set_quote_level()</code> which allow to set desired level of escaping.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/705">#705</a>: Added <code>NsReader::prefixes()</code> to list all the prefixes currently declared.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/629">#629</a>: Added a default case to <code>impl_deserialize_for_internally_tagged_enum</code> macro so that it can handle every attribute that does not match existing cases within an enum variant.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/722">#722</a>: Allow to pass owned strings to <code>Writer::create_element</code>. This is breaking change!</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/275">#275</a>: Added <code>ElementWriter::new_line()</code> which enables pretty printing elements with multiple attributes.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/743">#743</a>: Added <code>Deserializer::get_ref()</code> to get XML Reader from serde Deserializer</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/734">#734</a>: Added helper functions to resolve predefined XML and HTML5 entities: <ul> <li><code>quick_xml::escape::resolve_predefined_entity</code></li> <li><code>quick_xml::escape::resolve_xml_entity</code></li> <li><code>quick_xml::escape::resolve_html5_entity</code></li> </ul> </li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Added parser for processing instructions: <code>quick_xml::reader::PiParser</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/754">#754</a>: Added parser for elements: <code>quick_xml::reader::ElementParser</code>.</li> </ul> <h3>Bug Fixes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/622">#622</a>: Fix wrong disregarding of not closed markup, such as lone <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(DoubleHyphenInComment)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(MissingDoctypeName)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/704">#704</a>: Fix empty tags with attributes not being expanded when <code>expand_empty_elements</code> is set to true.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/683">#683</a>: Use local tag name when check tag name against possible names for field.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Correctly determine end of processing instructions and XML declaration.</li> </ul> <h3>Misc Changes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Minimum supported version of serde raised to 1.0.139</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Rework the <code>quick_xml::Error</code> type to provide more accurate information:</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tafia/quick-xml/blob/master/Changelog.md">quick-xml's changelog</a>.</em></p> <blockquote> <h2>0.32.0 -- 2024-06-10</h2> <p>The way to configure parser is changed. Now all configuration is contained in the <code>Config</code> struct and can be applied at once. When <code>serde-types</code> feature is enabled, configuration is serializable.</p> <p>The method of reporting positions of errors has changed - use <code>error_position()</code> to get an offset of the error position. For <code>SyntaxError</code>s the range <code>error_position()..buffer_position()</code> also will represent a span of error.</p> <p>The way of resolve entities with <code>unescape_with</code> are changed. Those methods no longer resolve predefined entities.</p> <h3>New Features</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/513">#513</a>: Allow to continue parsing after getting new <code>Error::IllFormed</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/677">#677</a>: Added methods <code>config()</code> and <code>config_mut()</code> to inspect and change the parser configuration. Previous builder methods on <code>Reader</code> / <code>NsReader</code> was replaced by direct access to fields of config using <code>reader.config_mut().<...></code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Added a method <code>Config::enable_all_checks</code> to turn on or off all well-formedness checks.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>escape::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>BytesCData::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>Serializer::set_quote_level()</code> which allow to set desired level of escaping.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/705">#705</a>: Added <code>NsReader::prefixes()</code> to list all the prefixes currently declared.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/629">#629</a>: Added a default case to <code>impl_deserialize_for_internally_tagged_enum</code> macro so that it can handle every attribute that does not match existing cases within an enum variant.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/722">#722</a>: Allow to pass owned strings to <code>Writer::create_element</code>. This is breaking change!</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/275">#275</a>: Added <code>ElementWriter::new_line()</code> which enables pretty printing elements with multiple attributes.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/743">#743</a>: Added <code>Deserializer::get_ref()</code> to get XML Reader from serde Deserializer</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/734">#734</a>: Added helper functions to resolve predefined XML and HTML5 entities: <ul> <li><code>quick_xml::escape::resolve_predefined_entity</code></li> <li><code>quick_xml::escape::resolve_xml_entity</code></li> <li><code>quick_xml::escape::resolve_html5_entity</code></li> </ul> </li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Added parser for processing instructions: <code>quick_xml::reader::PiParser</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/754">#754</a>: Added parser for elements: <code>quick_xml::reader::ElementParser</code>.</li> </ul> <h3>Bug Fixes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/622">#622</a>: Fix wrong disregarding of not closed markup, such as lone <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(DoubleHyphenInComment)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(MissingDoctypeName)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/704">#704</a>: Fix empty tags with attributes not being expanded when <code>expand_empty_elements</code> is set to true.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/683">#683</a>: Use local tag name when check tag name against possible names for field.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Correctly determine end of processing instructions and XML declaration.</li> </ul> <h3>Misc Changes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Minimum supported version of serde raised to 1.0.139</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Rework the <code>quick_xml::Error</code> type to provide more accurate information:</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
edee2a3c15
|
Bump indexmap from 2.2.6 to 2.3.0 (#13557)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.2.6 to 2.3.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md">indexmap's changelog</a>.</em></p> <blockquote> <h2>2.3.0</h2> <ul> <li>Added trait <code>MutableEntryKey</code> for opt-in mutable access to map entry keys.</li> <li>Added method <code>MutableKeys::iter_mut2</code> for opt-in mutable iteration of map keys and values.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Bruce Weirdan
|
2ced9e4d19
|
Add multipart/form-data uploads (#13532)
Fixes nushell/nushell#11046 # Description This adds support for `multipart/form-data` (RFC 7578) uploads to nushell. Binary data is uploaded as files (`application/octet-stream`), everything else is uploaded as plain text. ```console $ http post https://echo.free.beeceptor.com --content-type multipart/form-data {cargo: (open -r Cargo.toml | into binary ), description: "It's some TOML"} | upsert ip "<redacted>" ╭───────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ method │ POST │ │ protocol │ https │ │ host │ echo.free.beeceptor.com │ │ path │ / │ │ ip │ <redacted> │ │ │ ╭─────────────────┬────────────────────────────────────────────────────────────────────╮ │ │ headers │ │ Host │ echo.free.beeceptor.com │ │ │ │ │ User-Agent │ nushell │ │ │ │ │ Content-Length │ 9453 │ │ │ │ │ Accept │ */* │ │ │ │ │ Accept-Encoding │ gzip │ │ │ │ │ Content-Type │ multipart/form-data; boundary=a15f6a14-5768-4a6a-b3a4-686a112d9e27 │ │ │ │ ╰─────────────────┴────────────────────────────────────────────────────────────────────╯ │ │ parsedQueryParams │ {record 0 fields} │ │ │ ╭─────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ │ parsedBody │ │ │ ╭─────────────┬────────────────╮ │ │ │ │ │ textFields │ │ description │ It's some TOML │ │ │ │ │ │ │ ╰─────────────┴────────────────╯ │ │ │ │ │ │ ╭───┬───────┬──────────┬──────────────────────────┬───────────────────────────┬───────────────────────────────────────────┬────────────────╮ │ │ │ │ │ files │ │ # │ name │ fileName │ Content-Type │ Content-Transfer-Encoding │ Content-Disposition │ Content-Length │ │ │ │ │ │ │ ├───┼───────┼──────────┼──────────────────────────┼───────────────────────────┼───────────────────────────────────────────┼────────────────┤ │ │ │ │ │ │ │ 0 │ cargo │ cargo │ application/octet-stream │ binary │ form-data; name="cargo"; filename="cargo" │ 9101 │ │ │ │ │ │ │ ╰───┴───────┴──────────┴──────────────────────────┴───────────────────────────┴───────────────────────────────────────────┴────────────────╯ │ │ │ │ ╰─────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰───────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ``` # User-Facing Changes `http post --content-type multipart/form-data` now accepts a record which is uploaded as `multipart/form-data`. Binary data is uploaded as files (`application/octet-stream`), everything else is uploaded as plain text. Previously `http post --content-type multipart/form-data` rejected records, so there's no BC break. # Tests + Formatting Added. # After Submitting - [ ] update docs to showcase new functionality |
||
Darren Schroeder
|
56ed532038
|
update to latest reedline commit 919292e (#13540)
# Description This PR updates nushell to the latest reedline commit which has some vi keyboard mode changes. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
Stefan Holderbach
|
d880241102
|
Bump rust toolchain (#13499)
Following the Rust 1.80 release update our supported Rust version to 1.78.0 Necessary clippy fixes in #13497 |
||
Devyn Cairns
|
c31291753c
|
Bump version to 0.96.2 (#13485)
This should be the new development version. We most likely don't need a 0.96.2 patch release. Should be free to merge PRs after this. |
||
Devyn Cairns
|
9f90d611e1
|
Bump version to 0.96.1 (#13439)
(Post-release bump.) |
||
Devyn Cairns
|
a80dfe8e80
|
Bump version to 0.96.0 (#13433)
|
||
Jack Wright
|
6a62ced645
|
Updating version for nu-ansi-term and reedline (#13432)
Updating nu-answer-term to 0.50.1 and reedline to 0.33 |
||
Jan Christian Grünhage
|
4665323bb4
|
Use directories for autoloading (#13382)
fixes https://github.com/nushell/nushell/issues/13378 # Description This PR tries to improve usage of system APIs to determine the location of vendored autoload files. # User-Facing Changes The paths listed in #13180 and #13217 are changing. This has not been part of a release yet, so arguably the user facing changes are only to unreleased features anyway. # Tests + Formatting Haven't done, but if someone wants to help me here, I'm open to doing it. I just don't know how to properly test this. # After Submitting |
||
dependabot[bot]
|
f976c31887
|
Bump open from 5.2.0 to 5.3.0 (#13391)
Bumps [open](https://github.com/Byron/open-rs) from 5.2.0 to 5.3.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Byron/open-rs/releases">open's releases</a>.</em></p> <blockquote> <h2>v5.3.0</h2> <h3>New Features</h3> <ul> <li>add GNU/Hurd support Handle it like most of the other Unix platforms (e.g. Linux, BSDs, etc).</li> </ul> <h3>Commit Statistics</h3> <ul> <li>2 commits contributed to the release.</li> <li>7 days passed between releases.</li> <li>1 commit was understood as <a href="https://www.conventionalcommits.org">conventional</a>.</li> <li>0 issues like '(#ID)' were seen in commit messages</li> </ul> <h3>Commit Details</h3> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <ul> <li><strong>Uncategorized</strong> <ul> <li>Merge pull request <a href="https://redirect.github.com/Byron/open-rs/issues/101">#101</a> from pinotree/hurd (a060608)</li> <li>Add GNU/Hurd support (58142a6)</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Byron/open-rs/blob/main/changelog.md">open's changelog</a>.</em></p> <blockquote> <h2>5.3.0 (2024-07-10)</h2> <h3>New Features</h3> <ul> <li><!-- raw HTML omitted --> add GNU/Hurd support Handle it like most of the other Unix platforms (e.g. Linux, BSDs, etc).</li> </ul> <h3>Commit Statistics</h3> <!-- raw HTML omitted --> <ul> <li>2 commits contributed to the release.</li> <li>7 days passed between releases.</li> <li>1 commit was understood as <a href="https://www.conventionalcommits.org">conventional</a>.</li> <li>0 issues like '(#ID)' were seen in commit messages</li> </ul> <h3>Commit Details</h3> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <ul> <li><strong>Uncategorized</strong> <ul> <li>Merge pull request <a href="https://redirect.github.com/Byron/open-rs/issues/101">#101</a> from pinotree/hurd (<a href=" |
||
dependabot[bot]
|
ac18e43603
|
Bump rust-embed from 8.4.0 to 8.5.0 (#13392)
Bumps [rust-embed](https://github.com/pyros2097/rust-embed) from 8.4.0 to 8.5.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pyrossh/rust-embed/blob/master/changelog.md">rust-embed's changelog</a>.</em></p> <blockquote> <h2>[8.5.0] - 2024-07-09</h2> <ul> <li>Re-export RustEmbed as Embed <a href="https://redirect.github.com/pyrossh/rust-embed/pull/246">#246</a>. Thanks to <a href="https://github.com/krant">krant</a></li> <li>Allow users to specify a custom path to the rust_embed crate in generated code<a href="https://redirect.github.com/pyrossh/rust-embed/pull/232">#232</a>. Thanks to <a href="https://github.com/Wulf">Wulf</a></li> <li>Increase minimum rust-version to v1.7.0.0</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/pyros2097/rust-embed/commits">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rust-embed&package-manager=cargo&previous-version=8.4.0&new-version=8.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
dependabot[bot]
|
63cea44130
|
Bump uuid from 1.9.1 to 1.10.0 (#13390)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.9.1 to 1.10.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/uuid-rs/uuid/releases">uuid's releases</a>.</em></p> <blockquote> <h2>1.10.0</h2> <h2>Deprecations</h2> <p>This release deprecates and renames the following functions:</p> <ul> <li><code>Builder::from_rfc4122_timestamp</code> -> <code>Builder::from_gregorian_timestamp</code></li> <li><code>Builder::from_sorted_rfc4122_timestamp</code> -> <code>Builder::from_sorted_gregorian_timestamp</code></li> <li><code>Timestamp::from_rfc4122</code> -> <code>Timestamp::from_gregorian</code></li> <li><code>Timestamp::to_rfc4122</code> -> <code>Timestamp::to_gregorian</code></li> </ul> <h2>What's Changed</h2> <ul> <li>Use const identifier in uuid macro by <a href="https://github.com/Vrajs16"><code>@Vrajs16</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/764">uuid-rs/uuid#764</a></li> <li>Rename most methods referring to RFC4122 by <a href="https://github.com/Mikopet"><code>@Mikopet</code></a> / <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/765">uuid-rs/uuid#765</a></li> <li>prepare for 1.10.0 release by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/766">uuid-rs/uuid#766</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Vrajs16"><code>@Vrajs16</code></a> made their first contribution in <a href="https://redirect.github.com/uuid-rs/uuid/pull/764">uuid-rs/uuid#764</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/uuid-rs/uuid/compare/1.9.1...1.10.0">https://github.com/uuid-rs/uuid/compare/1.9.1...1.10.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Jan Christian Grünhage
|
b66671d339
|
Switch from dirs_next 2.0 to dirs 5.0 (#13384)
<!-- if this PR closes one or more issues, you can automatically link the PR with them by using one of the [*linking keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword), e.g. - this PR should close #xxxx - fixes #xxxx you can also mention related issues, PRs or discussions! --> # Description <!-- Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes. Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience. --> Replaces the `dirs_next` family of crates with `dirs`. `dirs_next` was born when the `dirs` crates were abandoned three years ago, but they're being maintained again and most projects depend on `dirs` nowadays. `dirs_next` has been abandoned since. This came up while working on https://github.com/nushell/nushell/pull/13382. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> None. # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> Tests and formatter have been run. # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
dependabot[bot]
|
acd4cb83e8
|
Bump ureq from 2.9.7 to 2.10.0 (#13348) | ||
Devyn Cairns
|
d7392f1f3b
|
Internal representation (IR) compiler and evaluator (#13330)
# Description This PR adds an internal representation language to Nushell, offering an alternative evaluator based on simple instructions, stream-containing registers, and indexed control flow. The number of registers required is determined statically at compile-time, and the fixed size required is allocated upon entering the block. Each instruction is associated with a span, which makes going backwards from IR instructions to source code very easy. Motivations for IR: 1. **Performance.** By simplifying the evaluation path and making it more cache-friendly and branch predictor-friendly, code that does a lot of computation in Nushell itself can be sped up a decent bit. Because the IR is fairly easy to reason about, we can also implement optimization passes in the future to eliminate and simplify code. 2. **Correctness.** The instructions mostly have very simple and easily-specified behavior, so hopefully engine changes are a little bit easier to reason about, and they can be specified in a more formal way at some point. I have made an effort to document each of the instructions in the docs for the enum itself in a reasonably specific way. Some of the errors that would have happened during evaluation before are now moved to the compilation step instead, because they don't make sense to check during evaluation. 3. **As an intermediate target.** This is a good step for us to bring the [`new-nu-parser`](https://github.com/nushell/new-nu-parser) in at some point, as code generated from new AST can be directly compared to code generated from old AST. If the IR code is functionally equivalent, it will behave the exact same way. 4. **Debugging.** With a little bit more work, we can probably give control over advancing the virtual machine that `IrBlock`s run on to some sort of external driver, making things like breakpoints and single stepping possible. Tools like `view ir` and [`explore ir`](https://github.com/devyn/nu_plugin_explore_ir) make it easier than before to see what exactly is going on with your Nushell code. The goal is to eventually replace the AST evaluator entirely, once we're sure it's working just as well. You can help dogfood this by running Nushell with `$env.NU_USE_IR` set to some value. The environment variable is checked when Nushell starts, so config runs with IR, or it can also be set on a line at the REPL to change it dynamically. It is also checked when running `do` in case within a script you want to just run a specific piece of code with or without IR. # Example ```nushell view ir { |data| mut sum = 0 for n in $data { $sum += $n } $sum } ``` ```gas # 3 registers, 19 instructions, 0 bytes of data 0: load-literal %0, int(0) 1: store-variable var 904, %0 # let 2: drain %0 3: drop %0 4: load-variable %1, var 903 5: iterate %0, %1, end 15 # for, label(1), from(14:) 6: store-variable var 905, %0 7: load-variable %0, var 904 8: load-variable %2, var 905 9: binary-op %0, Math(Plus), %2 10: span %0 11: store-variable var 904, %0 12: load-literal %0, nothing 13: drain %0 14: jump 5 15: drop %0 # label(0), from(5:) 16: drain %0 17: load-variable %0, var 904 18: return %0 ``` # Benchmarks All benchmarks run on a base model Mac Mini M1. ## Iterative Fibonacci sequence This is about as best case as possible, making use of the much faster control flow. Most code will not experience a speed improvement nearly this large. ```nushell def fib [n: int] { mut a = 0 mut b = 1 for _ in 2..=$n { let c = $a + $b $a = $b $b = $c } $b } use std bench bench { 0..50 | each { |n| fib $n } } ``` IR disabled: ``` ╭───────┬─────────────────╮ │ mean │ 1ms 924µs 665ns │ │ min │ 1ms 700µs 83ns │ │ max │ 3ms 450µs 125ns │ │ std │ 395µs 759ns │ │ times │ [list 50 items] │ ╰───────┴─────────────────╯ ``` IR enabled: ``` ╭───────┬─────────────────╮ │ mean │ 452µs 820ns │ │ min │ 427µs 417ns │ │ max │ 540µs 167ns │ │ std │ 17µs 158ns │ │ times │ [list 50 items] │ ╰───────┴─────────────────╯ ``` ![explore ir view](https://github.com/nushell/nushell/assets/10729/d7bccc03-5222-461c-9200-0dce71b83b83) ## [gradient_benchmark_no_check.nu](https://github.com/nushell/nu_scripts/blob/main/benchmarks/gradient_benchmark_no_check.nu) IR disabled: ``` ╭───┬──────────────────╮ │ 0 │ 27ms 929µs 958ns │ │ 1 │ 21ms 153µs 459ns │ │ 2 │ 18ms 639µs 666ns │ │ 3 │ 19ms 554µs 583ns │ │ 4 │ 13ms 383µs 375ns │ │ 5 │ 11ms 328µs 208ns │ │ 6 │ 5ms 659µs 542ns │ ╰───┴──────────────────╯ ``` IR enabled: ``` ╭───┬──────────────────╮ │ 0 │ 22ms 662µs │ │ 1 │ 17ms 221µs 792ns │ │ 2 │ 14ms 786µs 708ns │ │ 3 │ 13ms 876µs 834ns │ │ 4 │ 13ms 52µs 875ns │ │ 5 │ 11ms 269µs 666ns │ │ 6 │ 6ms 942µs 500ns │ ╰───┴──────────────────╯ ``` ## [random-bytes.nu](https://github.com/nushell/nu_scripts/blob/main/benchmarks/random-bytes.nu) I got pretty random results out of this benchmark so I decided not to include it. Not clear why. # User-Facing Changes - IR compilation errors may appear even if the user isn't evaluating with IR. - IR evaluation can be enabled by setting the `NU_USE_IR` environment variable to any value. - New command `view ir` pretty-prints the IR for a block, and `view ir --json` can be piped into an external tool like [`explore ir`](https://github.com/devyn/nu_plugin_explore_ir). # Tests + Formatting All tests are passing with `NU_USE_IR=1`, and I've added some more eval tests to compare the results for some very core operations. I will probably want to add some more so we don't have to always check `NU_USE_IR=1 toolkit test --workspace` on a regular basis. # After Submitting - [ ] release notes - [ ] further documentation of instructions? - [ ] post-release: publish `nu_plugin_explore_ir` |
||
Darren Schroeder
|
d2a1f96dbd
|
update to latest reedline commit (#13313)
# Description Update to the latest reedline version. (don't ask me why libloading changed. `cargo update -p reedline` sometimes does weird things) # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> /cc @YizhePKU (this include your reedline pwd change) |
||
Darren Schroeder
|
f59dfac130
|
update uutils crate versions (#13285)
# Description This PR updates the uutils crates to version 0.0.27. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
dependabot[bot]
|
9b63e17072
|
Bump open from 5.1.2 to 5.2.0 (#13288) | ||
Darren Schroeder
|
33d0537cae
|
add str deunicode command (#13270)
# Description Sometimes it's helpful to deal with only ASCII. This command will take a unicode string as input and convert it to ASCII using the deunicode crate. ```nushell ❯ "A…B" | str deunicode A...B ``` # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
dependabot[bot]
|
38ecb6d380
|
Bump uuid from 1.8.0 to 1.9.1 (#13227) | ||
Jack Wright
|
0dd35cddcd
|
Bumping version to 0.95.1 (#13231)
Marks development for hotfix |
||
Jakub Žádník
|
f93c6680bd
|
Bump to 0.95.0 (#13221)
<!-- if this PR closes one or more issues, you can automatically link the PR with them by using one of the [*linking keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword), e.g. - this PR should close #xxxx - fixes #xxxx you can also mention related issues, PRs or discussions! --> # Description <!-- Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes. Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience. --> # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
dependabot[bot]
|
26bdba2068
|
Bump interprocess from 2.1.0 to 2.2.0 (#13178)
Bumps [interprocess](https://github.com/kotauskas/interprocess) from 2.1.0 to 2.2.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/kotauskas/interprocess/releases">interprocess's releases</a>.</em></p> <blockquote> <h2>2.2.0 – Tokio unnamed pipes</h2> <ul> <li>Tokio-based unnamed pipes, with subpar performance on Windows due to OS API limitations</li> <li>Examples for unnamed pipes, both non-async and Tokio</li> <li>Impersonation for Windows named pipes</li> <li>Improvements to the implementation of Windows pipe flushing on Tokio</li> </ul> <h2>2.1.1</h2> <ul> <li>Removed async <code>Incoming</code> and <code>futures::Stream</code> ("<code>AsyncIterator</code>") implementations on <code>local_socket::traits::Listener</code> implementors – those were actually completely broken, so this change is not breaking in practice and thus does not warrant a bump to 3.0.0</li> <li>Fixed <code>ListenerOptionsExt::mode()</code> behavior in <code>umask</code> fallback mode and improved its documentation</li> <li>Moved examples to their own dedicated files with the help of the <a href="https://crates.io/crates/doctest-file"><code>doctest-file</code></a> crate</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Piepmatz
|
b79a2255d2
|
Add derive macros for FromValue and IntoValue to ease the use of Value s in Rust code (#13031)
# Description After discussing with @sholderbach the cumbersome usage of `nu_protocol::Value` in Rust, I created a derive macro to simplify it. I’ve added a new crate called `nu-derive-value`, which includes two macros, `IntoValue` and `FromValue`. These are re-exported in `nu-protocol` and should be encouraged to be used via that re-export. The macros ensure that all types can easily convert from and into `Value`. For example, as a plugin author, you can define your plugin configuration using a Rust struct and easily convert it using `FromValue`. This makes plugin configuration less of a hassle. I introduced the `IntoValue` trait for a standardized approach to converting values into `Value` (and a fallible variant `TryIntoValue`). This trait could potentially replace existing `into_value` methods. Along with this, I've implemented `FromValue` for several standard types and refined other implementations to use blanket implementations where applicable. I made these design choices with input from @devyn. There are more improvements possible, but this is a solid start and the PR is already quite substantial. # User-Facing Changes For `nu-protocol` users, these changes simplify the handling of `Value`s. There are no changes for end-users of nushell itself. # Tests + Formatting Documenting the macros itself is not really possible, as they cannot really reference any other types since they are the root of the dependency graph. The standard library has the same problem ([std::Debug](https://doc.rust-lang.org/stable/std/fmt/derive.Debug.html)). However I documented the `FromValue` and `IntoValue` traits completely. For testing, I made of use `proc-macro2` in the derive macro code. This would allow testing the generated source code. Instead I just tested that the derived functionality is correct. This is done in `nu_protocol::value::test_derive`, as a consumer of `nu-derive-value` needs to do the testing of the macro usage. I think that these tests should provide a stable baseline so that users can be sure that the impl works. # After Submitting With these macros available, we can probably use them in some examples for plugins to showcase the use of them. |
||
Ian Manske
|
634361b2d1
|
Make which-support feature non-optional (#13125)
# Description Removes the `which-support` cargo feature and makes all of its feature-gated code enabled by default in all builds. I'm not sure why this one command is gated behind a feature. It seems to be a relic of older code where we had features for what seems like every command. |