mirror of
https://github.com/nushell/nushell.git
synced 2025-03-13 15:08:43 +01:00
23a136432a
952 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
636bae2466
|
Bump tempfile from 3.13.0 to 3.14.0 (#14326) | ||
|
739a7ea730
|
Bump mockito from 1.5.0 to 1.6.1 (#14336) | ||
|
948205c8e6
|
Bump serial_test from 3.1.1 to 3.2.0 (#14325) | ||
|
e6f55da080
|
Bump to dev version 0.100.1 (#14328) | ||
|
c9409a2edb
|
Bump version to 0.100.0 (#14312)
<!-- 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. --> Bump version to `0.100.0` # User-Facing Changes The new release `v0.100.0` is coming... |
||
|
b857064d65
|
Pin reedline to 0.37.0 release (#14317)
|
||
|
8f9b198d48
|
upgrade bracoxide to v0.1.4 (fixes #14290) (#14296)
I'm sorry I'm not following the PR template but this is a quick fix. Fixes #14290 |
||
|
4907575d3d
|
Bump chrono-tz from 0.8.6 to 0.10.0 (#14205)
Bumps [chrono-tz](https://github.com/chronotope/chrono-tz) from 0.8.6 to 0.10.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/chronotope/chrono-tz/releases">chrono-tz's releases</a>.</em></p> <blockquote> <h2>chrono-tz v0.10.0: 2024b</h2> <p><strong>TZDB</strong> version 2024b (2024-09-05).</p> <h2>Changes</h2> <ul> <li>Make <code>OffsetName::abbreviation</code> return an <code>Option</code>. This reflects that numeric values such as <code>+11</code> are no longer encoded in the upstream TZDB as abbreviations (<a href="https://redirect.github.com/chronotope/chrono-tz/issues/185">#185</a>).</li> </ul> <h2>TZDB 2024b</h2> <blockquote> <p>The 2024b release of the tz code and data is available.</p> <p>This release is prompted by the accumulated weight of many non-urgent changes to both code and data. It changes one timestamp abbreviation, for the long-obsolete System V setting TZ='MET'; see below. Otherwise, the timestamps affected by this release all predate April 2008, so you can skip this release if your application uses only tzdata and does not use older timestamps.</p> <p>This release contains the following changes:</p> <h3>Briefly:</h3> <p>Improve historical data for Mexico, Mongolia, and Portugal. System V names are now obsolescent. The main data form now uses %z. The code now conforms to RFC 8536 for early timestamps. Support POSIX.1-2024, which removes asctime_r and ctime_r. Assume POSIX.2-1992 or later for shell scripts. SUPPORT_C89 now defaults to 1.</p> <h3>Changes to past timestamps</h3> <p>Asia/Choibalsan is now an alias for Asia/Ulaanbaatar rather than being a separate Zone with differing behavior before April 2008. This seems better given our wildly conflicting information about Mongolia's time zone history. (Thanks to Heitor David Pinto.)</p> <p>Historical transitions for Mexico have been updated based on official Mexican decrees. The affected timestamps occur during the years 1921-1927, 1931, 1945, 1949-1970, and 1981-1997. The affected zones are America/Bahia_Banderas, America/Cancun, America/Chihuahua, America/Ciudad_Juarez, America/Hermosillo, America/Mazatlan, America/Merida, America/Mexico_City, America/Monterrey, America/Ojinaga, and America/Tijuana. (Thanks to Heitor David Pinto.)</p> <p>Historical transitions for Portugal, represented by Europe/Lisbon, Atlantic/Azores, and Atlantic/Madeira, have been updated based on a close reading of old Portuguese legislation, replacing previous data mainly originating from Whitman and Shanks & Pottenger. These changes affect a few transitions in 1917-1921, 1924, and 1940 throughout these regions by a few hours or days, and various timestamps between 1977 and 1993 depending on the region. In particular, the Azores and Madeira did not observe DST from 1977 to 1981. Additionally, the adoption of standard zonal time in former Portuguese colonies have been adjusted: Africa/Maputo in 1909, and Asia/Dili by 22 minutes at the start of 1912. (Thanks to Tim Parenti.)</p> <h3>Changes to past tm_isdst flags</h3> <p>The period from 1966-04-03 through 1966-10-02 in Portugal is now modeled as DST, to more closely reflect how contemporaneous changes in law entered into force.</p> <h3>Changes to data</h3> <p>Names present only for compatibility with UNIX System V (last released in the 1990s) have been moved to 'backward'. These names, which for post-1970 timestamps mostly just duplicate data of geographical names, were confusing downstream uses. Names moved to 'backward' are now links to geographical names. This affects behavior for TZ='EET' for some pre-1981 timestamps, for TZ='CET' for some pre-1947 timestamps, and for TZ='WET' for some pre-1996 timestamps. Also, TZ='MET' now behaves like TZ='CET' and so uses the abbreviation "CET" rather than "MET". Those needing the previous TZDB behavior, which does not match any real-world clocks, can find the old entries in 'backzone'. (Problem reported by Justin Grant.)</p> <p>The main source files' time zone abbreviations now use %z, supported by zic since release 2015f and used in vanguard form since release 2022b. For example, America/Sao_Paulo now contains the zone continuation line "-3:00 Brazil %z", which is less error prone than the old "-3:00 Brazil -03/-02". This does not change the represented data: the generated TZif files are unchanged. Rearguard form still avoids %z, to support obsolescent parsers.</p> <p>Asia/Almaty has been removed from zonenow.tab as it now agrees with Asia/Tashkent for future timestamps, due to Kazakhstan's 2024-02-29 time zone change. Similarly, America/Scoresbysund has been removed, as it now agrees with America/Nuuk due to its 2024-03-31 time zone change.</p> </blockquote> <h2>chrono-tz v0.9.0: 2024a</h2> <p><strong>TZDB</strong> version <a href="https://mm.icann.org/pipermail/tz-announce/2024-February/000081.html">2024a</a> (2024-02-01).</p> <h2>Changes</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
a6c2c685bc
|
Bump trash from 5.1.1 to 5.2.0 (#14206)
Bumps [trash](https://github.com/ArturKovacs/trash) from 5.1.1 to 5.2.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ArturKovacs/trash/releases">trash's releases</a>.</em></p> <blockquote> <h2>v5.2.0</h2> <h3>New Features</h3> <ul> <li> <p>Short circuiting check for empty trash <code>is_empty()</code> is a short circuiting function that checks if the trash is empty on Freedesktop compatible systems and Windows.</p> <p>The main purpose of <code>is_empty()</code> is to avoid evaluating the entire trash context when the caller is only interested in whether the trash is empty or not. This is especially useful for full trashes with many items.</p> </li> </ul> <h3>Commit Statistics</h3> <ul> <li>2 commits contributed to the release.</li> <li>56 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/ArturKovacs/trash/issues/120">#120</a> from joshuamegnauth54/feat-short-circuiting-is-empty (0120bbe)</li> <li>Short circuiting check for empty trash (6d59fa9)</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Byron/trash-rs/blob/master/CHANGELOG.md">trash's changelog</a>.</em></p> <blockquote> <h2>5.2.0 (2024-10-26)</h2> <h3>New Features</h3> <ul> <li> <p><!-- raw HTML omitted --> Short circuiting check for empty trash <code>is_empty()</code> is a short circuiting function that checks if the trash is empty on Freedesktop compatible systems and Windows.</p> <p>The main purpose of <code>is_empty()</code> is to avoid evaluating the entire trash context when the caller is only interested in whether the trash is empty or not. This is especially useful for full trashes with many items.</p> </li> </ul> <h3>Commit Statistics</h3> <!-- raw HTML omitted --> <ul> <li>2 commits contributed to the release.</li> <li>56 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/ArturKovacs/trash/issues/120">#120</a> from joshuamegnauth54/feat-short-circuiting-is-empty (<a href=" |
||
|
1e2fa68db0
|
Bump fancy-regex from 0.13.0 to 0.14.0 (#14207)
Bumps [fancy-regex](https://github.com/fancy-regex/fancy-regex) from 0.13.0 to 0.14.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fancy-regex/fancy-regex/releases">fancy-regex's releases</a>.</em></p> <blockquote> <h2>0.14.0</h2> <h3>Added</h3> <ul> <li>Add <code>split</code>, <code>splitn</code> methods to <code>Regex</code> to split a string into substrings (<a href="https://redirect.github.com/fancy-regex/fancy-regex/issues/140">#140</a>)</li> <li>Add <code>case_insensitive</code> method to <code>RegexBuilder</code> to force case-insensitive mode (<a href="https://redirect.github.com/fancy-regex/fancy-regex/issues/132">#132</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Bump bit-set dependency to 0.8 (<a href="https://redirect.github.com/fancy-regex/fancy-regex/issues/139">#139</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/fancy-regex/fancy-regex/blob/main/CHANGELOG.md">fancy-regex's changelog</a>.</em></p> <blockquote> <h2>[0.14.0] - 2024-10-24</h2> <h3>Added</h3> <ul> <li>Add <code>split</code>, <code>splitn</code> methods to <code>Regex</code> to split a string into substrings (<a href="https://redirect.github.com/fancy-regex/fancy-regex/issues/140">#140</a>)</li> <li>Add <code>case_insensitive</code> method to <code>RegexBuilder</code> to force case-insensitive mode (<a href="https://redirect.github.com/fancy-regex/fancy-regex/issues/132">#132</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Bump bit-set dependency to 0.8 (<a href="https://redirect.github.com/fancy-regex/fancy-regex/issues/139">#139</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
e104bccfb9
|
Drop once_cell dependency (#14198)
This PR drops the `once_cell` dependency from all Nu crates, replacing uses of the [`Lazy`](https://docs.rs/once_cell/latest/once_cell/sync/struct.Lazy.html) type with its `std` equivalent, [`LazyLock`](https://doc.rust-lang.org/std/sync/struct.LazyLock.html). |
||
|
6cdc9e3b77
|
Fix LSP non-ascii characters offset issues. (#14002)
<!-- 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! --> This PR is supposed to fix #13582, #11522, as well as related goto definition/reference issues (wrong position if non ascii characters ahead). # 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. --> <img width="411" alt="image" src="https://github.com/user-attachments/assets/9a81953c-81b2-490d-a842-14ccaefd6972"> Changes: 1. span/completion should use byte offset instead of character index 2. lsp Postions related ops in Ropey remain to use character index # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> Should be none, tested in neovim with config: ```lua require("lspconfig").nushell.setup({ cmd = { "nu", "-I", vim.fn.getcwd(), "--no-config-file", "--lsp", }, filetypes = { "nu" }, }) ``` # 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::complete_command_with_utf_line parameters fixed to align with true lsp requests (in character index, not byte). As for the issue_11522.nu, manually tested: <img width="520" alt="image" src="https://github.com/user-attachments/assets/45496ba8-5a2d-4998-9190-d7bde31ee72c"> # 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. --> |
||
|
88b0982dac
|
allow oem code pages to be used to decode text (#14187)
# Description This PR allows oem code pages to be used in decoding by specifying the code page number. ## Before  ## After (umlauts)  closes https://github.com/nushell/nushell/issues/14168 I abstracted the decoding a bit. Here are my function comments on how/why. ```rust // Since we have two different decoding mechanisms, we allow oem_cp to be // specified by only a number like `open file | decode 850`. If this decode // parameter parses as a usize then we assume it was intentional and use oem_cp // crate. Otherwise, if it doesn't parse as a usize, we assume it was a string // and use the encoding_rs crate to try and decode it. ``` # 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. --> |
||
|
619211c1bf
|
Bump brotli to 6.0.0 (#14161)
This deduplicates our dependency on `brotli` |
||
|
e7c4597ad0
|
Bump uuid from 1.10.0 to 1.11.0 (#14155)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.10.0 to 1.11.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.11.0</h2> <h2>What's Changed</h2> <ul> <li>Upgrade zerocopy to 0.8 by <a href="https://github.com/yotamofek"><code>@yotamofek</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/771">uuid-rs/uuid#771</a></li> <li>Prepare for 1.11.0 release by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/772">uuid-rs/uuid#772</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/yotamofek"><code>@yotamofek</code></a> made their first contribution in <a href="https://redirect.github.com/uuid-rs/uuid/pull/771">uuid-rs/uuid#771</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/uuid-rs/uuid/compare/1.10.0...1.11.0">https://github.com/uuid-rs/uuid/compare/1.10.0...1.11.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
e05f387632
|
update to reedline commit 9cb1128 (#14146)
# Description Update to the latest reedline commit. # 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. --> |
||
|
740fe942c1 |
Reduce duplicate dependencies on the windows crate (#14105)
Nushell currently depends on three different versions of the `windows` crate: `0.44.0`, `0.52.0`, and `0.54.0`. This PR bumps several dependencies so that the `nu` binary only depends on `0.56.0`. On my machine, this PR makes `cargo build` about 10% faster. The polars plugin still uses its own version of the `windows` crate though, which is not ideal. We'll need to bump the `polars` crate to fix that, but it breaks a lot of our code. (`polars 1.0` release anyone?) |
||
|
7c5dcbb3fc |
Update to rust 1.80.1 (#14106)
This can be merged on 10/17 once 1.82.0 is out. --------- Co-authored-by: Wind <WindSoilder@outlook.com> |
||
|
f061c9a30e
|
Bump to 0.99.2 (#14136) | ||
|
28b6db115a
|
Revert PRs for 0.99.1 patch (#14119)
# Description Temporarily reverts PRs merged after the 0.99.1 bump. |
||
|
5e784d38eb
|
Reduce duplicate dependencies on the windows crate (#14105)
Nushell currently depends on three different versions of the `windows` crate: `0.44.0`, `0.52.0`, and `0.54.0`. This PR bumps several dependencies so that the `nu` binary only depends on `0.56.0`. On my machine, this PR makes `cargo build` about 10% faster. The polars plugin still uses its own version of the `windows` crate though, which is not ideal. We'll need to bump the `polars` crate to fix that, but it breaks a lot of our code. (`polars 1.0` release anyone?) |
||
|
868029f655
|
Update to rust 1.80.1 (#14106)
This can be merged on 10/17 once 1.82.0 is out. --------- Co-authored-by: Wind <WindSoilder@outlook.com> |
||
|
59d6dee3b3
|
Bump to version 0.99.1 (#14100)
Post-release patch bump. |
||
|
91ff57faa7
|
Bump to version 0.99.0 (#14094)
<!-- 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. --> |
||
|
b99affba4b
|
bumping reedline to version 0.36 (#14093) | ||
|
ba4becc61c
|
Bump indexmap from 2.5.0 to 2.6.0 (#13983)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.5.0 to 2.6.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.6.0 (2024-10-01)</h2> <ul> <li>Implemented <code>Clone</code> for <code>map::IntoIter</code> and <code>set::IntoIter</code>.</li> <li>Updated the <code>hashbrown</code> dependency to version 0.15.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
573a7e2c7b
|
Bump tempfile from 3.12.0 to 3.13.0 (#13984)
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.12.0 to 3.13.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md">tempfile's changelog</a>.</em></p> <blockquote> <h2>3.13.0</h2> <ul> <li>Add <code>with_suffix</code> constructors for easily creating new temporary files with a specific suffix (e.g., a specific file extension). Thanks to <a href="https://github.com/Borgerr"><code>@Borgerr</code></a>.</li> <li>Update dependencies (fastrand & rustix).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
cebbc82322
|
Bump once_cell from 1.19.0 to 1.20.1 (#13982)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.19.0 to 1.20.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/matklad/once_cell/blob/master/CHANGELOG.md">once_cell's changelog</a>.</em></p> <blockquote> <h2>1.20.1</h2> <ul> <li>Allow using <code>race</code> module using just <code>portable_atomic</code>, without <code>critical_section</code> and provide better error messages on targets without atomic CAS instruction, <a href="https://redirect.github.com/matklad/once_cell/pull/265">#265</a>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
4bd38847c2
|
update human-date-parser crate (#13962)
# Description closes https://github.com/nushell/nushell/issues/13759 and fixes some odd behavior from the human-date-parser crate. # 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. --> |
||
|
0d30550950
|
update reedline to the latest 660a5074 (#13909)
# Description This PR updates nushell to the latest reedline commit 660a5074 # 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. --> |
||
|
18c8c16c5e
|
Bump unicode-segmentation from 1.11.0 to 1.12.0 (#13862)
Bumps [unicode-segmentation](https://github.com/unicode-rs/unicode-segmentation) from 1.11.0 to 1.12.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
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=" |
||
|
1a081c09de
|
Bump version to 0.98.1 (#13896) | ||
|
6e1e824473
|
Bump version to 0.98.0 (#13865)
|
||
|
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. --> |
||
|
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. --> |
||
|
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. |
||
|
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=" |
||
|
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=" |
||
|
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=" |
||
|
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. |
||
|
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` |
||
|
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. --> |
||
|
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 |
||
|
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 |
||
|
822007dbbb
|
Remove unused same-file workspace dependency (#13678)
A small no-op change. It was used in a two years old `mv` fix
(
|
||
|
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`. |
||
|
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>`. |
||
|
e211b7ba53
|
Bump version to 0.97.2 (#13666) | ||
|
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.) |
||
|
d667b3c0bc
|
bumped version number to 0.97 (#13655) | ||
|
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. |
||
|
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=" |
||
|
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  ### After  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  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. --> |
||
|
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=" |
||
|
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=" |
||
|
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=" |
||
|
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 |
||
|
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. --> |
||
|
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 |
||
|
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. |
||
|
9f90d611e1
|
Bump version to 0.96.1 (#13439)
(Post-release bump.) |
||
|
a80dfe8e80
|
Bump version to 0.96.0 (#13433)
|
||
|
6a62ced645
|
Updating version for nu-ansi-term and reedline (#13432)
Updating nu-answer-term to 0.50.1 and reedline to 0.33 |
||
|
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 |
||
|
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=" |
||
|
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 /> [](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> |
||
|
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=" |
||
|
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. --> |
||
|
acd4cb83e8
|
Bump ureq from 2.9.7 to 2.10.0 (#13348) | ||
|
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] │ ╰───────┴─────────────────╯ ```  ## [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` |
||
|
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) |
||
|
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. --> |
||
|
9b63e17072
|
Bump open from 5.1.2 to 5.2.0 (#13288) | ||
|
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. --> |
||
|
38ecb6d380
|
Bump uuid from 1.8.0 to 1.9.1 (#13227) | ||
|
0dd35cddcd
|
Bumping version to 0.95.1 (#13231)
Marks development for hotfix |
||
|
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. --> |
||
|
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=" |
||
|
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. |
||
|
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. |
||
|
0372e8c53c
|
add $nu.data-dir for completions and $nu.cache-dir for other uses (#13122)
# Description This PR is an attempt to add a standard location for people to put completions in. I saw this topic come up again recently and IIRC we decided to create a standard location. I used the dirs-next crate to dictate where these locations are. I know some people won't like that but at least this gets the ball rolling in a direction that has a standard directory. This is what the default NU_LIB_DIRS looks like now in the default_env.nu. It should also be like this when starting nushell with `nu -n` ```nushell $env.NU_LIB_DIRS = [ ($nu.default-config-dir | path join 'scripts') # add <nushell-config-dir>/scripts ($nu.data-dir | path join 'completions') # default home for nushell completions ] ``` I also added these default folders to the `$nu` variable so now there is `$nu.data-path` and `$nu.cache-path`. ## Data Dir Default  While I was in there, I also decided to add a cache dir ## Cache Dir Default  ### This is what the default looks like in Ubuntu.  ### This is what it looks like with XDG_CACHE_HOME and XDG_DATA_HOME overridden ```nushell XDG_DATA_HOME=/tmp/data_home XDG_CACHE_HOME=/tmp/cache_home cargo r ```  ### This is what the defaults look like in Windows (username scrubbed to protect the innocent)  How my NU_LIB_DIRS is set in the images above ```nushell $env.NU_LIB_DIRS = [ ($nu.default-config-dir | path join 'scripts') # add <nushell-config-dir>/scripts '/Users/fdncred/src/nu_scripts' ($nu.config-path | path dirname) ($nu.data-dir | path join 'completions') # default home for nushell completions ] ``` Let the debate begin. # 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. --> |
||
|
a8376fad40
|
update uutils crates (#13130)
# Description This PR updates the uutils/coreutils crates to the latest released version. # 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. --> |
||
|
e3a20e90b0
|
Bump os_pipe from 1.1.5 to 1.2.0 (#13087)
Bumps [os_pipe](https://github.com/oconnor663/os_pipe.rs) from 1.1.5 to 1.2.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
ad5a6cdc00
|
bump version to 0.94.3 (#13055) | ||
|
6635b74d9d
|
Bump version to 0.94.2 (#13014)
Version bump after 0.94.1 patch release. |
||
|
f3991f2080
|
Bump version to 0.94.1 (#12988)
Merge this PR before merging any other PRs. |
||
|
61182deb96
|
Bump version to 0.94.0 (#12987) | ||
|
4ab2c3238a
|
Disable reedline patch for 0.94.0 (#12986)
Disable crates.io git patch for reedline for 0.94.0 release. |
||
|
1cdc39bc2a
|
Update mimalloc to 0.1.42 (#12919)
# Description This update fixes mimalloc for NetBSD # Tests + Formatting Tests are passing just fine |
||
|
905e3d0715
|
Remove dataframes crate and feature (#12889)
# Description Removes the old `nu-cmd-dataframe` crate in favor of the polars plugin. As such, this PR also removes the `dataframe` feature, related CI, and full releases of nushell. |
||
|
1c00a6ca5e
|
sync up with reedline changes (#12881)
# Description sync-up nushell to reedline's latest minor changes. Not quite sure why itertools downgraded to 0.11.0 when nushell and reedline have it set to 0.12.0. |
||
|
9bf4d3ece6
|
Bump rust-embed from 8.3.0 to 8.4.0 (#12870)
Bumps [rust-embed](https://github.com/pyros2097/rust-embed) from 8.3.0 to 8.4.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.4.0] - 2024-05-11</h2> <ul> <li>Re-export RustEmbed as Embed <a href="https://redirect.github.com/pyrossh/rust-embed/pull/245/files">#245</a>. Thanks to <a href="https://github.com/pyrossh">pyrossh</a></li> <li>Do not build glob matchers repeatedly when include-exclude feature is enabled <a href="https://redirect.github.com/pyrossh/rust-embed/pull/244/files">#244</a>. Thanks to <a href="https://github.com/osiewicz">osiewicz</a></li> <li>Add <code>metadata_only</code> attribute <a href="https://redirect.github.com/pyrossh/rust-embed/pull/241/files">#241</a>. Thanks to <a href="https://github.com/ddfisher">ddfisher</a></li> <li>Replace <code>expect</code> with a safer alternative that returns <code>None</code> instead <a href="https://redirect.github.com/pyrossh/rust-embed/pull/240/files">#240</a>. Thanks to <a href="https://github.com/costinsin">costinsin</a></li> <li>Eliminate unnecessary <code>to_path</code> call <a href="https://redirect.github.com/pyrossh/rust-embed/pull/239/files">#239</a>. Thanks to <a href="https://github.com/smoelius">smoelius</a></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 /> [](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> |
||
|
cb64c78a3b
|
Bump interprocess from 2.0.1 to 2.1.0 (#12869)
Bumps [interprocess](https://github.com/kotauskas/interprocess) from 2.0.1 to 2.1.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.1.0 – listeners are now iterators</h2> <ul> <li>Fixes <a href="https://redirect.github.com/kotauskas/interprocess/issues/49">#49</a></li> <li>Adds <code>Iterator</code> impl on local socket listeners (closes <a href="https://redirect.github.com/kotauskas/interprocess/issues/64">#64</a>)</li> <li>Miscellaneous documentation fixes</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
aaf973bbba
|
Add Stack::stdout_file and Stack::stderr_file to capture stdout/-err of external commands (#12857)
# Description In this PR I added two new methods to `Stack`, `stdout_file` and `stderr_file`. These two modify the inner `StackOutDest` and set a `File` into the `stdout` and `stderr` respectively. Different to the `push_redirection` methods, these do not require to hold a guard up all the time but require ownership of the stack. This is primarly useful for applications that use `nu` as a language but not the `nushell`. This PR replaces my first attempt #12851 to add a way to capture stdout/-err of external commands. Capturing the stdout without having to write into a file is possible with crates like [`os_pipe`](https://docs.rs/os_pipe), an example for this is given in the doc comment of the `stdout_file` command and can be executed as a doctest (although it doesn't validate that you actually got any data). This implementation takes `File` as input to make it easier to implement on different operating systems without having to worry about `OwnedHandle` or `OwnedFd`. Also this doesn't expose any use `os_pipe` to not leak its types into this API, making it depend on it. As in my previous attempt, @IanManske guided me here. # User-Facing Changes This change has no effect on `nushell` and therefore no user-facing changes. # Tests + Formatting This only exposes a new way of using already existing code and has therefore no further testing. The doctest succeeds on my machine at least (x86 Windows, 64 Bit). # After Submitting All the required documentation is already part of this PR. |
||
|
3143ded374
|
Tango migration (#12469)
# Description This PR migrates the benchmark suit to Tango. Its different compared to other framework because it require 2 binaries, to run to do A/B benchmarking, this is currently limited to Linux, Max, (Windows require rustc nightly flag), by switching between two suits it can reduce noise and run the code "almost" concurrently. I have have been in contact with the maintainer, and bases this on the dev branch, as it had a newer API simular to criterion. This framework compared to Divan also have a simple file dump system if we want to generate graphs, do other analysis on later. I think overall this crate is very nice, a lot faster to compile and run then criterion, that's for sure. |
||
|
9181fca859
|
Update interprocess to 2.0.1 (#12769)
Fixes #12755 See https://github.com/kotauskas/interprocess/issues/63 and https://github.com/kotauskas/interprocess/pull/62 |
||
|
0bfbe8c372
|
Specify the required minimum chrono version (#12766)
See #12765 and h/t to @FMOtalleb in https://discord.com/channels/601130461678272522/855947301380947968/1236286905843454032 `Duration/TimeDelta::try_milliseconds` was added in `0.4.34` https://github.com/chronotope/chrono/releases/tag/v0.4.34 |
||
|
349d02ced0
|
Pin base64 to the fixed patch version (#12762)
Followup to #12757 Always ensure that the `Cargo.toml` specifies the full minimum version required to have the correct behavior or used features. Otherwise a missing semver specifier is equal to `0` and could downgrade. |
||
|
72f3942c37
|
Upgrade to interprocess 2.0.0 (#12729)
# Description This fixes #12724. NetBSD confirmed to work with this change. The update also behaves a bit better in some ways - it automatically unlinks and reclaims sockets on Unix, and doesn't try to flush/sync the socket on Windows, so I was able to remove that platform-specific logic. They also have a way to split the socket so I could just use one socket now, but I haven't tried to do that yet. That would be more of a breaking change but I think it's more straightforward. # User-Facing Changes - Hopefully more platforms work # Tests + Formatting - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` |