mirror of
https://github.com/nushell/nushell.git
synced 2024-11-23 08:53:29 +01:00
b7a34498e3
6824 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
dependabot[bot]
|
b7a34498e3
|
Bump rust-embed from 6.4.1 to 6.6.0 (#8330)
Bumps [rust-embed](https://github.com/pyros2097/rust-embed) from 6.4.1 to 6.6.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>[6.6.0] - 2023-03-05</h2> <ul> <li>sort_by_file_name() requires walkdir v2.3.2 <a href="https://github-redirect.dependabot.com/pyrossh/rust-embed/issues/206">#206</a></li> <li>Add <code>mime-guess</code> feature to statically store mimetype <a href="https://github-redirect.dependabot.com/pyrossh/rust-embed/issues/192">#192</a></li> </ul> <h2>[6.4.2] - 2022-10-20</h2> <ul> <li>Fail the proc macro if include/exclude are used without the feature <a href="https://github-redirect.dependabot.com/pyrossh/rust-embed/issues/187">#187</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/pyros2097/rust-embed/commits">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rust-embed&package-manager=cargo&previous-version=6.4.1&new-version=6.6.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 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]
|
10fd3115c2
|
Bump rayon from 1.6.1 to 1.7.0 (#8328)
Bumps [rayon](https://github.com/rayon-rs/rayon) from 1.6.1 to 1.7.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rayon-rs/rayon/blob/master/RELEASES.md">rayon's changelog</a>.</em></p> <blockquote> <h1>Release rayon 1.7.0 / rayon-core 1.11.0 (2023-03-03)</h1> <ul> <li>The minimum supported <code>rustc</code> is now 1.59.</li> <li>Added a fallback when threading is unsupported.</li> <li>The new <code>ParallelIterator::take_any</code> and <code>skip_any</code> methods work like unordered <code>IndexedParallelIterator::take</code> and <code>skip</code>, counting items in whatever order they are visited in parallel.</li> <li>The new <code>ParallelIterator::take_any_while</code> and <code>skip_any_while</code> methods work like unordered <code>Iterator::take_while</code> and <code>skip_while</code>, which previously had no parallel equivalent. The "while" condition may be satisfied from anywhere in the parallel iterator, affecting all future items regardless of position.</li> <li>The new <code>yield_now</code> and <code>yield_local</code> functions will cooperatively yield execution to Rayon, either trying to execute pending work from the entire pool or from just the local deques of the current thread, respectively.</li> </ul> <h1>Release rayon-core 1.10.2 (2023-01-22)</h1> <ul> <li>Fixed miri-reported UB for SharedReadOnly tags protected by a call.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
df60793e3b
|
Bump tempfile from 3.3.0 to 3.4.0 (#8329)
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.3.0 to 3.4.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Stebalien/tempfile/blob/master/NEWS">tempfile's changelog</a>.</em></p> <blockquote> <h1>3.4.0</h1> <p>SECURITY: Prior <code>tempfile</code> releases depended on <code>remove_dir_all</code> version 0.5.0 which was vulnerable to a <a href="https://github.com/XAMPPRocky/remove_dir_all/security/advisories/GHSA-mc8h-8q98-g5hr">TOCTOU race</a>. This same race is present in rust versions prior to 1.58.1.</p> <p>Features:</p> <ul> <li>Generalized temporary files: <code>NamedTempFile</code> can now abstract over different kinds of files (e.g., unix domain sockets, pipes, etc.): <ul> <li>Add <code>Builder::make</code> and <code>Builder::make_in</code> for generalized temp file creation.</li> <li>Add <code>NamedTempFile::from_parts</code> to complement <code>NamedTempFile::into_parts</code>.</li> <li>Add generic parameter to <code>NamedTempFile</code> to support wrapping non-File types.</li> </ul> </li> </ul> <p>Bug Fixes/Improvements:</p> <ul> <li>Don't try to create a temporary file multiple times if the file path has been fully specified by the user (no random characters).</li> <li><code>NamedTempFile::persist_noclobber</code> is now always atomic on linux when <code>renameat_with</code> is supported. Previously, it would first link the new path, then unlink the previous path.</li> <li>Fix compiler warnings on windows.</li> </ul> <p>Trivia:</p> <ul> <li>Switch from <code>libc</code> to <code>rustix</code> on wasi/unix. This now makes direct syscalls instead of calling through libc.</li> <li>Remove <code>remove_dir_all</code> dependency. The rust standard library has optimized their internal version significantly.</li> <li>Switch to official windows-sys windows bindings.</li> </ul> <p>Breaking:</p> <ul> <li>The minimum rust version is now <code>1.48.0</code>.</li> <li>Mark most functions as <code>must_use</code>.</li> <li>Uses direct syscalls on linux by default, instead of libc.</li> <li>The new type parameter in <code>NamedTempFile</code> may lead to type inference issues in some cases.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/Stebalien/tempfile/commits">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tempfile&package-manager=cargo&previous-version=3.3.0&new-version=3.4.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 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> |
||
Reilly Wood
|
a4952bc029
|
Put a lock around cargo build invocations for plugin tests (#8333)
I think this _might_ fix the issues we've been seeing with plugin tests.
In a nutshell, the plugin tests run `cargo build` to ensure that plugins
have been built:
|
||
Filip Andersson
|
f6ca62384e
|
changes Reqwest to Ureq. (#8320)
# Description _(Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes.)_ This pull request removes `Reqwest` and replaces it with `Ureq` to remove some of our dependencies, giving us faster compile times as well as smaller binaries. `Ureq` does not have an async runtime included so we do not need build heavy dependencies such as `Tokio`. From older tests I had the number of build units be reduced from `430 -> 392`. The default of `Ureq` uses `Rustls` but it has been configured to instead use `native_tls` which should work exactly the same as the `tls` works now. I removed `content-length` from the http commands as after refactoring i did not see a reason to have it available, correct me if this is something we should preserve. In the medium, to long term, we should maybe consider changing to `rustls` to have the same `tls` on all platforms. # 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
Antoine Stevan
|
d6141881f2
|
FEATURE: add the example results to the scope (#8319)
Related to #8189. Should close #8302. Important to: - have a complete `$nu` structure with all available information - generate an accurate website, because the `make_docs.nu` script of `nushell.github.io` uses `$nu.scope.command` to generate the pages of https://nushell.sh/commands/ > **Note** > i was looking for "scope" in the source of `nushell` to augment `$nu.scope` and i found `crates/nu-engine/src/scope.rs` that defines `nu_engine::scope::create_scope` which lead me to `nu_engine::scope::ScopeData.collect_commands`. > i hope this is the right file 😌 # Description this PR slightly modifies `nu_engine::scope::ScopeData.collect_commands`: - add the "result" column to `$nu.scope.commands.examples` - put the result of the example when a valid `Option(Value)` - put a `Value::Nothing` when the result is set to `None` in the source of the command # User-Facing Changes users can now access the results of all examples in ```bash $nu.scope.commands | where name == <command> | get examples.0.result ``` ## example... ### ...with a command that defines examples: `merge` ```bash >_ $nu.scope.commands | where name == merge | get examples.0 | reject description | table --expand ╭───┬────────────────────────────────────────────────────────┬───────────────────────────╮ │ # │ example │ result │ ├───┼────────────────────────────────────────────────────────┼───────────────────────────┤ │ 0 │ [a b c] | wrap name | merge ( [1 2 3] | wrap index ) │ ╭───┬──────╮ │ │ │ │ │ # │ name │ │ │ │ │ ├───┼──────┤ │ │ │ │ │ 1 │ a │ │ │ │ │ │ 2 │ b │ │ │ │ │ │ 3 │ c │ │ │ │ │ ╰───┴──────╯ │ │ 1 │ {a: 1, b: 2} | merge {c: 3} │ ╭───┬───╮ │ │ │ │ │ a │ 1 │ │ │ │ │ │ b │ 2 │ │ │ │ │ │ c │ 3 │ │ │ │ │ ╰───┴───╯ │ │ 2 │ [{columnA: A0 columnB: B0}] | merge [{columnA: 'A0*'}] │ ╭───┬─────────┬─────────╮ │ │ │ │ │ # │ columnA │ columnB │ │ │ │ │ ├───┼─────────┼─────────┤ │ │ │ │ │ 0 │ A0* │ B0 │ │ │ │ │ ╰───┴─────────┴─────────╯ │ ╰───┴────────────────────────────────────────────────────────┴───────────────────────────╯ ``` and we can check that these are "true" results and not just string, e.g. ```bash >_ $nu.scope.commands | where name == merge | get examples.0.result.0 | describe table<name: string, index: int> ``` ### ...with a command without any example: `open` ```bash >_ $nu.scope.commands | where name == open | get examples.0 | reject description | table --expand ╭───┬──────────────────────────────────────┬────────╮ │ # │ example │ result │ ├───┼──────────────────────────────────────┼────────┤ │ 0 │ open myfile.json │ │ │ 1 │ open myfile.json --raw │ │ │ 2 │ 'myfile.txt' | open │ │ │ 3 │ open myfile.txt --raw | decode utf-8 │ │ ╰───┴──────────────────────────────────────┴────────╯ ``` and same thing, we can check that there is `$nothing` in this last command ```bash >_ $nu.scope.commands | where name == open | get examples.0.result.0 | describe table<name: string, index: int> ``` # Tests + Formatting - ✔️ `cargo fmt --all` - ✔️ `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` - ✔️ `cargo test --workspace` (~~currently running~~) # After Submitting the documentation would have to be regenerated! |
||
Reilly Wood
|
f93033c20b
|
Fix CPU usage info in sys (#8321)
Closes #8264. This PR does a few things to fix the `usage` column in `sys.cpu`: 1. Sleep a while (~400ms) between calls to `sys.refresh_cpu()`, [as required by `sysinfo`](https://docs.rs/sysinfo/latest/sysinfo/trait.SystemExt.html#method.refresh_cpu) 2. Change `sys` to return a `LazyRecord` (so you can do things like `sys | get host` instantly without waiting for CPU info) 3. Update our `sysinfo` dependency to [fix CPU usage calculations on Linux](https://github.com/GuillaumeGomez/sysinfo/pull/946) CPU usage is no longer always reported as zero: ![image](https://user-images.githubusercontent.com/26268125/222929775-5e9cbe18-95d9-4ecb-baf8-1e843f5c7086.png) |
||
Jérémy Audiger
|
33fb17776a
|
Update the command 'version'. (#8312)
# Description No real changes, just some cleanup while I was looking at the code of the command. # User-Facing Changes Remove the attribute 'pkg_version', since it's already exposed through 'version'. # 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
Antoine Stevan
|
b864a455f2
|
DOC: add a README to the standard library (#8304)
# Description this PR a `README` to the standard library in `crates/nu-utils/standard_library/` 👍 > **Note** > you can have a look at what the `README` looks like [here](https://github.com/amtoine/nushell/blob/doc/add-a-readme-to-the-standard-library/crates/nu-utils/standard_library/README.md#--welcome-to-the-standard-library-of-nushell--) # User-Facing Changes the user can now access some documentation about the standard library. # Tests + Formatting ``` $nothing ``` # After Submitting ``` $nothing ``` |
||
Jérémy Audiger
|
b9c78a05aa
|
Resolve Clippy warnings inside tests. (#8315)
# Description Command: `cargo clippy --workspace --all-targets` Resolve those warnings: ``` warning: this expression creates a reference which is immediately dereferenced by the compiler --> crates/nu-parser/tests/test_parser.rs:86:59 | 86 | compare_rhs_binaryOp(test_tag, &expected_val, &observed_val); | ^^^^^^^^^^^^^ help: change this to: `observed_val` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow = note: `#[warn(clippy::needless_borrow)]` on by default warning: `assert!(false, ..)` should probably be replaced --> crates/nu-cli/src/completions/command_completions.rs:319:17 | 319 | assert!(false, "Merge delta has failed: {}", err); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: use `panic!(..)` or `unreachable!(..)` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants = note: `#[warn(clippy::assertions_on_constants)]` on by default warning: 1 warning emitted warning: `assert!(false, ..)` should probably be replaced --> crates/nu-cli/src/completions/completer.rs:600:13 | 600 | assert!(false, "Error merging delta: {:?}", err); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: use `panic!(..)` or `unreachable!(..)` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants warning: length comparison to zero --> crates/nu-cli/src/completions/completer.rs:620:24 | 620 | assert_eq!(result.len() > 0, has_result, "line: {}", line); | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!result.is_empty()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero = note: `#[warn(clippy::len_zero)]` on by default warning: equality checks against true are unnecessary --> crates/nu-cli/src/completions/completer.rs:632:33 | 632 | .filter(|x| *x == true) | ^^^^^^^^^^ help: try simplifying it as shown: `*x` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison = note: `#[warn(clippy::bool_comparison)]` on by default Checking nu v0.76.1 (/home/jaudiger/Development/git-repositories/jaudiger/nushell) warning: 4 warnings emitted warning: the borrowed expression implements the required traits --> crates/nu-command/tests/commands/cp.rs:26:40 | 26 | let first_hash = get_file_hash(&test_file.display()); | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `test_file.display()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow = note: `#[warn(clippy::needless_borrow)]` on by default warning: the borrowed expression implements the required traits --> crates/nu-command/tests/commands/cp.rs:178:13 | 178 | &jonathans_expected_copied_dir | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `jonathans_expected_copied_dir` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow warning: the borrowed expression implements the required traits --> crates/nu-command/tests/commands/cp.rs:182:13 | 182 | &andres_expected_copied_dir | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `andres_expected_copied_dir` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow warning: the borrowed expression implements the required traits --> crates/nu-command/tests/commands/cp.rs:186:13 | 186 | &yehudas_expected_copied_dir | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `yehudas_expected_copied_dir` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow warning: 4 warnings emitted ``` # User-Facing 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
ygguser
|
26c36e932e
|
README for nu-json. Related to nushell/nushell#8253 (#8289)
I propose to add such a README file for the nu-json crate. The crate is good, it is used also by others. However, on crates.io [its page](https://crates.io/crates/nu-json) looks uninformative. Related to https://github.com/nushell/nushell/issues/8253 --------- Co-authored-by: ygguser <there_is@no.email> |
||
johnny-byte
|
bd096430cb
|
remove extra allocation from nu-json (#8299)
# Description Remove unnecessary memory allocation # User-Facing 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. Co-authored-by: None <> |
||
JT
|
6148314dcd
|
print pipeline contents in print (#8305)
# Description Have `print` print it's input, so it's easier to print a pipeline (esp after we land #8292 and related) # User-Facing Changes `print` will now print its input, if there are no args given # 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
Jérémy Audiger
|
a7b5bd18ba
|
Shadow rs dep (#8298)
# Description While looking at the recent MR merged, I noticed that a dependency was no more used with https://github.com/nushell/nushell/pull/8280. # User-Facing 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
mike
|
e01eb42e74
|
fix NotAConstant error help message (#8293)
``` Error: nu::parser::not_a_constant (link) × Not a constant. ╭─[entry #23:1:1] 1 │ let file = "/home/user/file"; source $file · ──┬── · ╰── Value is not a parse-time constant ╰──── help: Only a subset of expressions are allowed constants during parsing. Try using the 'let' command or typing the value literally. ``` this pr changes the help message to 'Try using the `const` command ...' |
||
Jérémy Audiger
|
c1d76bfac7
|
Add unit tests for HTTP commands. (#8267)
# Description Following the comment from @fdncred: https://github.com/nushell/nushell/pull/8144#issuecomment-1442514338. I added some unit tests for HTTP commands. The tests are not exhaustive, but at least, this is a first good step IMO. # User-Facing 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
Reilly Wood
|
12483fac92
|
Use for instead of each in register-plugins.nu (#8284)
Tiny change, just avoids printing `empty list` when running `register-plugins.nu`. Context: https://github.com/nushell/nushell/pull/8014#issuecomment-1440733867 |
||
Doru
|
1a62d87a42
|
Make the default prompt play nice with basic fonts (#8080)
# Description This commit changes the `PROMPT_INDICATOR` and `PROMPT_INDICATOR_VI_NORMAL` in the default_env and sample_login files. It also changes its missing fallback in the prompt.rs file. This has the intention of making the default prompt friendlier when dealing with basic terminals that may not support displaying a huge range of the Unicode standard, or users who don't want to get out of their way to install custom fonts for their terminals. It's also nicer/more balanced on the eyes, to me, and brings it in line with the logo of nushell `nu>`. # User-Facing Changes New installations of nushell will have > as the default prompt indicator, and running `config reset` will also change it. This might be confusing for a few seconds, it could be minor enough that it just feels slightly off. Anyone who has, for some reason, unset the PROMPT_INDICATOR variable, or set it to $nothing, will also receive the `>` treatment. Users running on basic terminals (like cmd.exe on Windows 10) should no longer face font issues with the default basic prompt. # Drawbacks The Unicode arrow is pretty cool. And it predates many of us. Maybe it's worth keeping. One argument I could see, and mildly disagree with, is that it might make users lean towards installing a modern font for their terminal which will would have good consequences in the future. |
||
Antoine Stevan
|
2ccbefe01e
|
REFACTOR: move the standard library to a less-confusing place (#8265)
# Description
we've discussed a bit about the location of the standard library in the
#standard-library channel of the discord server => **the previous
location, `crates/nu-utils/src/sample_config/`, was a bit confusing**
- is `std.nu` a config file, just as `default_config.nu` or
`default_env.nu`?
- what is this `tests.nu` file inside the `sample_config/`?
in this PR, i propose moving the standard library to
`crates/nu-utils/standard_library/` for a few reasons:
- `std.nu` is not a config file, so it should not be next to config
files in a `sample_config/` directory
- `tests.nu` is confusing if mixed with other unrelated files
- `crates/nu-utils/` appears to be a good place for the standard library
as it is meant to be a tool for `nushell`
- i thought it would be strange to have `std.nu` inside
`crates/nu-utils/src/` as this directory is generally filled with `rust`
files, right?
these are the reasons why i choose to propose
`crates/nu-utils/standard_library/` 😋
# User-Facing Changes
the standard library is now used with
```bash
use crates/nu-utils/standard_library/std.nu
```
and the tests are run with
```bash
nu crates/nu-utils/standard_library/tests.nu
```
# Tests + Formatting
```bash
$nothing
```
# After Submitting
```bash
$nothing
```
|
||
Stefan Holderbach
|
438062d7fc
|
Document and critically review ShellError variants - Ep. 1 (#8229)
# Description The `ShellError` enum at the moment is kind of messy. Many variants are basic tuple structs where you always have to reference the implementation with its macro invocation to know which field serves which purpose. Furthermore we have both variants that are kind of redundant or either overly broad to be useful for the user to match on or overly specific with few uses. So I set out to start fixing the lacking documentation and naming to make it feasible to critically review the individual usages and fix those. Furthermore we can decide to join or split up variants that don't seem to be fit for purpose. Feel free to add review comments if you spot inconsistent use of `ShellError` variants. - Name fields on `ShellError::OperatorOverflow` - Name fields on `ShellError::PipelineMismatch` - Add doc to `ShellError::OnlySupportsThisInputType` - Name `ShellError::OnlySupportsThisInputType` - Name field on `ShellError::PipelineEmpty` - Comment about issues with `TypeMismatch*` - Fix a few `exp_input_type`s - Name fields on `ShellError::InvalidRange` # User-Facing Changes (None now, end goal more explicit and consistent error messages) # Tests + Formatting (No additional tests needed so far) |
||
Stefan Holderbach
|
0a1af85200
|
Fix codecov badge (#8279) | ||
Michael Angerman
|
5bf077d64f
|
remove left over build.rs from nu-command (#8280)
@fdncred pointed out to me that post creation of the nu-cmd-lang crate we probably don't need an extra build.rs file in nu-command any longer now that the version command (and build.rs) is located in nu-cmd-lang... I am removing the redundancy... |
||
WindSoilder
|
dec0a2517f
|
Throw out error if external command in subexpression is failed to run (#8204) | ||
Reilly Wood
|
324d625324
|
Fix CPU frequency in sys output (#8275)
The `sys | get cpu.freq` column (supposed to contain the frequency for each CPU core in megahertz) was incorrect for 2 reasons: 1. We weren't telling the `sysinfo` crate to refresh CPU frequency info 2. We were overwriting the values in the column with the systemwide physical core count. Whoops! ### Before ![image](https://user-images.githubusercontent.com/26268125/222045977-2c021c92-794f-4498-b12c-e3a1bbaa7483.png) ### After ![image](https://user-images.githubusercontent.com/26268125/222046066-ff8ccd21-3c47-4d7d-8f14-e0744822cd2d.png) ## Future work This PR does not fix https://github.com/nushell/nushell/issues/8264 ; the `cpu_usage` column is still incorrect. |
||
JT
|
e22b70acff
|
Remove the 'env' command, as we have the variable (#8185)
# Description Removes the `env` command, as the `$env` is generally a much better experience. # User-Facing Changes Breaking change: Removes `env`. # 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
Jérémy Audiger
|
a5c604c283
|
Uniformize usage() and extra_usage() message ending for commands helper. (#8268)
# Description Working on uniformizing the ending messages regarding methods usage() and extra_usage(). This is related to the issue https://github.com/nushell/nushell/issues/5066 after discussing it with @jntrnr # User-Facing 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
Ryan Devenney
|
644164fab3
|
math floor and ceil round to int rather than float #8258 (#8269)
# Description #8258 Math floor and ceil return int types rather than floats. # User-Facing Changes Before: ``` /home/rdevenney/projects/open_source/nushell〉[(3.14 | math ceil | describe), (3.14 | math floor | describe), (3 | math ceil | describe), (3 | math floor | describe)] ╭───┬───────╮ │ 0 │ float │ │ 1 │ float │ │ 2 │ int │ │ 3 │ int │ ╰───┴───────╯ ``` After: ``` /home/rdevenney/projects/open_source/nushell〉[(3.14 | math ceil | describe), (3.14 | math floor | describe), (3 | math ceil | describe), (3 | math floor | describe)] ╭───┬─────╮ │ 0 │ int │ │ 1 │ int │ │ 2 │ int │ │ 3 │ int │ ╰───┴─────╯ ``` # 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
Victor Wong
|
592e677caf
|
Type mismatch span fix #7288 (#8271)
# Description This change fixes the bug associated with an incorrect span in `type_mismatch` error message as described in #7288 The `span` argument in the method `into_value` was not being used to convert a `PipelineData::Value` type so when called in [eval_expression](https://github.com/nushell/nushell/blob/main/crates/nu-engine/src/eval.rs#L514-L515), the original expression's span was not being used to overwrite the result of `eval_subexpression`. # User-Facing Changes Using the example described in the issue, the whole bracketed subexpression is correctly underlined. Behavior before change: ``` let val = 10 ($val | into string) + $val Error: nu:🐚:type_mismatch × Type mismatch during operation. ╭─[entry #2:1:1] 1 │ ($val | into string) + $val · ─────┬───── ┬ ──┬─ · │ │ ╰── int · │ ╰── type mismatch for operator · ╰── string ╰──── ``` Behavior after change: ``` let val = 10 ($val | into string) + $val Error: nu:🐚:type_mismatch × Type mismatch during operation. ╭─[entry #2:1:1] 1 │ ($val | into string) + $val · ──────────┬───────── ┬ ──┬─ · │ │ ╰── int · │ ╰── type mismatch for operator · ╰── string ╰──── ``` # 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
Reilly Wood
|
cc7bdebc1c
|
Switch http to https in banner (#8272)
Changing `http` to `https` in the banner now that `https://nushell.sh` works: https://github.com/nushell/nushell.github.io/issues/294 |
||
Stefan Holderbach
|
27d798270b
|
Pull bleeding edge virtualenv tests again (#8262)
We previously pulled just the latest tags to be not dependent on potentially breaking tests from virtualenvs development. Effectively reverts #7638 |
||
Jérémy Audiger
|
50f1e33965
|
Fix insecure + max-time arguments for HTTP commands. (#8266)
# Description Follow up of https://github.com/nushell/nushell/pull/8255 Sorry about the max-time argument, I didn't pay attention to the copy-paste. Regarding the insecure argument, the problem was before I began to work on the refacto. My mistake was to not have tested this argument. # User-Facing 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
alesito85
|
ffc3727a1e
|
Fixes insecure and timeout flags (#8255)
# Description Fixes #8098 by properly parsing `insecure` flag and also fixes the `timeout` flag, which is described as `max-time` (from curl?). # User-Facing Changes The only change is that the flags now work. # Tests + Formatting Everything passes. # Screenshots Before ![image](https://user-images.githubusercontent.com/4399118/221845043-6dfba69d-daea-49a7-b55c-7ee628551b1c.png) After ![image](https://user-images.githubusercontent.com/4399118/221845382-0111cbe9-4ba6-4de1-9e2a-655efbc65a26.png) |
||
Michael Angerman
|
b093d5d10d
|
clean up nu-cmd-lang Cargo.toml (#8252)
Remove all un-used dependencies in nu-cmd-lang's Cargo.toml |
||
Antoine Stevan
|
9e589a9d93
|
FEATURE: add the first draft of the standard library (#8150)
hello there 👋 😋 as discussed over on the discord server, in `#standard-library`, there is this new project of putting together a bunch of "_standard_" scripts and functions and propose a `nushell` "_standard library_". this PR is the first one in that direction 🎉 > **Note** > ~~this PR is still a draft to have some feedback 😌~~ > this PR is now **READY FOR REVIEW** 🎉 # Description this PR implements the following few commands: - the `assert` familly with a private helper `_assert` - a version of the `match` statement i've also added some examples in the docstrings of the functions 👍 # User-Facing Changes the standard library can now be used with ```bash use crates/nu-utils/src/sample_config/std.nu ``` from the root of the `nushell` source # Tests + Formatting i've written a first draft of a [`tests.nu`](https://github.com/amtoine/nushell/blob/feature/first-draft-of-the-standard-library/crates/nu-utils/src/sample_config/tests.nu) module which - tests the `assert` familly of function in `test_assert` - tests the rest of the standard library in `tests` the tests are run with ```bash nu crates/nu-utils/src/sample_config/tests.nu ``` through the `main` function and should give no error 👍 > **Note** > if you change one of the test line, there should be an error popping when running the tests 😉 # After Submitting > **Warning** > to be coming |
||
Michael Angerman
|
f8d2bff283
|
cratification: Example support (#8231)
# Description When the crate nu_cmd_lang crate was created last week example_test.rs was copied over from nu_command to nu_cmd_lang. By doing this there was a set of methods in example_test.rs that existed in both crates... This PR removes the redundancy by moving all of those duplicated methods into the crate nu_test_support in a newly created file called example_support.rs _(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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
mike
|
0a2e711351
|
fix: allow subtraction of durations from dates (#8247)
`date` - `duration` is
[implemented](
|
||
baehyunsol
|
ba5258d716
|
remove unnecessary rows in into datetime --list (#8243)
Below is the result of `into datetime --list | uniq -d`. ``` ╭───┬───────────────┬─────────┬───────────────────────────────────────╮ │ # │ Specification │ Example │ Description │ ├───┼───────────────┼─────────┼───────────────────────────────────────┤ │ 0 │ %Y │ 2023 │ The full proleptic Gregorian year, │ │ │ │ │ zero-padded to 4 digits. │ │ 1 │ %C │ 20 │ The proleptic Gregorian year divided │ │ │ │ │ by 100, zero-padded to 2 digits. │ ╰───┴───────────────┴─────────┴───────────────────────────────────────╯ ``` It's supposed to be an empty table, but it has two rows. I removed the duplicates. # User-Facing Changes `into datetime --list` will print out a correct table. |
||
dependabot[bot]
|
c358400351
|
Bump procfs from 0.14.1 to 0.15.1 (#8233)
Bumps [procfs](https://github.com/eminence/procfs) from 0.14.1 to 0.15.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/eminence/procfs/releases">procfs's releases</a>.</em></p> <blockquote> <h2>v0.15.1</h2> <h2>New features</h2> <ul> <li>Change Stat::comm documentation by <a href="https://github.com/rust1248"><code>@rust1248</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/251">eminence/procfs#251</a></li> <li>Add docs and a as_str method to MMPermission by <a href="https://github.com/eminence"><code>@eminence</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/252">eminence/procfs#252</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/rust1248"><code>@rust1248</code></a> made their first contribution in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/251">eminence/procfs#251</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/eminence/procfs/compare/v0.15.0...v0.15.1">https://github.com/eminence/procfs/compare/v0.15.0...v0.15.1</a></p> <h2>v0.15.0</h2> <h2>New Features</h2> <ul> <li>Add /proc/iomem by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/216">eminence/procfs#216</a></li> <li>Add new functions to read various net files for a specific process by <a href="https://github.com/eminence"><code>@eminence</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/226">eminence/procfs#226</a></li> <li>add /proc/kpageflags by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/233">eminence/procfs#233</a></li> <li>Enable oppportunistic fd counting fast path by <a href="https://github.com/bobrik"><code>@bobrik</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/234">eminence/procfs#234</a></li> <li>add /proc/kpagecount by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/232">eminence/procfs#232</a></li> <li>Add new <code>/proc/meminfo</code> fields. by <a href="https://github.com/afranchuk"><code>@afranchuk</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/238">eminence/procfs#238</a></li> <li>impl Hash for kernel version by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/240">eminence/procfs#240</a></li> </ul> <h2>Bug fixes</h2> <ul> <li>fix chrono::Local::timestamp deprecated in chrono 0.4.23 by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/220">eminence/procfs#220</a></li> <li>Fix some minor documentation issues by <a href="https://github.com/eminence"><code>@eminence</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/225">eminence/procfs#225</a></li> <li>Fixes the reported path when a task's function returns an error by <a href="https://github.com/eminence"><code>@eminence</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/230">eminence/procfs#230</a></li> <li>fix shm size type by <a href="https://github.com/tatref"><code>@tatref</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/243">eminence/procfs#243</a></li> </ul> <h2>Breaking changes</h2> <ul> <li>ticks_per_second and page_size are infallible by <a href="https://github.com/eminence"><code>@eminence</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/235">eminence/procfs#235</a></li> <li>parse uid for /proc/net/{tcp,udp} by <a href="https://github.com/trinity-1686a"><code>@trinity-1686a</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/231">eminence/procfs#231</a></li> <li>Refactor and expose memory map processing. by <a href="https://github.com/afranchuk"><code>@afranchuk</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/237">eminence/procfs#237</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/trinity-1686a"><code>@trinity-1686a</code></a> made their first contribution in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/231">eminence/procfs#231</a></li> <li><a href="https://github.com/afranchuk"><code>@afranchuk</code></a> made their first contribution in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/238">eminence/procfs#238</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/eminence/procfs/compare/v0.14.2...v0.15.0">https://github.com/eminence/procfs/compare/v0.14.2...v0.15.0</a></p> <h2>MSRV Note</h2> <p>This <code>v0.15</code> release is only tested against the latest stable rust compiler, but is known to work with older versions (down to rust 1.48). Support for these older compilers may break in <code>procfs</code> patch releases. See also <a href="https://github-redirect.dependabot.com/eminence/procfs/issues/223">#223</a></p> <h2>v0.14.2</h2> <h2>New Features</h2> <ul> <li>Process: Namespace: Use openat instead of building a path by <a href="https://github.com/arilou"><code>@arilou</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/192">eminence/procfs#192</a></li> <li>add serde serialize/deserialize derives for public types by <a href="https://github.com/eliad-wiz"><code>@eliad-wiz</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/193">eminence/procfs#193</a></li> <li>Disabling default features on the <code>chrono</code> crate by <a href="https://github.com/Will-Low"><code>@Will-Low</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/210">eminence/procfs#210</a></li> <li>Implement smaps_rollup by <a href="https://github.com/TaborKelly"><code>@TaborKelly</code></a> in <a href="https://github-redirect.dependabot.com/eminence/procfs/pull/214">eminence/procfs#214</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Jakub Žádník
|
a3f817d71b
|
Re-implement aliases (#8123)
# Description This PR adds an alternative alias implementation. Old aliases still work but you need to use `old-alias` instead of `alias`. Instead of replacing spans in the original code and re-parsing, which proved to be extremely error-prone and a constant source of panics, the new implementation creates a new command that references the old command. Consider the new alias defined as `alias ll = ls -l`. The parser creates a new command called `ll` and remembers that it is actually a `ls` command called with the `-l` flag. Then, when the parser sees the `ll` command, it will translate it to `ls -l` and passes to it any parameters that were passed to the call to `ll`. It works quite similar to how known externals defined with `extern` are implemented. The new alias implementation should work the same way as the old aliases, including exporting from modules, referencing both known and unknown externals. It seems to preserve custom completions and pipeline metadata. It is quite robust in most cases but there are some rough edges (see later). Fixes https://github.com/nushell/nushell/issues/7648, https://github.com/nushell/nushell/issues/8026, https://github.com/nushell/nushell/issues/7512, https://github.com/nushell/nushell/issues/5780, https://github.com/nushell/nushell/issues/7754 No effect: https://github.com/nushell/nushell/issues/8122 (we might revisit the completions code after this PR) Should use custom command instead: https://github.com/nushell/nushell/issues/6048 # User-Facing Changes Since aliases are now basically commands, it has some new implications: 1. `alias spam = "spam"` (requires command call) * **workaround**: use `alias spam = echo "spam"` 2. `def foo [] { 'foo' }; alias foo = ls -l` (foo defined more than once) * **workaround**: use different name (commands also have this limitation) 4. `alias ls = (ls | sort-by type name -i)` * **workaround**: Use custom command. _The common issue with this is that it is currently not easy to pass flags through custom commands and command referencing itself will lead to stack overflow. Both of these issues are meant to be addressed._ 5. TODO: Help messages, `which` command, `$nu.scope.aliases`, etc. * Should we treat the aliases as commands or should they be separated from regular commands? 6. Needs better error message and syntax highlight for recursed alias (`alias f = f`) 7. Can't create alias with the same name as existing command (`alias ls = ls -a`) * Might be possible to add support for it (not 100% sure) 8. Standalone `alias` doesn't list aliases anymore 9. Can't alias parser keywords (e.g., stuff like `alias ou = overlay use` won't work) * TODO: Needs a better error message when attempting to do so # 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # 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. |
||
Gustavo Maia
|
c6e2607868
|
Add Remove welcome message tutorial (#8217)
# Description Added message sending to docs to how to remove message tutorial: ![welcome message](https://user-images.githubusercontent.com/67283753/221384655-9218c256-b4d6-44e5-95c6-68c50c235cb7.png) # User-Facing Changes - Easy to find how to remove Welcome Message Fixes #8216 issue |
||
dependabot[bot]
|
a29da8c95b
|
Bump actions-rust-lang/setup-rust-toolchain from 1.4.2 to 1.4.3 (#8239)
Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.4.2 to 1.4.3. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md">actions-rust-lang/setup-rust-toolchain's changelog</a>.</em></p> <blockquote> <h2>[1.4.3] - 2023-02-21</h2> <h3>Fixed</h3> <ul> <li>Executing the action twice for different toolchains now no longer fails around unstable features <a href="https://github-redirect.dependabot.com/actions-rust-lang/setup-rust-toolchain/issues/12">#12</a>. If multiple toolchains are installed, the "CARGO_REGISTRIES_CRATES_IO_PROTOCOL" can be downgraded to "git" if any of the installed toolchains require it.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
a09aaf3495
|
Bump csv from 1.1.6 to 1.2.0 (#8235)
Bumps [csv](https://github.com/BurntSushi/rust-csv) from 1.1.6 to 1.2.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
ffc8e752a5
|
Bump bytesize from 1.1.0 to 1.2.0 (#8236)
Bumps [bytesize](https://github.com/hyunsik/bytesize) from 1.1.0 to 1.2.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/hyunsik/bytesize/releases">bytesize's releases</a>.</em></p> <blockquote> <h2>Release 1.2.0</h2> <h2>Changes</h2> <ul> <li>serde improvements <a href="https://github-redirect.dependabot.com/hyunsik/bytesize/issues/29">#29</a> (<a href="https://github.com/joeroback"><code>@joeroback</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
6ca07b87b9
|
Bump sysinfo from 0.27.7 to 0.28.0 (#8237)
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo) from 0.27.7 to 0.28.0. <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.28.0</h1> <ul> <li>Linux: Fix name and CPU usage for processes tasks.</li> <li>unix: Keep all users, even "not real" accounts.</li> <li>Windows: Use SID for Users ID.</li> <li>Fix C API.</li> <li>Disable default cdylib compilation.</li> <li>Add <code>serde</code> feature to enable serialization.</li> <li>Linux: Handle <code>Idle</code> state in <code>ProcessStatus</code>.</li> <li>Linux: Add brand and name of ARM CPUs.</li> </ul> <h1>0.27.8</h1> <ul> <li>macOS: Fix overflow when computing CPU usage.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/GuillaumeGomez/sysinfo/commits">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sysinfo&package-manager=cargo&previous-version=0.27.7&new-version=0.28.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 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]
|
49e45915f0
|
Bump actions/checkout from 2 to 3 (#8240)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p> <blockquote> <h2>v3.0.0</h2> <ul> <li>Updated to the node16 runtime by default <ul> <li>This requires a minimum <a href="https://github.com/actions/runner/releases/tag/v2.285.0">Actions Runner</a> version of v2.285.0 to run, which is by default available in GHES 3.4 or later.</li> </ul> </li> </ul> <h2>v2.6.0</h2> <h2>What's Changed</h2> <ul> <li>Add backports to v2 branch by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://github-redirect.dependabot.com/actions/checkout/pull/1040">actions/checkout#1040</a> <ul> <li>Includes backports from the following changes: <a href="https://github-redirect.dependabot.com/actions/checkout/pull/964">actions/checkout#964</a>, <a href="https://github-redirect.dependabot.com/actions/checkout/pull/1002">actions/checkout#1002</a>, <a href="https://github-redirect.dependabot.com/actions/checkout/pull/1029">actions/checkout#1029</a></li> <li>Upgraded the licensed version to match what is used in v3.</li> </ul> </li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v2.5.0...v2.6.0">https://github.com/actions/checkout/compare/v2.5.0...v2.6.0</a></p> <h2>v2.5.0</h2> <h2>What's Changed</h2> <ul> <li>Update <code>@actions/core</code> to 1.10.0 by <a href="https://github.com/rentziass"><code>@rentziass</code></a> in <a href="https://github-redirect.dependabot.com/actions/checkout/pull/962">actions/checkout#962</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v2...v2.5.0">https://github.com/actions/checkout/compare/v2...v2.5.0</a></p> <h2>v2.4.2</h2> <h2>What's Changed</h2> <ul> <li>Add set-safe-directory input to allow customers to take control. (<a href="https://github-redirect.dependabot.com/actions/checkout/issues/770">#770</a>) by <a href="https://github.com/TingluoHuang"><code>@TingluoHuang</code></a> in <a href="https://github-redirect.dependabot.com/actions/checkout/pull/776">actions/checkout#776</a></li> <li>Prepare changelog for v2.4.2. by <a href="https://github.com/TingluoHuang"><code>@TingluoHuang</code></a> in <a href="https://github-redirect.dependabot.com/actions/checkout/pull/778">actions/checkout#778</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v2...v2.4.2">https://github.com/actions/checkout/compare/v2...v2.4.2</a></p> <h2>v2.4.1</h2> <ul> <li>Fixed an issue where checkout failed to run in container jobs due to the new git setting <code>safe.directory</code></li> </ul> <h2>v2.4.0</h2> <ul> <li>Convert SSH URLs like <code>org-<ORG_ID>@github.com:</code> to <code>https://github.com/</code> - <a href="https://github-redirect.dependabot.com/actions/checkout/pull/621">pr</a></li> </ul> <h2>v2.3.5</h2> <p>Update dependencies</p> <h2>v2.3.4</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/379">Add missing <code>await</code>s</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/360">Swap to Environment Files</a></li> </ul> <h2>v2.3.3</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/345">Remove Unneeded commit information from build logs</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/326">Add Licensed to verify third party dependencies</a></li> </ul> <h2>v2.3.2</h2> <p><a href="https://github-redirect.dependabot.com/actions/checkout/pull/320">Add Third Party License Information to Dist Files</a></p> <h2>v2.3.1</h2> <p><a href="https://github-redirect.dependabot.com/actions/checkout/pull/284">Fix default branch resolution for .wiki and when using SSH</a></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>v3.1.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/939">Use <code>@actions/core</code> <code>saveState</code> and <code>getState</code></a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/922">Add <code>github-server-url</code> input</a></li> </ul> <h2>v3.0.2</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/770">Add input <code>set-safe-directory</code></a></li> </ul> <h2>v3.0.1</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/762">Fixed an issue where checkout failed to run in container jobs due to the new git setting <code>safe.directory</code></a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/744">Bumped various npm package versions</a></li> </ul> <h2>v3.0.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/689">Update to node 16</a></li> </ul> <h2>v2.3.1</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/284">Fix default branch resolution for .wiki and when using SSH</a></li> </ul> <h2>v2.3.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/278">Fallback to the default branch</a></li> </ul> <h2>v2.2.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/258">Fetch all history for all tags and branches when fetch-depth=0</a></li> </ul> <h2>v2.1.1</h2> <ul> <li>Changes to support GHES (<a href="https://github-redirect.dependabot.com/actions/checkout/pull/236">here</a> and <a href="https://github-redirect.dependabot.com/actions/checkout/pull/248">here</a>)</li> </ul> <h2>v2.1.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/191">Group output</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/199">Changes to support GHES alpha release</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/184">Persist core.sshCommand for submodules</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/163">Add support ssh</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/179">Convert submodule SSH URL to HTTPS, when not using SSH</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/157">Add submodule support</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/144">Follow proxy settings</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/141">Fix ref for pr closed event when a pr is merged</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/128">Fix issue checking detached when git less than 2.22</a></li> </ul> <h2>v2.0.0</h2> <ul> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/108">Do not pass cred on command line</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/107">Add input persist-credentials</a></li> <li><a href="https://github-redirect.dependabot.com/actions/checkout/pull/104">Fallback to REST API to download repo</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
David Matos
|
96e3a3de68
|
Error out when Select gets same row (#8200)
# Description Fixes #8145, by disallowing any rows that are duplicated. ``` ❯ ls | select 0 0 Error: × Select only allows unique rows ╭─[entry #1:1:1] 1 │ ls | select 0 0 · ┬ · ╰── duplicated row ╰──── ``` # User-Facing 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: - [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 -A clippy::needless_collect` to check that you're using the standard code style - [X] `cargo test --workspace` to check that all tests pass # 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. --------- Co-authored-by: Reilly Wood <reilly.wood@icloud.com> |
||
Reilly Wood
|
2aa5c2c41f
|
Simplify str trim command (#8205)
### What? This change removes 3 flags (`--all`, `--both`, and `--format`) from `str trim`. This is a net reduction of ~450 LoC and `str trim` no longer depends on `fancy_regex`. ### Why? I found these flags to be quite confusing when reviewing `str trim` earlier today: 1. `--all` removes characters even if they're in the centre of the the string. - This is arguably not "trimming"! In all programming languages I'm familiar with, trimming only affects the start and end of a string. - If someone needs to do this, `str replace` is more natural IMO 2. `--both` trims from the left and right - Confusing and unnecessary given that this is also the default behaviour 3. `--format` replaces multiple spaces with a single space, even in the centre of the string - Again, I don't think this falls under the scope of "trimming". IMO `str replace` is a more natural fit I believe that `str trim` is simpler and easier to understand after this change. ### Before ``` 〉help str trim Trim whitespace or specific character Search terms: whitespace, strip, lstrip, rstrip Usage: > str trim {flags} ...(rest) Flags: -h, --help - Display the help message for this command -c, --char <String> - character to trim (default: whitespace) -l, --left - trims characters only from the beginning of the string -r, --right - trims characters only from the end of the string -a, --all - trims all characters from both sides of the string *and* in the middle -b, --both - trims all characters from left and right side of the string -f, --format - trims spaces replacing multiple characters with singles in the middle ``` ### After ``` 〉help str trim Trim whitespace or specific character Search terms: whitespace, strip, lstrip, rstrip Usage: > str trim {flags} ...(rest) Flags: -h, --help - Display the help message for this command -c, --char <String> - character to trim (default: whitespace) -l, --left - trims characters only from the beginning of the string -r, --right - trims characters only from the end of the string ``` |
||
Xoffio
|
4b3e3a37a3
|
Ctrl+c interruption - cp command (#8219)
# Description if you try to copy a big file with `cp` you will noticed that you can't interrupt the process. This pull request fix that. This was discuss here https://github.com/nushell/nushell/pull/8012#issuecomment-1427313054 # User-Facing Changes None # Tests + Formatting - Check - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - Check - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - Check - `cargo test --workspace` to check that all tests pass --------- Co-authored-by: Reilly Wood <reilly.wood@icloud.com> |
||
Antoine Stevan
|
2492165fcb
|
FEATURE: print example command results in the help (#8189)
Should close #8035. > **Note** > this is my first technical PR for `nushell` > - i might very well miss things > - i tried to be as complete as possible about the changes > - please require further changes if i did something wrong, i'm open to any remark 😌 # Description this PR adds, when it is defined in the `examples` method of the `Command` implementations, the output of the examples to the output of the `help` command. this PR - only modifies `crates/nu-engine/src/documentation.rs` and the `get_documentation` function - defines a new `WD` constant to print a **W**hite **D**immed `...` - a `match` statement at the end of the example loop to - print a white dimmed `...` when the example is not set, i.e. set to `None` in the `examples` method of the `Command` implementation of a command - pretty print the output of the associated example `Value` when it has been defined > **Warning** > LIMITATIONS: > - i use snippets from `crates/nu-protocol/src/pipeline_data.rs` > - the table creation from `pub PipelineData::print`, i.e. the `let decl_id = ...;` and `let table = ...;` in the change > - the table item printing from `PipelineData::write_all_and_flush`, i.e. the `for item in table { ... }` > > ADDRESSED: > - ~~the formatting of the output is not perfect and has to be fully left aligned with the first column for now~~ (fixed with [`5abeefd558c34ba9bae15e2f183ff4625442921e`..`a62be1b5a2c730959da5dbc028bb91ffe5093f63`](5abeefd558c34ba9bae15e2f183ff4625442921e..a62be1b5a2c730959da5dbc028bb91ffe5093f63)) > - ~~i'm using `.unwrap()` on both the changes above, not sure how to handle this for now~~ (fixed for now thanks to |
||
Doru
|
c602b5a1e8
|
special-case ExternalStream in bytes starts-with (#8203)
# Description `bytes starts-with` converts the input into a `Value` before running .starts_with to find if the binary matches. This has two side effects: it makes the code simpler, only dealing in whole values, and simplifying a lot of input pipeline handling and value transforming it would otherwise have to do. _Especially_ in the presence of a cell path to drill into. It also makes buffers the entire input into memory, which can take up a lot of memory when dealing with large files, especially if you only want to check the first few bytes (like for a magic number). This PR adds a special branch on PipelineData::ExternalStream with a streaming version of starts_with. # User-Facing Changes Opening large files and running bytes starts-with on them will not take a long time. # 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 -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # Drawbacks Streaming checking is more complicated, and there may be bugs. I tested it with multiple chunks with string data and binary data and it seems to work alright up to 8k and over bytes, though. The existing `operate` method still exists because the way it handles cell paths and values is complicated. This causes some "code duplication", or at least some intent duplication, between the value code and the streaming code. This might be worthwhile considering the performance gains (approaching infinity on larger inputs). Another thing to consider is that my ExternalStream branch considers string data as valid input. The operate branch only parses Binary values, so it would fail. `open` is kind of unpredictable on whether it returns string data or binary data, even when passing `--raw`. I think this can be a problem but not really one I'm trying to tackle in this PR, so, it's worth considering. |