mirror of
https://github.com/nushell/nushell.git
synced 2024-11-22 16:33:37 +01:00
80c8edcfb4
1504 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
dependabot[bot]
|
ce13ecfd10
|
Bump mockito from 1.4.0 to 1.5.0 (#13558)
Bumps [mockito](https://github.com/lipanski/mockito) from 1.4.0 to 1.5.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lipanski/mockito/releases">mockito's releases</a>.</em></p> <blockquote> <h2>1.5.0</h2> <ul> <li><strong>[Breaking]</strong> <a href="https://redirect.github.com/lipanski/mockito/pull/198">Upgrade</a> to hyper v1</li> </ul> <p>Thanks to <a href="https://github.com/tottoto"><code>@tottoto</code></a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
bc6947cd09
|
Bump quick-xml from 0.31.0 to 0.32.0 (#13560)
Bumps [quick-xml](https://github.com/tafia/quick-xml) from 0.31.0 to 0.32.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tafia/quick-xml/releases">quick-xml's releases</a>.</em></p> <blockquote> <h2>v0.32.0</h2> <h2>Significant Changes</h2> <p>The method of reporting positions of errors has changed - use <code>error_position()</code> to get an offset of the error position. For <code>SyntaxError</code>s the range <code>error_position()..buffer_position()</code> also will represent a span of error.</p> <h3>⚠️ Breaking Changes</h3> <p>The way to configure parser has changed. Now all configuration is contained in the <code>Config</code> struct and can be applied at once. When <code>serde-types</code> feature is enabled, configuration is serializable.</p> <p>The way of resolve entities with <code>unescape_with</code> has changed. Those methods no longer resolve predefined entities (<code>lt</code>, <code>gt</code>, <code>apos</code>, <code>quot</code>, <code>amp</code>). <code>NoEntityResolver</code> renamed to <code>PredefinedEntityResolver</code>.</p> <p><code>Writer::create_element</code> now accepts <code>impl Into<Cow<str>></code> instead of <code>&impl AsRef<str></code>.</p> <p>Minimum supported version of serde raised to 1.0.139</p> <p>The full changelog is below.</p> <h2>What's Changed</h2> <h3>New Features</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/513">#513</a>: Allow to continue parsing after getting new <code>Error::IllFormed</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/677">#677</a>: Added methods <code>config()</code> and <code>config_mut()</code> to inspect and change the parser configuration. Previous builder methods on <code>Reader</code> / <code>NsReader</code> was replaced by direct access to fields of config using <code>reader.config_mut().<...></code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Added a method <code>Config::enable_all_checks</code> to turn on or off all well-formedness checks.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>escape::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>BytesCData::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>Serializer::set_quote_level()</code> which allow to set desired level of escaping.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/705">#705</a>: Added <code>NsReader::prefixes()</code> to list all the prefixes currently declared.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/629">#629</a>: Added a default case to <code>impl_deserialize_for_internally_tagged_enum</code> macro so that it can handle every attribute that does not match existing cases within an enum variant.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/722">#722</a>: Allow to pass owned strings to <code>Writer::create_element</code>. This is breaking change!</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/275">#275</a>: Added <code>ElementWriter::new_line()</code> which enables pretty printing elements with multiple attributes.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/743">#743</a>: Added <code>Deserializer::get_ref()</code> to get XML Reader from serde Deserializer</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/734">#734</a>: Added helper functions to resolve predefined XML and HTML5 entities: <ul> <li><code>quick_xml::escape::resolve_predefined_entity</code></li> <li><code>quick_xml::escape::resolve_xml_entity</code></li> <li><code>quick_xml::escape::resolve_html5_entity</code></li> </ul> </li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Added parser for processing instructions: <code>quick_xml::reader::PiParser</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/754">#754</a>: Added parser for elements: <code>quick_xml::reader::ElementParser</code>.</li> </ul> <h3>Bug Fixes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/622">#622</a>: Fix wrong disregarding of not closed markup, such as lone <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(DoubleHyphenInComment)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(MissingDoctypeName)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/704">#704</a>: Fix empty tags with attributes not being expanded when <code>expand_empty_elements</code> is set to true.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/683">#683</a>: Use local tag name when check tag name against possible names for field.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Correctly determine end of processing instructions and XML declaration.</li> </ul> <h3>Misc Changes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Minimum supported version of serde raised to 1.0.139</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Rework the <code>quick_xml::Error</code> type to provide more accurate information:</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tafia/quick-xml/blob/master/Changelog.md">quick-xml's changelog</a>.</em></p> <blockquote> <h2>0.32.0 -- 2024-06-10</h2> <p>The way to configure parser is changed. Now all configuration is contained in the <code>Config</code> struct and can be applied at once. When <code>serde-types</code> feature is enabled, configuration is serializable.</p> <p>The method of reporting positions of errors has changed - use <code>error_position()</code> to get an offset of the error position. For <code>SyntaxError</code>s the range <code>error_position()..buffer_position()</code> also will represent a span of error.</p> <p>The way of resolve entities with <code>unescape_with</code> are changed. Those methods no longer resolve predefined entities.</p> <h3>New Features</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/513">#513</a>: Allow to continue parsing after getting new <code>Error::IllFormed</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/677">#677</a>: Added methods <code>config()</code> and <code>config_mut()</code> to inspect and change the parser configuration. Previous builder methods on <code>Reader</code> / <code>NsReader</code> was replaced by direct access to fields of config using <code>reader.config_mut().<...></code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Added a method <code>Config::enable_all_checks</code> to turn on or off all well-formedness checks.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>escape::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>BytesCData::minimal_escape()</code> which escapes only <code>&</code> and <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/362">#362</a>: Added <code>Serializer::set_quote_level()</code> which allow to set desired level of escaping.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/705">#705</a>: Added <code>NsReader::prefixes()</code> to list all the prefixes currently declared.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/629">#629</a>: Added a default case to <code>impl_deserialize_for_internally_tagged_enum</code> macro so that it can handle every attribute that does not match existing cases within an enum variant.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/722">#722</a>: Allow to pass owned strings to <code>Writer::create_element</code>. This is breaking change!</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/275">#275</a>: Added <code>ElementWriter::new_line()</code> which enables pretty printing elements with multiple attributes.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/743">#743</a>: Added <code>Deserializer::get_ref()</code> to get XML Reader from serde Deserializer</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/734">#734</a>: Added helper functions to resolve predefined XML and HTML5 entities: <ul> <li><code>quick_xml::escape::resolve_predefined_entity</code></li> <li><code>quick_xml::escape::resolve_xml_entity</code></li> <li><code>quick_xml::escape::resolve_html5_entity</code></li> </ul> </li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Added parser for processing instructions: <code>quick_xml::reader::PiParser</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/754">#754</a>: Added parser for elements: <code>quick_xml::reader::ElementParser</code>.</li> </ul> <h3>Bug Fixes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/622">#622</a>: Fix wrong disregarding of not closed markup, such as lone <code><</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(DoubleHyphenInComment)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/684">#684</a>: Fix incorrect position reported for <code>Error::IllFormed(MissingDoctypeName)</code>.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/704">#704</a>: Fix empty tags with attributes not being expanded when <code>expand_empty_elements</code> is set to true.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/683">#683</a>: Use local tag name when check tag name against possible names for field.</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/753">#753</a>: Correctly determine end of processing instructions and XML declaration.</li> </ul> <h3>Misc Changes</h3> <ul> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Minimum supported version of serde raised to 1.0.139</li> <li><a href="https://redirect.github.com/tafia/quick-xml/issues/675">#675</a>: Rework the <code>quick_xml::Error</code> type to provide more accurate information:</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
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) | ||
dependabot[bot]
|
8a7a407627
|
Bump ratatui from 0.26.2 to 0.26.3 (#13228) | ||
dependabot[bot]
|
38ecb6d380
|
Bump uuid from 1.8.0 to 1.9.1 (#13227) | ||
Jack Wright
|
c5a00ca3f1
|
update lock via cargo check to fix ci (#13233) | ||
Jakub Žádník
|
f93c6680bd
|
Bump to 0.95.0 (#13221)
<!-- if this PR closes one or more issues, you can automatically link the PR with them by using one of the [*linking keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword), e.g. - this PR should close #xxxx - fixes #xxxx you can also mention related issues, PRs or discussions! --> # Description <!-- Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes. Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience. --> # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
dependabot[bot]
|
26bdba2068
|
Bump interprocess from 2.1.0 to 2.2.0 (#13178)
Bumps [interprocess](https://github.com/kotauskas/interprocess) from 2.1.0 to 2.2.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/kotauskas/interprocess/releases">interprocess's releases</a>.</em></p> <blockquote> <h2>2.2.0 – Tokio unnamed pipes</h2> <ul> <li>Tokio-based unnamed pipes, with subpar performance on Windows due to OS API limitations</li> <li>Examples for unnamed pipes, both non-async and Tokio</li> <li>Impersonation for Windows named pipes</li> <li>Improvements to the implementation of Windows pipe flushing on Tokio</li> </ul> <h2>2.1.1</h2> <ul> <li>Removed async <code>Incoming</code> and <code>futures::Stream</code> ("<code>AsyncIterator</code>") implementations on <code>local_socket::traits::Listener</code> implementors – those were actually completely broken, so this change is not breaking in practice and thus does not warrant a bump to 3.0.0</li> <li>Fixed <code>ListenerOptionsExt::mode()</code> behavior in <code>umask</code> fallback mode and improved its documentation</li> <li>Moved examples to their own dedicated files with the help of the <a href="https://crates.io/crates/doctest-file"><code>doctest-file</code></a> crate</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
103f59be52
|
Bump git2 from 0.18.3 to 0.19.0 (#13179) | ||
Piepmatz
|
b79a2255d2
|
Add derive macros for FromValue and IntoValue to ease the use of Value s in Rust code (#13031)
# Description After discussing with @sholderbach the cumbersome usage of `nu_protocol::Value` in Rust, I created a derive macro to simplify it. I’ve added a new crate called `nu-derive-value`, which includes two macros, `IntoValue` and `FromValue`. These are re-exported in `nu-protocol` and should be encouraged to be used via that re-export. The macros ensure that all types can easily convert from and into `Value`. For example, as a plugin author, you can define your plugin configuration using a Rust struct and easily convert it using `FromValue`. This makes plugin configuration less of a hassle. I introduced the `IntoValue` trait for a standardized approach to converting values into `Value` (and a fallible variant `TryIntoValue`). This trait could potentially replace existing `into_value` methods. Along with this, I've implemented `FromValue` for several standard types and refined other implementations to use blanket implementations where applicable. I made these design choices with input from @devyn. There are more improvements possible, but this is a solid start and the PR is already quite substantial. # User-Facing Changes For `nu-protocol` users, these changes simplify the handling of `Value`s. There are no changes for end-users of nushell itself. # Tests + Formatting Documenting the macros itself is not really possible, as they cannot really reference any other types since they are the root of the dependency graph. The standard library has the same problem ([std::Debug](https://doc.rust-lang.org/stable/std/fmt/derive.Debug.html)). However I documented the `FromValue` and `IntoValue` traits completely. For testing, I made of use `proc-macro2` in the derive macro code. This would allow testing the generated source code. Instead I just tested that the derived functionality is correct. This is done in `nu_protocol::value::test_derive`, as a consumer of `nu-derive-value` needs to do the testing of the macro usage. I think that these tests should provide a stable baseline so that users can be sure that the impl works. # After Submitting With these macros available, we can probably use them in some examples for plugins to showcase the use of them. |
||
Darren Schroeder
|
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. --> |
||
dependabot[bot]
|
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=" |
||
Jack Wright
|
a6b1d1f6d9
|
Upgrade to polars 0.40 (#13069)
Upgrading to polars 0.40 |
||
Antoine Büsch
|
65911c125c
|
Try to preserve the ordering of elements in from toml (#13045)
# Description Enable the `preserve_order` feature of the `toml` crate to preserve the ordering of elements when converting from/to toml. Additionally, use `to_string_pretty()` instead of `to_string()` in `to toml`. This displays arrays on multiple lines instead of one big single line. I'm not sure if this one is a good idea or not... Happy to remove this from this PR if it's not. # User-Facing Changes The order of elements will be different when using `from toml`. The formatting of arrays will also be different when using `to toml`. For example: - before ``` ❯ "foo=1\nbar=2\ndoo=3" | from toml ╭─────┬───╮ │ bar │ 2 │ │ doo │ 3 │ │ foo │ 1 │ ╰─────┴───╯ ❯ {a: [a b c d]} | to toml a = ["a", "b", "c", "d"] ``` - after ``` ❯ "foo=1\nbar=2\ndoo=3" | from toml ╭─────┬───╮ │ foo │ 1 │ │ bar │ 2 │ │ doo │ 3 │ ╰─────┴───╯ ❯ {a: [a b c d]} | to toml a = [ "a", "b", "c", "d", ] ``` # Tests + Formatting - 🟢 `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. --> |
||
Wind
|
ad5a6cdc00
|
bump version to 0.94.3 (#13055) | ||
Devyn Cairns
|
6635b74d9d
|
Bump version to 0.94.2 (#13014)
Version bump after 0.94.1 patch release. |
||
Devyn Cairns
|
f3991f2080
|
Bump version to 0.94.1 (#12988)
Merge this PR before merging any other PRs. |
||
Jakub Žádník
|
61182deb96
|
Bump version to 0.94.0 (#12987) | ||
Ian Manske
|
4ab2c3238a
|
Disable reedline patch for 0.94.0 (#12986)
Disable crates.io git patch for reedline for 0.94.0 release. |
||
Darren Schroeder
|
0c5a67f4e5
|
make polars plugin use mimalloc (#12967)
# Description @maxim-uvarov did a ton of research and work with the dply-rs author and ritchie from polars and found out that the allocator matters on macos and it seems to be what was messing up the performance of polars plugin. ritchie suggested to use jemalloc but i switched it to mimalloc to match nushell and it seems to run better. ## Before (default allocator) note - using 1..10 vs 1..100 since it takes so long. also notice how high the `max` timings are compared to mimalloc below. ```nushell ❯ 1..10 | each {timeit {polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null}} | | {mean: ($in | math avg), min: ($in | math min), max: ($in | math max), stddev: ($in | into int | into float | math stddev | into int | $'($in)ns' | into duration)} ╭────────┬─────────────────────────╮ │ mean │ 4sec 999ms 605µs 995ns │ │ min │ 983ms 627µs 42ns │ │ max │ 13sec 398ms 135µs 791ns │ │ stddev │ 3sec 476ms 479µs 939ns │ ╰────────┴─────────────────────────╯ ❯ use std bench ❯ bench { polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null } -n 10 ╭───────┬────────────────────────╮ │ mean │ 6sec 220ms 783µs 983ns │ │ min │ 1sec 184ms 997µs 708ns │ │ max │ 18sec 882ms 81µs 708ns │ │ std │ 5sec 350ms 375µs 697ns │ │ times │ [list 10 items] │ ╰───────┴────────────────────────╯ ``` ## After (using mimalloc) ```nushell ❯ 1..100 | each {timeit {polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null}} | | {mean: ($in | math avg), min: ($in | math min), max: ($in | math max), stddev: ($in | into int | into float | math stddev | into int | $'($in)ns' | into duration)} ╭────────┬───────────────────╮ │ mean │ 103ms 728µs 902ns │ │ min │ 97ms 107µs 42ns │ │ max │ 149ms 430µs 84ns │ │ stddev │ 5ms 690µs 664ns │ ╰────────┴───────────────────╯ ❯ use std bench ❯ bench { polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null } -n 100 ╭───────┬───────────────────╮ │ mean │ 103ms 620µs 195ns │ │ min │ 97ms 541µs 166ns │ │ max │ 130ms 262µs 166ns │ │ std │ 4ms 948µs 654ns │ │ times │ [list 100 items] │ ╰───────┴───────────────────╯ ``` ## After (using jemalloc - just for comparison) ```nushell ❯ 1..100 | each {timeit {polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null}} | | {mean: ($in | math avg), min: ($in | math min), max: ($in | math max), stddev: ($in | into int | into float | math stddev | into int | $'($in)ns' | into duration)} ╭────────┬───────────────────╮ │ mean │ 113ms 939µs 777ns │ │ min │ 108ms 337µs 333ns │ │ max │ 166ms 467µs 458ns │ │ stddev │ 6ms 175µs 618ns │ ╰────────┴───────────────────╯ ❯ use std bench ❯ bench { polars open Data7602DescendingYearOrder.csv | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null } -n 100 ╭───────┬───────────────────╮ │ mean │ 114ms 363µs 530ns │ │ min │ 108ms 804µs 833ns │ │ max │ 143ms 521µs 459ns │ │ std │ 5ms 88µs 56ns │ │ times │ [list 100 items] │ ╰───────┴───────────────────╯ ``` ## After (using parquet + mimalloc) ```nushell ❯ 1..100 | each {timeit {polars open data.parquet | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null}} | | {mean: ($in | math avg), min: ($in | math min), max: ($in | math max), stddev: ($in | into int | into float | math stddev | into int | $'($in)ns' | into duration)} ╭────────┬──────────────────╮ │ mean │ 34ms 255µs 492ns │ │ min │ 31ms 787µs 250ns │ │ max │ 76ms 408µs 416ns │ │ stddev │ 4ms 472µs 916ns │ ╰────────┴──────────────────╯ ❯ use std bench ❯ bench { polars open data.parquet | polars group-by year | polars agg (polars col geo_count | polars sum) | polars collect | null } -n 100 ╭───────┬──────────────────╮ │ mean │ 34ms 897µs 562ns │ │ min │ 31ms 518µs 542ns │ │ max │ 65ms 943µs 625ns │ │ std │ 3ms 450µs 741ns │ │ times │ [list 100 items] │ ╰───────┴──────────────────╯ ``` # 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. --> |