mirror of
https://github.com/nushell/nushell.git
synced 2024-11-07 09:04:18 +01:00
348c59b740
1521 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
dependabot[bot]
|
348c59b740
|
Bump indexmap from 2.4.0 to 2.5.0 (#13772)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.4.0 to 2.5.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md">indexmap's changelog</a>.</em></p> <blockquote> <h2>2.5.0</h2> <ul> <li>Added an <code>insert_before</code> method to <code>IndexMap</code> and <code>IndexSet</code>, as an alternative to <code>shift_insert</code> with different behavior on existing entries.</li> <li>Added <code>first_entry</code> and <code>last_entry</code> methods to <code>IndexMap</code>.</li> <li>Added <code>From</code> implementations between <code>IndexedEntry</code> and <code>OccupiedEntry</code>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Devyn Cairns
|
f4940e115f
|
Remove bincode and use MessagePack instead for plugin custom values (#13745)
# Description This changes the serialization of custom values within the plugin protocol to use MessagePack instead of bincode, removing the dependency on bincode entirely. Bincode does not seem to be very maintained anymore, and the externally tagged enum representation doesn't seem to always work now even though it should. Since we use MessagePack already anyway for the plugin protocol, this seems like an obvious choice. This uses the unnamed variant of the serialization rather than the named variant, which is what the plugin protocol in general uses. The unnamed variant does not include field names, which aren't really required here, so this should give us something that's more or less as efficient as bincode is. Should fix #13743. # User-Facing Changes - Will need to recompile plugins (but always do anyway) - Doesn't technically break the plugin protocol (custom value data is a black box / plugin implementation specific), but breaks compatibility between `nu-plugin-engine` and `nu-plugin` so they do need to both be updated to match. # Tests + Formatting All tests pass. # After Submitting - [ ] release notes |
||
dependabot[bot]
|
7171c9b84a
|
Bump shadow-rs from 0.31.1 to 0.33.0 (#13713) | ||
Piepmatz
|
055d7e27e9
|
Use heck instead of convert_case for nu-derive-value (#13708)
<!-- if this PR closes one or more issues, you can automatically link the PR with them by using one of the [*linking keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword), e.g. - this PR should close #xxxx - fixes #xxxx you can also mention related issues, PRs or discussions! --> # Description <!-- Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes. Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience. --> @sholderbach mentioned that I introduced `convert_case` as a dependency while we already had `heck` for case conversion. So in this PR replaced the use `convert_case` with `heck`. Mostly I rebuilt the `convert_case` API with `heck` to work with it as I like the API of `convert_case` more than `heck`. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> Nothing changed, the use of `convert_case` wasn't exposed anywhere and all case conversions are still available. # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> No new tests required but my tests in `test_derive` captured some errors I made while developing this change, (hurray, tests work 🎉) - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
Stefan Holderbach
|
af76e11dd6
|
Remove str deunicode (#13693)
# Description Closes #13677 Remove the command `str deunicode`, as it has a narrow application, is loosely defined by the data provided by the `deunicode` crate and thus a stabilization liability post-1.0. Furthermore the data to perform the look-up is quite substantial. Removing the command and the `deunicode` dependency saves 0.9 MB of binary data in release mode (~ 2% of total) (checked via `cargo bloat --release` for a linux x86 build) # User-Facing Changes The `str deunicode` command recently added in #13270 is gone |
||
Maxim Zhiburt
|
525eac1afd
|
[DRAFT] Check fix for emojie, wrap issues (#13430)
Hi there Here I am using latest tabled. My tests shows it does fixes panics, but I am wanna be sure. @fdncred could you verify that it does fixes those panics/errors? Closes #13405 Closes #12786 |
||
Andrej Kolčin
|
822007dbbb
|
Remove unused same-file workspace dependency (#13678)
A small no-op change. It was used in a two years old `mv` fix
(
|
||
Andrej Kolčin
|
0560826414
|
encode /decode for multiple alphabets (#13428)
Based on the discussion in #13419. ## Description Reworks the `decode`/`encode` commands by adding/changing the following bases: - `base32` - `base32hex` - `hex` - `new-base64` The `hex` base is compatible with the previous version of `hex` out of the box (it only adds more flags). `base64` isn't, so the PR adds a new version and deprecates the old one. All commands have `string -> binary` signature for decoding and `string | binary -> string` signature for encoding. A few `base64` encodings, which are not a part of the [RFC4648](https://datatracker.ietf.org/doc/html/rfc4648#section-6), have been dropped. ## Example usage ```Nushell ~/fork/nushell> "string" | encode base32 | decode base32 | decode string ``` ```Nushell ~/fork/nushell> "ORSXG5A=" | decode base32 # `decode` always returns a binary value Length: 4 (0x4) bytes | printable whitespace ascii_other non_ascii 00000000: 74 65 73 74 test ``` ## User-Facing Changes - New commands: `encode/decode base32/base32hex`. - `encode hex` gets a `--lower` flag. - `encode/decode base64` deprecated in favor of `encode/decode new-base64`. |
||
Piepmatz
|
712fec166d
|
Improve working with IntoValue and FromValue for byte collections (#13641)
<!-- if this PR closes one or more issues, you can automatically link the PR with them by using one of the [*linking keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword), e.g. - this PR should close #xxxx - fixes #xxxx you can also mention related issues, PRs or discussions! --> # Description <!-- Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes. Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience. --> I was working with byte collections like `Vec<u8>` and [`bytes::Bytes`](https://docs.rs/bytes/1.7.1/bytes/struct.Bytes.html), both are currently not possible to be used directly in a struct that derives `IntoValue` and `FromValue` at the same time. The `Vec<u8>` will convert itself into a `Value::List` but expects a `Value::String` or `Value::Binary` to load from. I now also implemented that it can load from `Value::List` just like the other `Vec<uX>` versions. For further working with byte collections the type `bytes::Bytes` is wildly used, therefore I added a implementation for it. `bytes` is already part of the dependency graph as many crates (more than 5000 to crates.io) use it. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> User of `nu-protocol` as library, e.g. plugin developers, can now use byte collections more easily in their data structures and derive `IntoValue` and `FromValue` for it. # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> I added a few tests that check that these byte collections are correctly translated in and from `Value`. They live in `test_derive.rs` as part of the `ByteContainer` and I also explicitely tested that `FromValue` for `Vec<u8>` works as expected. - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> Maybe it should be explored if `Value::Binary` should use `bytes::Bytes` instead of `Vec<u8>`. |
||
Stefan Holderbach
|
e211b7ba53
|
Bump version to 0.97.2 (#13666) | ||
Devyn Cairns
|
60769ac1ba
|
Bump version to 0.97.1 (#13659)
# Description Bump version to `0.97.1`, which will be the actual next major release. (`0.97.0` had a bug.) |
||
Jack Wright
|
d667b3c0bc
|
bumped version number to 0.97 (#13655) | ||
Darren Schroeder
|
621fb25670
|
update to latest reedline f2b4 (#13629)
# Description
Update to the latest reedline comment. BTW `f2b4` sounds like a new star
wars droid. 😆
|
||
Bruce Weirdan
|
a80273bd7b
|
Drop unused fs_extra and hamcrest2 dependencies (#13628)
Fixes nushell/nushell#7995 # Description This dependency is no longer used by nushell itself. # User-Facing Changes None. # Tests + Formatting Pased. # After Submitting None. |
||
dependabot[bot]
|
e841fce0f9
|
Bump indexmap from 2.3.0 to 2.4.0 (#13617)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.3.0 to 2.4.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md">indexmap's changelog</a>.</em></p> <blockquote> <h2>2.4.0</h2> <ul> <li>Added methods <code>IndexMap::append</code> and <code>IndexSet::append</code>, moving all items from one map or set into another, and leaving the original capacity for reuse.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
d7b0dc1275
|
Bump shadow-rs from 0.30.0 to 0.31.1 (#13616)
Bumps [shadow-rs](https://github.com/baoyachi/shadow-rs) from 0.30.0 to 0.31.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/baoyachi/shadow-rs/releases">shadow-rs's releases</a>.</em></p> <blockquote> <h2>[Improvement] Correct git command directory</h2> <p>ref: <a href="https://redirect.github.com/baoyachi/shadow-rs/issues/170">#170</a></p> <p>Thx <a href="https://github.com/MichaelScofield"><code>@MichaelScofield</code></a></p> <h2>Make build_with function public</h2> <p>ref:<a href="https://redirect.github.com/baoyachi/shadow-rs/issues/169">#169</a></p> <p>Thx <a href="https://github.com/MichaelScofield"><code>@MichaelScofield</code></a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
5627c95916
|
Bump sysinfo from 0.30.11 to 0.30.13 (#13615)
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo) from 0.30.11 to 0.30.13. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/GuillaumeGomez/sysinfo/blob/master/CHANGELOG.md">sysinfo's changelog</a>.</em></p> <blockquote> <h1>0.30.13</h1> <ul> <li>macOS: Fix segfault when calling <code>Components::refresh_list</code> multiple times.</li> <li>Windows: Fix CPU arch retrieval.</li> </ul> <h1>0.30.12</h1> <ul> <li>FreeBSD: Fix network interfaces retrieval (one was always missing).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
ce13ecfd10
|
Bump mockito from 1.4.0 to 1.5.0 (#13558)
Bumps [mockito](https://github.com/lipanski/mockito) from 1.4.0 to 1.5.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lipanski/mockito/releases">mockito's releases</a>.</em></p> <blockquote> <h2>1.5.0</h2> <ul> <li><strong>[Breaking]</strong> <a href="https://redirect.github.com/lipanski/mockito/pull/198">Upgrade</a> to hyper v1</li> </ul> <p>Thanks to <a href="https://github.com/tottoto"><code>@tottoto</code></a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
bc6947cd09
|
Bump quick-xml from 0.31.0 to 0.32.0 (#13560)
Bumps [quick-xml](https://github.com/tafia/quick-xml) from 0.31.0 to 0.32.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tafia/quick-xml/releases">quick-xml's releases</a>.</em></p> <blockquote> <h2>v0.32.0</h2> <h2>Significant Changes</h2> <p>The method of reporting positions of errors has changed - use <code>error_position()</code> to get an offset of the error position. For <code>SyntaxError</code>s the range <code>error_position()..buffer_position()</code> also will represent a span of error.</p> <h3>⚠️ Breaking Changes</h3> <p>The way to configure parser has changed. Now all configuration is contained in the <code>Config</code> struct and can be applied at once. When <code>serde-types</code> feature is enabled, configuration is serializable.</p> <p>The way of resolve entities with <code>unescape_with</code> has changed. Those methods no longer resolve predefined entities (<code>lt</code>, <code>gt</code>, <code>apos</code>, <code>quot</code>, <code>amp</code>). <code>NoEntityResolver</code> renamed to <code>PredefinedEntityResolver</code>.</p> <p><code>Writer::create_element</code> now accepts <code>impl Into<Cow<str>></code> instead of <code>&impl AsRef<str></code>.</p> <p>Minimum supported version of serde raised to 1.0.139</p> <p>The full changelog is below.</p> <h2>What's Changed</h2> <h3>New Features</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/513">#513</a>: Allow to continue parsing after getting new <code>Error::IllFormed</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/677">#677</a>: Added methods <code>config()</code> and <code>config_mut()</code> to inspect and change the parser configuration. Previous builder methods on <code>Reader</code> / <code>NsReader</code> was replaced by direct access to fields of config using <code>reader.config_mut().<...></code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Added a method <code>Config::enable_all_checks</code> to turn on or off all well-formedness checks.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>escape::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>BytesCData::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>Serializer::set_quote_level()</code> which allow to set desired level of escaping.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/705">#705</a>: Added <code>NsReader::prefixes()</code> to list all the prefixes currently declared.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/629">#629</a>: Added a default case to <code>impl_deserialize_for_internally_tagged_enum</code> macro so that it can handle every attribute that does not match existing cases within an enum variant.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/722">#722</a>: Allow to pass owned strings to <code>Writer::create_element</code>. This is breaking change!</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/275">#275</a>: Added <code>ElementWriter::new_line()</code> which enables pretty printing elements with multiple attributes.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/743">#743</a>: Added <code>Deserializer::get_ref()</code> to get XML Reader from serde Deserializer</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/734">#734</a>: Added helper functions to resolve predefined XML and HTML5 entities: <ul> <li><code>quick_xml::escape::resolve_predefined_entity</code></li> <li><code>quick_xml::escape::resolve_xml_entity</code></li> <li><code>quick_xml::escape::resolve_html5_entity</code></li> </ul> </li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Added parser for processing instructions: <code>quick_xml::reader::PiParser</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/754">#754</a>: Added parser for elements: <code>quick_xml::reader::ElementParser</code>.</li> </ul> <h3>Bug Fixes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/622">#622</a>: Fix wrong disregarding of not closed markup, such as lone <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(DoubleHyphenInComment)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(MissingDoctypeName)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/704">#704</a>: Fix empty tags with attributes not being expanded when <code>expand_empty_elements</code> is set to true.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/683">#683</a>: Use local tag name when check tag name against possible names for field.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Correctly determine end of processing instructions and XML declaration.</li> </ul> <h3>Misc Changes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Minimum supported version of serde raised to 1.0.139</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Rework the <code>quick_xml::Error</code> type to provide more accurate information:</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tafia/quick-xml/blob/master/Changelog.md">quick-xml's changelog</a>.</em></p> <blockquote> <h2>0.32.0 -- 2024-06-10</h2> <p>The way to configure parser is changed. Now all configuration is contained in the <code>Config</code> struct and can be applied at once. When <code>serde-types</code> feature is enabled, configuration is serializable.</p> <p>The method of reporting positions of errors has changed - use <code>error_position()</code> to get an offset of the error position. For <code>SyntaxError</code>s the range <code>error_position()..buffer_position()</code> also will represent a span of error.</p> <p>The way of resolve entities with <code>unescape_with</code> are changed. Those methods no longer resolve predefined entities.</p> <h3>New Features</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/513">#513</a>: Allow to continue parsing after getting new <code>Error::IllFormed</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/677">#677</a>: Added methods <code>config()</code> and <code>config_mut()</code> to inspect and change the parser configuration. Previous builder methods on <code>Reader</code> / <code>NsReader</code> was replaced by direct access to fields of config using <code>reader.config_mut().<...></code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Added a method <code>Config::enable_all_checks</code> to turn on or off all well-formedness checks.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>escape::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>BytesCData::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>Serializer::set_quote_level()</code> which allow to set desired level of escaping.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/705">#705</a>: Added <code>NsReader::prefixes()</code> to list all the prefixes currently declared.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/629">#629</a>: Added a default case to <code>impl_deserialize_for_internally_tagged_enum</code> macro so that it can handle every attribute that does not match existing cases within an enum variant.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/722">#722</a>: Allow to pass owned strings to <code>Writer::create_element</code>. This is breaking change!</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/275">#275</a>: Added <code>ElementWriter::new_line()</code> which enables pretty printing elements with multiple attributes.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/743">#743</a>: Added <code>Deserializer::get_ref()</code> to get XML Reader from serde Deserializer</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/734">#734</a>: Added helper functions to resolve predefined XML and HTML5 entities: <ul> <li><code>quick_xml::escape::resolve_predefined_entity</code></li> <li><code>quick_xml::escape::resolve_xml_entity</code></li> <li><code>quick_xml::escape::resolve_html5_entity</code></li> </ul> </li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Added parser for processing instructions: <code>quick_xml::reader::PiParser</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/754">#754</a>: Added parser for elements: <code>quick_xml::reader::ElementParser</code>.</li> </ul> <h3>Bug Fixes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/622">#622</a>: Fix wrong disregarding of not closed markup, such as lone <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(DoubleHyphenInComment)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(MissingDoctypeName)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/704">#704</a>: Fix empty tags with attributes not being expanded when <code>expand_empty_elements</code> is set to true.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/683">#683</a>: Use local tag name when check tag name against possible names for field.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Correctly determine end of processing instructions and XML declaration.</li> </ul> <h3>Misc Changes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Minimum supported version of serde raised to 1.0.139</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Rework the <code>quick_xml::Error</code> type to provide more accurate information:</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
faaa12838e
|
Bump scraper from 0.19.0 to 0.20.0 (#13559)
Bumps [scraper](https://github.com/causal-agent/scraper) from 0.19.0 to 0.20.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/causal-agent/scraper/releases">scraper's releases</a>.</em></p> <blockquote> <h2>0.20.0</h2> <h2>What's Changed</h2> <ul> <li><code>is</code> and <code>has</code> support by <a href="https://github.com/cfvescovo"><code>@cfvescovo</code></a> in <a href="https://redirect.github.com/causal-agent/scraper/pull/187">causal-agent/scraper#187</a></li> <li>Make ElementRef Debug impl use Element by <a href="https://github.com/gfaster"><code>@gfaster</code></a> in <a href="https://redirect.github.com/causal-agent/scraper/pull/190">causal-agent/scraper#190</a></li> <li>Bump indexmap from 2.2.6 to 2.3.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/causal-agent/scraper/pull/194">causal-agent/scraper#194</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/gfaster"><code>@gfaster</code></a> made their first contribution in <a href="https://redirect.github.com/causal-agent/scraper/pull/190">causal-agent/scraper#190</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/causal-agent/scraper/compare/v0.19.1...v0.20.0">https://github.com/causal-agent/scraper/compare/v0.19.1...v0.20.0</a></p> <h2>0.19.1</h2> <h2>What's Changed</h2> <ul> <li>Bump ahash from 0.8.9 to 0.8.11 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/causal-agent/scraper/pull/174">causal-agent/scraper#174</a></li> <li>Bump indexmap from 2.2.3 to 2.2.5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/causal-agent/scraper/pull/173">causal-agent/scraper#173</a></li> <li>Bump html5ever from 0.26.0 to 0.27.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/causal-agent/scraper/pull/176">causal-agent/scraper#176</a></li> <li>Bump indexmap from 2.2.5 to 2.2.6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/causal-agent/scraper/pull/177">causal-agent/scraper#177</a></li> <li>Select and Text are not fused iterators by <a href="https://github.com/Noname-Official"><code>@Noname-Official</code></a> in <a href="https://redirect.github.com/causal-agent/scraper/pull/184">causal-agent/scraper#184</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Noname-Official"><code>@Noname-Official</code></a> made their first contribution in <a href="https://redirect.github.com/causal-agent/scraper/pull/184">causal-agent/scraper#184</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/causal-agent/scraper/compare/v0.19.0...v0.19.1">https://github.com/causal-agent/scraper/compare/v0.19.0...v0.19.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
edee2a3c15
|
Bump indexmap from 2.2.6 to 2.3.0 (#13557)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.2.6 to 2.3.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md">indexmap's changelog</a>.</em></p> <blockquote> <h2>2.3.0</h2> <ul> <li>Added trait <code>MutableEntryKey</code> for opt-in mutable access to map entry keys.</li> <li>Added method <code>MutableKeys::iter_mut2</code> for opt-in mutable iteration of map keys and values.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Bruce Weirdan
|
2ced9e4d19
|
Add multipart/form-data uploads (#13532)
Fixes nushell/nushell#11046 # Description This adds support for `multipart/form-data` (RFC 7578) uploads to nushell. Binary data is uploaded as files (`application/octet-stream`), everything else is uploaded as plain text. ```console $ http post https://echo.free.beeceptor.com --content-type multipart/form-data {cargo: (open -r Cargo.toml | into binary ), description: "It's some TOML"} | upsert ip "<redacted>" ╭───────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ method │ POST │ │ protocol │ https │ │ host │ echo.free.beeceptor.com │ │ path │ / │ │ ip │ <redacted> │ │ │ ╭─────────────────┬────────────────────────────────────────────────────────────────────╮ │ │ headers │ │ Host │ echo.free.beeceptor.com │ │ │ │ │ User-Agent │ nushell │ │ │ │ │ Content-Length │ 9453 │ │ │ │ │ Accept │ */* │ │ │ │ │ Accept-Encoding │ gzip │ │ │ │ │ Content-Type │ multipart/form-data; boundary=a15f6a14-5768-4a6a-b3a4-686a112d9e27 │ │ │ │ ╰─────────────────┴────────────────────────────────────────────────────────────────────╯ │ │ parsedQueryParams │ {record 0 fields} │ │ │ ╭─────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ │ parsedBody │ │ │ ╭─────────────┬────────────────╮ │ │ │ │ │ textFields │ │ description │ It's some TOML │ │ │ │ │ │ │ ╰─────────────┴────────────────╯ │ │ │ │ │ │ ╭───┬───────┬──────────┬──────────────────────────┬───────────────────────────┬───────────────────────────────────────────┬────────────────╮ │ │ │ │ │ files │ │ # │ name │ fileName │ Content-Type │ Content-Transfer-Encoding │ Content-Disposition │ Content-Length │ │ │ │ │ │ │ ├───┼───────┼──────────┼──────────────────────────┼───────────────────────────┼───────────────────────────────────────────┼────────────────┤ │ │ │ │ │ │ │ 0 │ cargo │ cargo │ application/octet-stream │ binary │ form-data; name="cargo"; filename="cargo" │ 9101 │ │ │ │ │ │ │ ╰───┴───────┴──────────┴──────────────────────────┴───────────────────────────┴───────────────────────────────────────────┴────────────────╯ │ │ │ │ ╰─────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰───────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ``` # User-Facing Changes `http post --content-type multipart/form-data` now accepts a record which is uploaded as `multipart/form-data`. Binary data is uploaded as files (`application/octet-stream`), everything else is uploaded as plain text. Previously `http post --content-type multipart/form-data` rejected records, so there's no BC break. # Tests + Formatting Added. # After Submitting - [ ] update docs to showcase new functionality |
||
Jack Wright
|
2f44801414
|
Adding plist support (#13545)
# Description Provides the ability convert from and to plist format. <img width="1250" alt="Screenshot 2024-08-05 at 10 21 26" src="https://github.com/user-attachments/assets/970f3366-eb70-4d74-a396-649374556f66"> <img width="730" alt="Screenshot 2024-08-05 at 10 22 38" src="https://github.com/user-attachments/assets/6ec317d0-686e-47c6-bf35-8ab6e5d802db"> # User-Facing Changes - Introduction of `from plist` command - Introduction of `to plist`command --------- Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com> |
||
Darren Schroeder
|
56ed532038
|
update to latest reedline commit 919292e (#13540)
# Description This PR updates nushell to the latest reedline commit which has some vi keyboard mode changes. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
Embers-of-the-Fire
|
20b53067cd
|
Fix overflow table display in command documentation (#13526)
# Description Check and set table width beforehand. Closes #13520. # User-Facing Changes Before: ```plain ❯ help net cmd1 network Usage: > net cmd1 Flags: -h, --help - Display the help message for this command Input/output types: ╭───┬─────────┬─────────────────────────────────────────────────────────╮ │ # │ input │ output │ ├───┼─────────┼─────────────────────────────────────────────────────────┤ │ 0 │ nothing │ table<name: string, description: string, mac: string, │ │ │ │ ips: table<type: string, addr: string, prefix: int>, │ │ │ │ flags: record<is_up: bool, is_broadcast: bool, │ │ │ │ is_loopback: bool, is_point_to_point: bool, │ │ │ │ is_multicast: bool>> │ ╰───┴─────────┴─────────────────────────────────────────────────────────╯ ``` After: ```plain ❯ help net cmd1 network Usage: > net cmd1 Flags: -h, --help - Display the help message for this command Input/output types: ╭───┬─────────┬───────────────────────────────────────────────────────╮ │ # │ input │ output │ ├───┼─────────┼───────────────────────────────────────────────────────┤ │ 0 │ nothing │ table<name: string, description: string, mac: string, │ │ │ │ ips: table<type: string, addr: string, prefix: int>, │ │ │ │ flags: record<is_up: bool, is_broadcast: bool, │ │ │ │ is_loopback: bool, is_point_to_point: bool, │ │ │ │ is_multicast: bool>> │ ╰───┴─────────┴───────────────────────────────────────────────────────╯ ``` # Tests + Formatting - [x] `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - [x] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - [x] `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)) - [x] `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library # After Submitting - [x] Bug fix, no doc update. |
||
dependabot[bot]
|
d2bf82d22b
|
Bump similar from 2.5.0 to 2.6.0 (#13492) | ||
dependabot[bot]
|
18161e5707
|
Bump shadow-rs from 0.29.0 to 0.30.0 (#13436) | ||
Devyn Cairns
|
c31291753c
|
Bump version to 0.96.2 (#13485)
This should be the new development version. We most likely don't need a 0.96.2 patch release. Should be free to merge PRs after this. |
||
dependabot[bot]
|
4a7d4401b8
|
Bump openssl from 0.10.64 to 0.10.66 (#13426) | ||
Devyn Cairns
|
9f90d611e1
|
Bump version to 0.96.1 (#13439)
(Post-release bump.) |
||
Devyn Cairns
|
a80dfe8e80
|
Bump version to 0.96.0 (#13433)
|
||
Jack Wright
|
6a62ced645
|
Updating version for nu-ansi-term and reedline (#13432)
Updating nu-answer-term to 0.50.1 and reedline to 0.33 |
||
Jan Christian Grünhage
|
4665323bb4
|
Use directories for autoloading (#13382)
fixes https://github.com/nushell/nushell/issues/13378 # Description This PR tries to improve usage of system APIs to determine the location of vendored autoload files. # User-Facing Changes The paths listed in #13180 and #13217 are changing. This has not been part of a release yet, so arguably the user facing changes are only to unreleased features anyway. # Tests + Formatting Haven't done, but if someone wants to help me here, I'm open to doing it. I just don't know how to properly test this. # After Submitting |
||
dependabot[bot]
|
f976c31887
|
Bump open from 5.2.0 to 5.3.0 (#13391)
Bumps [open](https://github.com/Byron/open-rs) from 5.2.0 to 5.3.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Byron/open-rs/releases">open's releases</a>.</em></p> <blockquote> <h2>v5.3.0</h2> <h3>New Features</h3> <ul> <li>add GNU/Hurd support Handle it like most of the other Unix platforms (e.g. Linux, BSDs, etc).</li> </ul> <h3>Commit Statistics</h3> <ul> <li>2 commits contributed to the release.</li> <li>7 days passed between releases.</li> <li>1 commit was understood as <a href="https://www.conventionalcommits.org">conventional</a>.</li> <li>0 issues like '(#ID)' were seen in commit messages</li> </ul> <h3>Commit Details</h3> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <ul> <li><strong>Uncategorized</strong> <ul> <li>Merge pull request <a href="https://redirect.github.com/Byron/open-rs/issues/101">#101</a> from pinotree/hurd (a060608)</li> <li>Add GNU/Hurd support (58142a6)</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Byron/open-rs/blob/main/changelog.md">open's changelog</a>.</em></p> <blockquote> <h2>5.3.0 (2024-07-10)</h2> <h3>New Features</h3> <ul> <li><!-- raw HTML omitted --> add GNU/Hurd support Handle it like most of the other Unix platforms (e.g. Linux, BSDs, etc).</li> </ul> <h3>Commit Statistics</h3> <!-- raw HTML omitted --> <ul> <li>2 commits contributed to the release.</li> <li>7 days passed between releases.</li> <li>1 commit was understood as <a href="https://www.conventionalcommits.org">conventional</a>.</li> <li>0 issues like '(#ID)' were seen in commit messages</li> </ul> <h3>Commit Details</h3> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <ul> <li><strong>Uncategorized</strong> <ul> <li>Merge pull request <a href="https://redirect.github.com/Byron/open-rs/issues/101">#101</a> from pinotree/hurd (<a href=" |
||
dependabot[bot]
|
ac18e43603
|
Bump rust-embed from 8.4.0 to 8.5.0 (#13392)
Bumps [rust-embed](https://github.com/pyros2097/rust-embed) from 8.4.0 to 8.5.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pyrossh/rust-embed/blob/master/changelog.md">rust-embed's changelog</a>.</em></p> <blockquote> <h2>[8.5.0] - 2024-07-09</h2> <ul> <li>Re-export RustEmbed as Embed <a href="https://redirect.github.com/pyrossh/rust-embed/pull/246">#246</a>. Thanks to <a href="https://github.com/krant">krant</a></li> <li>Allow users to specify a custom path to the rust_embed crate in generated code<a href="https://redirect.github.com/pyrossh/rust-embed/pull/232">#232</a>. Thanks to <a href="https://github.com/Wulf">Wulf</a></li> <li>Increase minimum rust-version to v1.7.0.0</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/pyros2097/rust-embed/commits">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rust-embed&package-manager=cargo&previous-version=8.4.0&new-version=8.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
dependabot[bot]
|
63cea44130
|
Bump uuid from 1.9.1 to 1.10.0 (#13390)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.9.1 to 1.10.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/uuid-rs/uuid/releases">uuid's releases</a>.</em></p> <blockquote> <h2>1.10.0</h2> <h2>Deprecations</h2> <p>This release deprecates and renames the following functions:</p> <ul> <li><code>Builder::from_rfc4122_timestamp</code> -> <code>Builder::from_gregorian_timestamp</code></li> <li><code>Builder::from_sorted_rfc4122_timestamp</code> -> <code>Builder::from_sorted_gregorian_timestamp</code></li> <li><code>Timestamp::from_rfc4122</code> -> <code>Timestamp::from_gregorian</code></li> <li><code>Timestamp::to_rfc4122</code> -> <code>Timestamp::to_gregorian</code></li> </ul> <h2>What's Changed</h2> <ul> <li>Use const identifier in uuid macro by <a href="https://github.com/Vrajs16"><code>@Vrajs16</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/764">uuid-rs/uuid#764</a></li> <li>Rename most methods referring to RFC4122 by <a href="https://github.com/Mikopet"><code>@Mikopet</code></a> / <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/765">uuid-rs/uuid#765</a></li> <li>prepare for 1.10.0 release by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/766">uuid-rs/uuid#766</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Vrajs16"><code>@Vrajs16</code></a> made their first contribution in <a href="https://redirect.github.com/uuid-rs/uuid/pull/764">uuid-rs/uuid#764</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/uuid-rs/uuid/compare/1.9.1...1.10.0">https://github.com/uuid-rs/uuid/compare/1.9.1...1.10.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Jan Christian Grünhage
|
b66671d339
|
Switch from dirs_next 2.0 to dirs 5.0 (#13384)
<!-- if this PR closes one or more issues, you can automatically link the PR with them by using one of the [*linking keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword), e.g. - this PR should close #xxxx - fixes #xxxx you can also mention related issues, PRs or discussions! --> # Description <!-- Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes. Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience. --> Replaces the `dirs_next` family of crates with `dirs`. `dirs_next` was born when the `dirs` crates were abandoned three years ago, but they're being maintained again and most projects depend on `dirs` nowadays. `dirs_next` has been abandoned since. This came up while working on https://github.com/nushell/nushell/pull/13382. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> None. # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> Tests and formatter have been run. # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
David
|
cf4864a9cd
|
JSON format output keeps braces on same line (issue #13326) (#13352)
# Description This is a minor breaking change to JSON output syntax/style of the `to json` command. This fixes #13326 by setting `braces_same_line` to true when creating a new `HjsonFormatter`. This then simply tells `HjsonFormatter` to keep the braces on the same line when outputting which is what I expected nu's `to json` command to do. There are almost no changes to nushell itself, all changes are contained within `nu-json` crate (minus any documentation updates). Oh, almost forgot to mention, to get the tests compiling, I added fancy_regex as a _dev_ dependency to nu-json. I could look into eliminating that if desirable. # User-Facing Changes **Breaking Change** nushell now outputs the desired result using the reproduction command from the issue: ``` echo '{"version": "v0.4.4","notes": "blablabla","pub_date": "2024-05-04T16:05:00Z","platforms":{"windows-x86_64":{"signature": "blablabla","url": "https://blablabla"}}}' | from json | to json ``` outputs: ``` { "version": "v0.4.4", "notes": "blablabla", "pub_date": "2024-05-04T16:05:00Z", "platforms": { "windows-x86_64": { "signature": "blablabla", "url": "https://blablabla" } } } ``` whereas previously it would push the opening braces onto a new line: ``` { "version": "v0.4.4", "notes": "blablabla", "pub_date": "2024-05-04T16:05:00Z", "platforms": { "windows-x86_64": { "signature": "blablabla", "url": "https://blablabla" } } } ``` # Tests + Formatting toolkit check pr mostly passes - there are regrettably some tests not passing on my windows machine _before making any changes_ (I may look into this as a separate issue) I have re-enabled the [hjson tests](https://github.com/nushell/nushell/blob/main/crates/nu-json/tests/main.rs). This is done in the second commit 🙂 They have a crucial difference to what they were previously asserting: * nu-json outputs in json syntax, not hjson syntax I think this is desirable, but I'm not aware of the history of these tests. # After Submitting I suspect there `to json` command examples will need updating to match, haven't checked yet! |
||
dependabot[bot]
|
acd4cb83e8
|
Bump ureq from 2.9.7 to 2.10.0 (#13348) | ||
Devyn Cairns
|
f65bc97a54
|
Update config directly at assignment (#13332)
# Description Allows `Stack` to have a modified local `Config`, which is updated immediately when `$env.config` is assigned to. This means that even within a script, commands that come after `$env.config` changes will always see those changes in `Stack::get_config()`. Also fixed a lot of cases where `engine_state.get_config()` was used even when `Stack` was available. Closes #13324. # User-Facing Changes - Config changes apply immediately after the assignment is executed, rather than whenever config is read by a command that needs it. - Potentially slower performance when executing a lot of lines that change `$env.config` one after another. Recommended to get `$env.config` into a `mut` variable first and do modifications, then assign it back. - Much faster performance when executing a script that made modifications to `$env.config`, as the changes are only parsed once. # Tests + Formatting All passing. # After Submitting - [ ] release notes |
||
Stefan Holderbach
|
deaa711ca6
|
Bump yanked libc version (#13344)
Fixes #13244 |
||
Devyn Cairns
|
d7392f1f3b
|
Internal representation (IR) compiler and evaluator (#13330)
# Description This PR adds an internal representation language to Nushell, offering an alternative evaluator based on simple instructions, stream-containing registers, and indexed control flow. The number of registers required is determined statically at compile-time, and the fixed size required is allocated upon entering the block. Each instruction is associated with a span, which makes going backwards from IR instructions to source code very easy. Motivations for IR: 1. **Performance.** By simplifying the evaluation path and making it more cache-friendly and branch predictor-friendly, code that does a lot of computation in Nushell itself can be sped up a decent bit. Because the IR is fairly easy to reason about, we can also implement optimization passes in the future to eliminate and simplify code. 2. **Correctness.** The instructions mostly have very simple and easily-specified behavior, so hopefully engine changes are a little bit easier to reason about, and they can be specified in a more formal way at some point. I have made an effort to document each of the instructions in the docs for the enum itself in a reasonably specific way. Some of the errors that would have happened during evaluation before are now moved to the compilation step instead, because they don't make sense to check during evaluation. 3. **As an intermediate target.** This is a good step for us to bring the [`new-nu-parser`](https://github.com/nushell/new-nu-parser) in at some point, as code generated from new AST can be directly compared to code generated from old AST. If the IR code is functionally equivalent, it will behave the exact same way. 4. **Debugging.** With a little bit more work, we can probably give control over advancing the virtual machine that `IrBlock`s run on to some sort of external driver, making things like breakpoints and single stepping possible. Tools like `view ir` and [`explore ir`](https://github.com/devyn/nu_plugin_explore_ir) make it easier than before to see what exactly is going on with your Nushell code. The goal is to eventually replace the AST evaluator entirely, once we're sure it's working just as well. You can help dogfood this by running Nushell with `$env.NU_USE_IR` set to some value. The environment variable is checked when Nushell starts, so config runs with IR, or it can also be set on a line at the REPL to change it dynamically. It is also checked when running `do` in case within a script you want to just run a specific piece of code with or without IR. # Example ```nushell view ir { |data| mut sum = 0 for n in $data { $sum += $n } $sum } ``` ```gas # 3 registers, 19 instructions, 0 bytes of data 0: load-literal %0, int(0) 1: store-variable var 904, %0 # let 2: drain %0 3: drop %0 4: load-variable %1, var 903 5: iterate %0, %1, end 15 # for, label(1), from(14:) 6: store-variable var 905, %0 7: load-variable %0, var 904 8: load-variable %2, var 905 9: binary-op %0, Math(Plus), %2 10: span %0 11: store-variable var 904, %0 12: load-literal %0, nothing 13: drain %0 14: jump 5 15: drop %0 # label(0), from(5:) 16: drain %0 17: load-variable %0, var 904 18: return %0 ``` # Benchmarks All benchmarks run on a base model Mac Mini M1. ## Iterative Fibonacci sequence This is about as best case as possible, making use of the much faster control flow. Most code will not experience a speed improvement nearly this large. ```nushell def fib [n: int] { mut a = 0 mut b = 1 for _ in 2..=$n { let c = $a + $b $a = $b $b = $c } $b } use std bench bench { 0..50 | each { |n| fib $n } } ``` IR disabled: ``` ╭───────┬─────────────────╮ │ mean │ 1ms 924µs 665ns │ │ min │ 1ms 700µs 83ns │ │ max │ 3ms 450µs 125ns │ │ std │ 395µs 759ns │ │ times │ [list 50 items] │ ╰───────┴─────────────────╯ ``` IR enabled: ``` ╭───────┬─────────────────╮ │ mean │ 452µs 820ns │ │ min │ 427µs 417ns │ │ max │ 540µs 167ns │ │ std │ 17µs 158ns │ │ times │ [list 50 items] │ ╰───────┴─────────────────╯ ``` ![explore ir view](https://github.com/nushell/nushell/assets/10729/d7bccc03-5222-461c-9200-0dce71b83b83) ## [gradient_benchmark_no_check.nu](https://github.com/nushell/nu_scripts/blob/main/benchmarks/gradient_benchmark_no_check.nu) IR disabled: ``` ╭───┬──────────────────╮ │ 0 │ 27ms 929µs 958ns │ │ 1 │ 21ms 153µs 459ns │ │ 2 │ 18ms 639µs 666ns │ │ 3 │ 19ms 554µs 583ns │ │ 4 │ 13ms 383µs 375ns │ │ 5 │ 11ms 328µs 208ns │ │ 6 │ 5ms 659µs 542ns │ ╰───┴──────────────────╯ ``` IR enabled: ``` ╭───┬──────────────────╮ │ 0 │ 22ms 662µs │ │ 1 │ 17ms 221µs 792ns │ │ 2 │ 14ms 786µs 708ns │ │ 3 │ 13ms 876µs 834ns │ │ 4 │ 13ms 52µs 875ns │ │ 5 │ 11ms 269µs 666ns │ │ 6 │ 6ms 942µs 500ns │ ╰───┴──────────────────╯ ``` ## [random-bytes.nu](https://github.com/nushell/nu_scripts/blob/main/benchmarks/random-bytes.nu) I got pretty random results out of this benchmark so I decided not to include it. Not clear why. # User-Facing Changes - IR compilation errors may appear even if the user isn't evaluating with IR. - IR evaluation can be enabled by setting the `NU_USE_IR` environment variable to any value. - New command `view ir` pretty-prints the IR for a block, and `view ir --json` can be piped into an external tool like [`explore ir`](https://github.com/devyn/nu_plugin_explore_ir). # Tests + Formatting All tests are passing with `NU_USE_IR=1`, and I've added some more eval tests to compare the results for some very core operations. I will probably want to add some more so we don't have to always check `NU_USE_IR=1 toolkit test --workspace` on a regular basis. # After Submitting - [ ] release notes - [ ] further documentation of instructions? - [ ] post-release: publish `nu_plugin_explore_ir` |
||
Darren Schroeder
|
d2a1f96dbd
|
update to latest reedline commit (#13313)
# Description Update to the latest reedline version. (don't ask me why libloading changed. `cargo update -p reedline` sometimes does weird things) # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> /cc @YizhePKU (this include your reedline pwd change) |
||
Darren Schroeder
|
f59dfac130
|
update uutils crate versions (#13285)
# Description This PR updates the uutils crates to version 0.0.27. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
dependabot[bot]
|
9b63e17072
|
Bump open from 5.1.2 to 5.2.0 (#13288) | ||
Andy Gayton
|
4fe0f860a8
|
feat: add query webpage-info to plugin_nu_query (#13252)
# Description This PR adds a new subcommand `query webpage-info` to `plugin_nu_query`. The subcommand is a basic wrapper for the [`webpage`](https://crates.io/crates/webpage) crate. Usage: ``` http get https://phoronix.com | query webpage-info ``` and it returns a `Record` version of [`webpage::HTML`](https://docs.rs/webpage/latest/webpage/struct.HTML.html). The PR also takes a shot at bringing @lily-mara 's [nu-serde::to_value](https://github.com/nushell/nushell/pull/3878/files) back to life, updating it for the latest version of nushell. That's not the main focus of the PR though - I just didn't want to have to implement a custom converter for `webpage::HTML` 😅. If it looks reasonable we could move it to `nu_protocol`(?) either in this PR or a future one (along with adding tests for it). # User-Facing Changes no breaking changes |
||
Darren Schroeder
|
33d0537cae
|
add str deunicode command (#13270)
# Description Sometimes it's helpful to deal with only ASCII. This command will take a unicode string as input and convert it to ASCII using the deunicode crate. ```nushell ❯ "A…B" | str deunicode A...B ``` # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
Jack Wright
|
720b4cbd01
|
Polars 0.41 Upgrade (#13238)
# Description Upgrading to Polars 0.41 # User-Facing Changes * `polars melt` has been renamed to `polars unpivot` to match the change in the polars API. Additionally, it now supports lazy dataframes. Introduced a `--streamable` option to use the polars streaming engine for lazy frames. * The parameter `outer` has been replaced with `full` in `polars join` to match polars change. * `polars value-count` now supports the column (rename count column), parallelize (multithread), sort, and normalize options. The list of polars changes can be found [here](https://github.com/pola-rs/polars/releases/tag/rs-0.41.2) |
||
Jack Wright
|
1f1f581357
|
Converted perf function to be a macro. Utilized the perf macro within the polars plugin. (#13224)
In this pull request, I converted the `perf` function within `nu_utils` to a macro. This change facilitates easier usage within plugins by allowing the use of `env_logger` and setting `RUST_LOG=nu_plugin_polars` (or another plugin). Without this conversion, the `RUST_LOG` variable would need to be set to `RUST_LOG=nu_utils::utils`, which is less intuitive and impossible to narrow the perf results to one plugin. |
||
dependabot[bot]
|
020f4436d9
|
Bump shadow-rs from 0.28.0 to 0.29.0 (#13226) |