From 40772fea15a31dddfa721be871af2185a99a1947 Mon Sep 17 00:00:00 2001 From: Wind Date: Thu, 30 May 2024 21:29:46 +0800 Subject: [PATCH 01/19] fix do closure with both required, options, and rest args (#13002) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description Fixes: #12985 `val_iter` has already handle required positional and optional positional arguments, it not skip them again while handling rest arguments. # User-Facing Changes Makes `do {|a, ...b| echo $a ...$b} 1 2 3 4` output the following again: ```nushell ╭───┬───╮ │ 0 │ 1 │ │ 1 │ 2 │ │ 2 │ 3 │ │ 3 │ 4 │ ╰───┴───╯ ``` # Tests + Formatting Added some test cases --- crates/nu-cmd-lang/src/core_commands/do_.rs | 4 +--- tests/shell/pipeline/commands/internal.rs | 9 +++++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/crates/nu-cmd-lang/src/core_commands/do_.rs b/crates/nu-cmd-lang/src/core_commands/do_.rs index 5f14e88c07..8ca3fbac56 100644 --- a/crates/nu-cmd-lang/src/core_commands/do_.rs +++ b/crates/nu-cmd-lang/src/core_commands/do_.rs @@ -298,9 +298,7 @@ fn bind_args_to( if let Some(rest_positional) = &signature.rest_positional { let mut rest_items = vec![]; - for result in - val_iter.skip(signature.required_positional.len() + signature.optional_positional.len()) - { + for result in val_iter { rest_items.push(result); } diff --git a/tests/shell/pipeline/commands/internal.rs b/tests/shell/pipeline/commands/internal.rs index 67d4ee31a9..98f3fb88c9 100644 --- a/tests/shell/pipeline/commands/internal.rs +++ b/tests/shell/pipeline/commands/internal.rs @@ -539,6 +539,15 @@ fn dynamic_closure_optional_arg() { fn dynamic_closure_rest_args() { let actual = nu!(r#"let closure = {|...args| $args | str join ""}; do $closure 1 2 3"#); assert_eq!(actual.out, "123"); + + let actual = nu!( + r#"let closure = {|required, ...args| $"($required), ($args | str join "")"}; do $closure 1 2 3"# + ); + assert_eq!(actual.out, "1, 23"); + let actual = nu!( + r#"let closure = {|required, optional?, ...args| $"($required), ($optional), ($args | str join "")"}; do $closure 1 2 3"# + ); + assert_eq!(actual.out, "1, 2, 3"); } #[cfg(feature = "which-support")] From 31f3d2f6642b585f0d88192724723bf0ce330ecf Mon Sep 17 00:00:00 2001 From: Ian Manske Date: Thu, 30 May 2024 13:42:22 +0000 Subject: [PATCH 02/19] Restore `path type` behavior (#13006) # Description Restores `path type` to return an empty string on error like it did pre 0.94.0. --- crates/nu-command/src/path/type.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/crates/nu-command/src/path/type.rs b/crates/nu-command/src/path/type.rs index e048679220..0897593109 100644 --- a/crates/nu-command/src/path/type.rs +++ b/crates/nu-command/src/path/type.rs @@ -104,10 +104,9 @@ If nothing is found, an empty string will be returned."# fn path_type(path: &Path, span: Span, args: &Arguments) -> Value { let path = nu_path::expand_path_with(path, &args.pwd, true); - match std::fs::symlink_metadata(path) { - Ok(metadata) => Value::string(get_file_type(&metadata), span), - Err(err) => Value::error(err.into(), span), - } + let meta = path.symlink_metadata(); + let ty = meta.as_ref().map(get_file_type).unwrap_or(""); + Value::string(ty, span) } fn get_file_type(md: &std::fs::Metadata) -> &str { From f3cf693ec701ab3086f984a8aeadfc9b50fadd90 Mon Sep 17 00:00:00 2001 From: Ian Manske Date: Thu, 30 May 2024 19:24:48 +0000 Subject: [PATCH 03/19] Disallow more characters in arguments for internal `cmd` commands (#13009) # Description Makes `run-external` error if arguments to `cmd.exe` internal commands contain newlines or a percent sign. This is because the percent sign can expand environment variables, potentially? allowing command injection. Newlines I think will truncate the rest of the arguments and should probably be disallowed to be safe. # After Submitting - If the user calls `cmd.exe` directly, then this bypasses our handling/checking for internal `cmd` commands. Instead, we use the handling from the Rust std lib which, in this case, does not do special handling and is potentially unsafe. Then again, it could be the user's specific intention to run `cmd` with whatever trusted input. The problem is that since we use the std lib handling, it assumes the exe uses the C runtime escaping rules and will perform some unwanted escaping. E.g., it will add backslashes to the quotes in `cmd echo /c '""'`. - If `cmd` is called indirectly via a `.bat` or `.cmd` file, then we use the Rust std lib which has separate handling for bat files that should be safe, but will reject some inputs. - ~~I'm not sure how we handle `PATHEXT`, that can also cause a file without an extension to be run as a bat file. If so, I don't know where the handling, if any, is done for that.~~ It looks like we use the `which` crate to do the lookup using `PATHEXT`. Then, we pass the exe path from that to the Rust std lib `Command`, which should be safe (except for the first `cmd.exe` note). So, in the future we need to unify and/or fix these different implementations, including our own special handling for internal `cmd` commands that this PR tries to fix. --- crates/nu-command/src/system/run_external.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/crates/nu-command/src/system/run_external.rs b/crates/nu-command/src/system/run_external.rs index 69c4a319bb..a200ce75de 100644 --- a/crates/nu-command/src/system/run_external.rs +++ b/crates/nu-command/src/system/run_external.rs @@ -565,12 +565,20 @@ fn has_cmd_special_character(s: &str) -> bool { SPECIAL_CHARS.iter().any(|c| s.contains(*c)) } -/// Escape an argument for CMD internal commands. The result can be safely -/// passed to `raw_arg()`. +/// Escape an argument for CMD internal commands. The result can be safely passed to `raw_arg()`. #[cfg(windows)] fn escape_cmd_argument(arg: &Spanned) -> Result, ShellError> { let Spanned { item: arg, span } = arg; - if arg.contains('"') { + if arg.contains(['\r', '\n', '%']) { + // \r and \n trunacte the rest of the arguments and % can expand environment variables + Err(ShellError::ExternalCommand { + label: + "Arguments to CMD internal commands cannot contain new lines or percent signs '%'" + .into(), + help: "some characters currently cannot be securely escaped".into(), + span: *span, + }) + } else if arg.contains('"') { // If `arg` is already quoted by double quotes, confirm there's no // embedded double quotes, then leave it as is. if arg.chars().filter(|c| *c == '"').count() == 2 @@ -582,7 +590,7 @@ fn escape_cmd_argument(arg: &Spanned) -> Result, ShellError Err(ShellError::ExternalCommand { label: "Arguments to CMD internal commands cannot contain embedded double quotes" .into(), - help: "CMD doesn't support escaping double quotes inside double quotes".into(), + help: "this case currently cannot be securely handled".into(), span: *span, }) } @@ -590,6 +598,7 @@ fn escape_cmd_argument(arg: &Spanned) -> Result, ShellError // If `arg` contains space or special characters, quote the entire argument by double quotes. Ok(Cow::Owned(format!("\"{arg}\""))) } else { + // FIXME?: what if `arg.is_empty()`? Ok(Cow::Borrowed(arg)) } } From 6635b74d9d8d71ae6813a1bfaa3b977f792723a4 Mon Sep 17 00:00:00 2001 From: Devyn Cairns Date: Mon, 3 Jun 2024 00:28:35 -0700 Subject: [PATCH 04/19] Bump version to `0.94.2` (#13014) Version bump after 0.94.1 patch release. --- Cargo.lock | 72 +++++++++---------- Cargo.toml | 40 +++++------ crates/nu-cli/Cargo.toml | 24 +++---- crates/nu-cmd-base/Cargo.toml | 10 +-- crates/nu-cmd-extra/Cargo.toml | 22 +++--- crates/nu-cmd-lang/Cargo.toml | 10 +-- crates/nu-cmd-plugin/Cargo.toml | 10 +-- crates/nu-color-config/Cargo.toml | 10 +-- crates/nu-command/Cargo.toml | 34 ++++----- crates/nu-engine/Cargo.toml | 10 +-- crates/nu-explore/Cargo.toml | 18 ++--- crates/nu-glob/Cargo.toml | 2 +- crates/nu-json/Cargo.toml | 4 +- crates/nu-lsp/Cargo.toml | 14 ++-- crates/nu-parser/Cargo.toml | 10 +-- crates/nu-path/Cargo.toml | 2 +- crates/nu-plugin-core/Cargo.toml | 6 +- crates/nu-plugin-engine/Cargo.toml | 12 ++-- crates/nu-plugin-protocol/Cargo.toml | 6 +- crates/nu-plugin-test-support/Cargo.toml | 18 ++--- crates/nu-plugin/Cargo.toml | 10 +-- crates/nu-pretty-hex/Cargo.toml | 2 +- crates/nu-protocol/Cargo.toml | 10 +-- crates/nu-std/Cargo.toml | 8 +-- crates/nu-system/Cargo.toml | 2 +- crates/nu-table/Cargo.toml | 12 ++-- crates/nu-term-grid/Cargo.toml | 4 +- crates/nu-test-support/Cargo.toml | 8 +-- crates/nu-utils/Cargo.toml | 2 +- .../src/sample_config/default_config.nu | 2 +- .../nu-utils/src/sample_config/default_env.nu | 2 +- crates/nu_plugin_custom_values/Cargo.toml | 6 +- crates/nu_plugin_example/Cargo.toml | 10 +-- crates/nu_plugin_formats/Cargo.toml | 8 +-- crates/nu_plugin_gstat/Cargo.toml | 6 +- crates/nu_plugin_inc/Cargo.toml | 6 +- .../nu_plugin_nu_example.nu | 2 +- crates/nu_plugin_polars/Cargo.toml | 18 ++--- .../nu_plugin_python_example.py | 2 +- crates/nu_plugin_query/Cargo.toml | 6 +- crates/nu_plugin_stress_internals/Cargo.toml | 2 +- crates/nuon/Cargo.toml | 8 +-- 42 files changed, 235 insertions(+), 235 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2d339ec7da..23cafeefda 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2770,7 +2770,7 @@ dependencies = [ [[package]] name = "nu" -version = "0.94.1" +version = "0.94.2" dependencies = [ "assert_cmd", "crossterm", @@ -2823,7 +2823,7 @@ dependencies = [ [[package]] name = "nu-cli" -version = "0.94.1" +version = "0.94.2" dependencies = [ "chrono", "crossterm", @@ -2858,7 +2858,7 @@ dependencies = [ [[package]] name = "nu-cmd-base" -version = "0.94.1" +version = "0.94.2" dependencies = [ "indexmap", "miette", @@ -2870,7 +2870,7 @@ dependencies = [ [[package]] name = "nu-cmd-extra" -version = "0.94.1" +version = "0.94.2" dependencies = [ "fancy-regex", "heck 0.5.0", @@ -2895,7 +2895,7 @@ dependencies = [ [[package]] name = "nu-cmd-lang" -version = "0.94.1" +version = "0.94.2" dependencies = [ "itertools 0.12.1", "nu-engine", @@ -2907,7 +2907,7 @@ dependencies = [ [[package]] name = "nu-cmd-plugin" -version = "0.94.1" +version = "0.94.2" dependencies = [ "itertools 0.12.1", "nu-engine", @@ -2918,7 +2918,7 @@ dependencies = [ [[package]] name = "nu-color-config" -version = "0.94.1" +version = "0.94.2" dependencies = [ "nu-ansi-term", "nu-engine", @@ -2930,7 +2930,7 @@ dependencies = [ [[package]] name = "nu-command" -version = "0.94.1" +version = "0.94.2" dependencies = [ "alphanumeric-sort", "base64 0.22.1", @@ -3039,7 +3039,7 @@ dependencies = [ [[package]] name = "nu-engine" -version = "0.94.1" +version = "0.94.2" dependencies = [ "nu-glob", "nu-path", @@ -3049,7 +3049,7 @@ dependencies = [ [[package]] name = "nu-explore" -version = "0.94.1" +version = "0.94.2" dependencies = [ "ansi-str", "anyhow", @@ -3074,14 +3074,14 @@ dependencies = [ [[package]] name = "nu-glob" -version = "0.94.1" +version = "0.94.2" dependencies = [ "doc-comment", ] [[package]] name = "nu-json" -version = "0.94.1" +version = "0.94.2" dependencies = [ "linked-hash-map", "num-traits", @@ -3091,7 +3091,7 @@ dependencies = [ [[package]] name = "nu-lsp" -version = "0.94.1" +version = "0.94.2" dependencies = [ "assert-json-diff", "crossbeam-channel", @@ -3112,7 +3112,7 @@ dependencies = [ [[package]] name = "nu-parser" -version = "0.94.1" +version = "0.94.2" dependencies = [ "bytesize", "chrono", @@ -3128,7 +3128,7 @@ dependencies = [ [[package]] name = "nu-path" -version = "0.94.1" +version = "0.94.2" dependencies = [ "dirs-next", "omnipath", @@ -3137,7 +3137,7 @@ dependencies = [ [[package]] name = "nu-plugin" -version = "0.94.1" +version = "0.94.2" dependencies = [ "log", "nix", @@ -3152,7 +3152,7 @@ dependencies = [ [[package]] name = "nu-plugin-core" -version = "0.94.1" +version = "0.94.2" dependencies = [ "interprocess", "log", @@ -3166,7 +3166,7 @@ dependencies = [ [[package]] name = "nu-plugin-engine" -version = "0.94.1" +version = "0.94.2" dependencies = [ "log", "nu-engine", @@ -3181,7 +3181,7 @@ dependencies = [ [[package]] name = "nu-plugin-protocol" -version = "0.94.1" +version = "0.94.2" dependencies = [ "bincode", "nu-protocol", @@ -3193,7 +3193,7 @@ dependencies = [ [[package]] name = "nu-plugin-test-support" -version = "0.94.1" +version = "0.94.2" dependencies = [ "nu-ansi-term", "nu-cmd-lang", @@ -3211,7 +3211,7 @@ dependencies = [ [[package]] name = "nu-pretty-hex" -version = "0.94.1" +version = "0.94.2" dependencies = [ "heapless", "nu-ansi-term", @@ -3220,7 +3220,7 @@ dependencies = [ [[package]] name = "nu-protocol" -version = "0.94.1" +version = "0.94.2" dependencies = [ "brotli 5.0.0", "byte-unit", @@ -3251,7 +3251,7 @@ dependencies = [ [[package]] name = "nu-std" -version = "0.94.1" +version = "0.94.2" dependencies = [ "log", "miette", @@ -3262,7 +3262,7 @@ dependencies = [ [[package]] name = "nu-system" -version = "0.94.1" +version = "0.94.2" dependencies = [ "chrono", "itertools 0.12.1", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "nu-table" -version = "0.94.1" +version = "0.94.2" dependencies = [ "fancy-regex", "nu-ansi-term", @@ -3294,7 +3294,7 @@ dependencies = [ [[package]] name = "nu-term-grid" -version = "0.94.1" +version = "0.94.2" dependencies = [ "nu-utils", "unicode-width", @@ -3302,7 +3302,7 @@ dependencies = [ [[package]] name = "nu-test-support" -version = "0.94.1" +version = "0.94.2" dependencies = [ "nu-glob", "nu-path", @@ -3314,7 +3314,7 @@ dependencies = [ [[package]] name = "nu-utils" -version = "0.94.1" +version = "0.94.2" dependencies = [ "crossterm_winapi", "log", @@ -3340,7 +3340,7 @@ dependencies = [ [[package]] name = "nu_plugin_example" -version = "0.94.1" +version = "0.94.2" dependencies = [ "nu-cmd-lang", "nu-plugin", @@ -3350,7 +3350,7 @@ dependencies = [ [[package]] name = "nu_plugin_formats" -version = "0.94.1" +version = "0.94.2" dependencies = [ "eml-parser", "ical", @@ -3363,7 +3363,7 @@ dependencies = [ [[package]] name = "nu_plugin_gstat" -version = "0.94.1" +version = "0.94.2" dependencies = [ "git2", "nu-plugin", @@ -3372,7 +3372,7 @@ dependencies = [ [[package]] name = "nu_plugin_inc" -version = "0.94.1" +version = "0.94.2" dependencies = [ "nu-plugin", "nu-protocol", @@ -3381,7 +3381,7 @@ dependencies = [ [[package]] name = "nu_plugin_polars" -version = "0.94.1" +version = "0.94.2" dependencies = [ "chrono", "chrono-tz 0.9.0", @@ -3412,7 +3412,7 @@ dependencies = [ [[package]] name = "nu_plugin_query" -version = "0.94.1" +version = "0.94.2" dependencies = [ "gjson", "nu-plugin", @@ -3424,7 +3424,7 @@ dependencies = [ [[package]] name = "nu_plugin_stress_internals" -version = "0.94.1" +version = "0.94.2" dependencies = [ "interprocess", "serde", @@ -3550,7 +3550,7 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "nuon" -version = "0.94.1" +version = "0.94.2" dependencies = [ "chrono", "fancy-regex", diff --git a/Cargo.toml b/Cargo.toml index a8576baa95..ce9157efb4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ license = "MIT" name = "nu" repository = "https://github.com/nushell/nushell" rust-version = "1.77.2" -version = "0.94.1" +version = "0.94.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -174,22 +174,22 @@ windows = "0.54" winreg = "0.52" [dependencies] -nu-cli = { path = "./crates/nu-cli", version = "0.94.1" } -nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.94.1" } -nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.94.1" } -nu-cmd-plugin = { path = "./crates/nu-cmd-plugin", version = "0.94.1", optional = true } -nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.94.1" } -nu-command = { path = "./crates/nu-command", version = "0.94.1" } -nu-engine = { path = "./crates/nu-engine", version = "0.94.1" } -nu-explore = { path = "./crates/nu-explore", version = "0.94.1" } -nu-lsp = { path = "./crates/nu-lsp/", version = "0.94.1" } -nu-parser = { path = "./crates/nu-parser", version = "0.94.1" } -nu-path = { path = "./crates/nu-path", version = "0.94.1" } -nu-plugin-engine = { path = "./crates/nu-plugin-engine", optional = true, version = "0.94.1" } -nu-protocol = { path = "./crates/nu-protocol", version = "0.94.1" } -nu-std = { path = "./crates/nu-std", version = "0.94.1" } -nu-system = { path = "./crates/nu-system", version = "0.94.1" } -nu-utils = { path = "./crates/nu-utils", version = "0.94.1" } +nu-cli = { path = "./crates/nu-cli", version = "0.94.2" } +nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.94.2" } +nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.94.2" } +nu-cmd-plugin = { path = "./crates/nu-cmd-plugin", version = "0.94.2", optional = true } +nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.94.2" } +nu-command = { path = "./crates/nu-command", version = "0.94.2" } +nu-engine = { path = "./crates/nu-engine", version = "0.94.2" } +nu-explore = { path = "./crates/nu-explore", version = "0.94.2" } +nu-lsp = { path = "./crates/nu-lsp/", version = "0.94.2" } +nu-parser = { path = "./crates/nu-parser", version = "0.94.2" } +nu-path = { path = "./crates/nu-path", version = "0.94.2" } +nu-plugin-engine = { path = "./crates/nu-plugin-engine", optional = true, version = "0.94.2" } +nu-protocol = { path = "./crates/nu-protocol", version = "0.94.2" } +nu-std = { path = "./crates/nu-std", version = "0.94.2" } +nu-system = { path = "./crates/nu-system", version = "0.94.2" } +nu-utils = { path = "./crates/nu-utils", version = "0.94.2" } reedline = { workspace = true, features = ["bashisms", "sqlite"] } @@ -218,9 +218,9 @@ nix = { workspace = true, default-features = false, features = [ ] } [dev-dependencies] -nu-test-support = { path = "./crates/nu-test-support", version = "0.94.1" } -nu-plugin-protocol = { path = "./crates/nu-plugin-protocol", version = "0.94.1" } -nu-plugin-core = { path = "./crates/nu-plugin-core", version = "0.94.1" } +nu-test-support = { path = "./crates/nu-test-support", version = "0.94.2" } +nu-plugin-protocol = { path = "./crates/nu-plugin-protocol", version = "0.94.2" } +nu-plugin-core = { path = "./crates/nu-plugin-core", version = "0.94.2" } assert_cmd = "2.0" dirs-next = { workspace = true } tango-bench = "0.5" diff --git a/crates/nu-cli/Cargo.toml b/crates/nu-cli/Cargo.toml index 516afd9f0b..0d82fa4aae 100644 --- a/crates/nu-cli/Cargo.toml +++ b/crates/nu-cli/Cargo.toml @@ -5,27 +5,27 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cli" edition = "2021" license = "MIT" name = "nu-cli" -version = "0.94.1" +version = "0.94.2" [lib] bench = false [dev-dependencies] -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.1" } -nu-command = { path = "../nu-command", version = "0.94.1" } -nu-test-support = { path = "../nu-test-support", version = "0.94.1" } +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } +nu-command = { path = "../nu-command", version = "0.94.2" } +nu-test-support = { path = "../nu-test-support", version = "0.94.2" } rstest = { workspace = true, default-features = false } tempfile = { workspace = true } [dependencies] -nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.1" } -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-path = { path = "../nu-path", version = "0.94.1" } -nu-parser = { path = "../nu-parser", version = "0.94.1" } -nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.1", optional = true } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-utils = { path = "../nu-utils", version = "0.94.1" } -nu-color-config = { path = "../nu-color-config", version = "0.94.1" } +nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-path = { path = "../nu-path", version = "0.94.2" } +nu-parser = { path = "../nu-parser", version = "0.94.2" } +nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.2", optional = true } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-utils = { path = "../nu-utils", version = "0.94.2" } +nu-color-config = { path = "../nu-color-config", version = "0.94.2" } nu-ansi-term = { workspace = true } reedline = { workspace = true, features = ["bashisms", "sqlite"] } diff --git a/crates/nu-cmd-base/Cargo.toml b/crates/nu-cmd-base/Cargo.toml index 1dcd95ba94..858ff55e2d 100644 --- a/crates/nu-cmd-base/Cargo.toml +++ b/crates/nu-cmd-base/Cargo.toml @@ -5,15 +5,15 @@ edition = "2021" license = "MIT" name = "nu-cmd-base" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-base" -version = "0.94.1" +version = "0.94.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-parser = { path = "../nu-parser", version = "0.94.1" } -nu-path = { path = "../nu-path", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-parser = { path = "../nu-parser", version = "0.94.2" } +nu-path = { path = "../nu-path", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } indexmap = { workspace = true } miette = { workspace = true } diff --git a/crates/nu-cmd-extra/Cargo.toml b/crates/nu-cmd-extra/Cargo.toml index 9e6270163d..b03c7911ed 100644 --- a/crates/nu-cmd-extra/Cargo.toml +++ b/crates/nu-cmd-extra/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "MIT" name = "nu-cmd-extra" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-extra" -version = "0.94.1" +version = "0.94.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -13,13 +13,13 @@ version = "0.94.1" bench = false [dependencies] -nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.1" } -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-json = { version = "0.94.1", path = "../nu-json" } -nu-parser = { path = "../nu-parser", version = "0.94.1" } -nu-pretty-hex = { version = "0.94.1", path = "../nu-pretty-hex" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-utils = { path = "../nu-utils", version = "0.94.1" } +nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-json = { version = "0.94.2", path = "../nu-json" } +nu-parser = { path = "../nu-parser", version = "0.94.2" } +nu-pretty-hex = { version = "0.94.2", path = "../nu-pretty-hex" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-utils = { path = "../nu-utils", version = "0.94.2" } # Potential dependencies for extras heck = { workspace = true } @@ -37,6 +37,6 @@ extra = ["default"] default = [] [dev-dependencies] -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.1" } -nu-command = { path = "../nu-command", version = "0.94.1" } -nu-test-support = { path = "../nu-test-support", version = "0.94.1" } \ No newline at end of file +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } +nu-command = { path = "../nu-command", version = "0.94.2" } +nu-test-support = { path = "../nu-test-support", version = "0.94.2" } \ No newline at end of file diff --git a/crates/nu-cmd-lang/Cargo.toml b/crates/nu-cmd-lang/Cargo.toml index f7b43521d1..ad94c331d8 100644 --- a/crates/nu-cmd-lang/Cargo.toml +++ b/crates/nu-cmd-lang/Cargo.toml @@ -6,16 +6,16 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-lang" edition = "2021" license = "MIT" name = "nu-cmd-lang" -version = "0.94.1" +version = "0.94.2" [lib] bench = false [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-parser = { path = "../nu-parser", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-utils = { path = "../nu-utils", version = "0.94.1" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-parser = { path = "../nu-parser", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-utils = { path = "../nu-utils", version = "0.94.2" } itertools = { workspace = true } shadow-rs = { version = "0.28", default-features = false } diff --git a/crates/nu-cmd-plugin/Cargo.toml b/crates/nu-cmd-plugin/Cargo.toml index f461f6bf04..62ed6851b5 100644 --- a/crates/nu-cmd-plugin/Cargo.toml +++ b/crates/nu-cmd-plugin/Cargo.toml @@ -5,15 +5,15 @@ edition = "2021" license = "MIT" name = "nu-cmd-plugin" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-plugin" -version = "0.94.1" +version = "0.94.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-path = { path = "../nu-path", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1", features = ["plugin"] } -nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.1" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-path = { path = "../nu-path", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } +nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.2" } itertools = { workspace = true } diff --git a/crates/nu-color-config/Cargo.toml b/crates/nu-color-config/Cargo.toml index 34f0ded963..6268acf6f6 100644 --- a/crates/nu-color-config/Cargo.toml +++ b/crates/nu-color-config/Cargo.toml @@ -5,18 +5,18 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-color-confi edition = "2021" license = "MIT" name = "nu-color-config" -version = "0.94.1" +version = "0.94.2" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-json = { path = "../nu-json", version = "0.94.1" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-json = { path = "../nu-json", version = "0.94.2" } nu-ansi-term = { workspace = true } serde = { workspace = true, features = ["derive"] } [dev-dependencies] -nu-test-support = { path = "../nu-test-support", version = "0.94.1" } \ No newline at end of file +nu-test-support = { path = "../nu-test-support", version = "0.94.2" } \ No newline at end of file diff --git a/crates/nu-command/Cargo.toml b/crates/nu-command/Cargo.toml index 25665cfc33..1a88a24e5e 100644 --- a/crates/nu-command/Cargo.toml +++ b/crates/nu-command/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "MIT" name = "nu-command" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-command" -version = "0.94.1" +version = "0.94.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -13,21 +13,21 @@ version = "0.94.1" bench = false [dependencies] -nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.1" } -nu-color-config = { path = "../nu-color-config", version = "0.94.1" } -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-glob = { path = "../nu-glob", version = "0.94.1" } -nu-json = { path = "../nu-json", version = "0.94.1" } -nu-parser = { path = "../nu-parser", version = "0.94.1" } -nu-path = { path = "../nu-path", version = "0.94.1" } -nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-system = { path = "../nu-system", version = "0.94.1" } -nu-table = { path = "../nu-table", version = "0.94.1" } -nu-term-grid = { path = "../nu-term-grid", version = "0.94.1" } -nu-utils = { path = "../nu-utils", version = "0.94.1" } +nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.2" } +nu-color-config = { path = "../nu-color-config", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-glob = { path = "../nu-glob", version = "0.94.2" } +nu-json = { path = "../nu-json", version = "0.94.2" } +nu-parser = { path = "../nu-parser", version = "0.94.2" } +nu-path = { path = "../nu-path", version = "0.94.2" } +nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-system = { path = "../nu-system", version = "0.94.2" } +nu-table = { path = "../nu-table", version = "0.94.2" } +nu-term-grid = { path = "../nu-term-grid", version = "0.94.2" } +nu-utils = { path = "../nu-utils", version = "0.94.2" } nu-ansi-term = { workspace = true } -nuon = { path = "../nuon", version = "0.94.1" } +nuon = { path = "../nuon", version = "0.94.2" } alphanumeric-sort = { workspace = true } base64 = { workspace = true } @@ -137,8 +137,8 @@ trash-support = ["trash"] which-support = [] [dev-dependencies] -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.1" } -nu-test-support = { path = "../nu-test-support", version = "0.94.1" } +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } +nu-test-support = { path = "../nu-test-support", version = "0.94.2" } dirs-next = { workspace = true } mockito = { workspace = true, default-features = false } diff --git a/crates/nu-engine/Cargo.toml b/crates/nu-engine/Cargo.toml index 7bf5ffe9d5..d8a90fb70e 100644 --- a/crates/nu-engine/Cargo.toml +++ b/crates/nu-engine/Cargo.toml @@ -5,16 +5,16 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-engine" edition = "2021" license = "MIT" name = "nu-engine" -version = "0.94.1" +version = "0.94.2" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", features = ["plugin"], version = "0.94.1" } -nu-path = { path = "../nu-path", version = "0.94.1" } -nu-glob = { path = "../nu-glob", version = "0.94.1" } -nu-utils = { path = "../nu-utils", version = "0.94.1" } +nu-protocol = { path = "../nu-protocol", features = ["plugin"], version = "0.94.2" } +nu-path = { path = "../nu-path", version = "0.94.2" } +nu-glob = { path = "../nu-glob", version = "0.94.2" } +nu-utils = { path = "../nu-utils", version = "0.94.2" } [features] plugin = [] \ No newline at end of file diff --git a/crates/nu-explore/Cargo.toml b/crates/nu-explore/Cargo.toml index 006e301859..0837d9d683 100644 --- a/crates/nu-explore/Cargo.toml +++ b/crates/nu-explore/Cargo.toml @@ -5,21 +5,21 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-explore" edition = "2021" license = "MIT" name = "nu-explore" -version = "0.94.1" +version = "0.94.2" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-parser = { path = "../nu-parser", version = "0.94.1" } -nu-color-config = { path = "../nu-color-config", version = "0.94.1" } -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-table = { path = "../nu-table", version = "0.94.1" } -nu-json = { path = "../nu-json", version = "0.94.1" } -nu-utils = { path = "../nu-utils", version = "0.94.1" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-parser = { path = "../nu-parser", version = "0.94.2" } +nu-color-config = { path = "../nu-color-config", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-table = { path = "../nu-table", version = "0.94.2" } +nu-json = { path = "../nu-json", version = "0.94.2" } +nu-utils = { path = "../nu-utils", version = "0.94.2" } nu-ansi-term = { workspace = true } -nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.94.1" } +nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.94.2" } anyhow = { workspace = true } log = { workspace = true } diff --git a/crates/nu-glob/Cargo.toml b/crates/nu-glob/Cargo.toml index c6bfd7e493..d7568f7b2d 100644 --- a/crates/nu-glob/Cargo.toml +++ b/crates/nu-glob/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nu-glob" -version = "0.94.1" +version = "0.94.2" authors = ["The Nushell Project Developers", "The Rust Project Developers"] license = "MIT/Apache-2.0" description = """ diff --git a/crates/nu-json/Cargo.toml b/crates/nu-json/Cargo.toml index 5a0806d7ca..63a80f4b91 100644 --- a/crates/nu-json/Cargo.toml +++ b/crates/nu-json/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-json" edition = "2021" license = "MIT" name = "nu-json" -version = "0.94.1" +version = "0.94.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -23,5 +23,5 @@ serde = { workspace = true } serde_json = { workspace = true } [dev-dependencies] -# nu-path = { path="../nu-path", version = "0.94.1" } +# nu-path = { path="../nu-path", version = "0.94.2" } # serde_json = "1.0" \ No newline at end of file diff --git a/crates/nu-lsp/Cargo.toml b/crates/nu-lsp/Cargo.toml index 92f468fdbd..0732862bff 100644 --- a/crates/nu-lsp/Cargo.toml +++ b/crates/nu-lsp/Cargo.toml @@ -3,14 +3,14 @@ authors = ["The Nushell Project Developers"] description = "Nushell's integrated LSP server" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-lsp" name = "nu-lsp" -version = "0.94.1" +version = "0.94.2" edition = "2021" license = "MIT" [dependencies] -nu-cli = { path = "../nu-cli", version = "0.94.1" } -nu-parser = { path = "../nu-parser", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } +nu-cli = { path = "../nu-cli", version = "0.94.2" } +nu-parser = { path = "../nu-parser", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } reedline = { workspace = true } @@ -23,8 +23,8 @@ serde = { workspace = true } serde_json = { workspace = true } [dev-dependencies] -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.1" } -nu-command = { path = "../nu-command", version = "0.94.1" } -nu-test-support = { path = "../nu-test-support", version = "0.94.1" } +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } +nu-command = { path = "../nu-command", version = "0.94.2" } +nu-test-support = { path = "../nu-test-support", version = "0.94.2" } assert-json-diff = "2.0" \ No newline at end of file diff --git a/crates/nu-parser/Cargo.toml b/crates/nu-parser/Cargo.toml index feb379d091..fa840fc483 100644 --- a/crates/nu-parser/Cargo.toml +++ b/crates/nu-parser/Cargo.toml @@ -5,17 +5,17 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-parser" edition = "2021" license = "MIT" name = "nu-parser" -version = "0.94.1" +version = "0.94.2" exclude = ["/fuzz"] [lib] bench = false [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-path = { path = "../nu-path", version = "0.94.1" } -nu-plugin-engine = { path = "../nu-plugin-engine", optional = true, version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-path = { path = "../nu-path", version = "0.94.2" } +nu-plugin-engine = { path = "../nu-plugin-engine", optional = true, version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } bytesize = { workspace = true } chrono = { default-features = false, features = ['std'], workspace = true } diff --git a/crates/nu-path/Cargo.toml b/crates/nu-path/Cargo.toml index 1f3822089c..bdd0157e4f 100644 --- a/crates/nu-path/Cargo.toml +++ b/crates/nu-path/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-path" edition = "2021" license = "MIT" name = "nu-path" -version = "0.94.1" +version = "0.94.2" exclude = ["/fuzz"] [lib] diff --git a/crates/nu-plugin-core/Cargo.toml b/crates/nu-plugin-core/Cargo.toml index 4040095a2a..580e0287e2 100644 --- a/crates/nu-plugin-core/Cargo.toml +++ b/crates/nu-plugin-core/Cargo.toml @@ -5,14 +5,14 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin-core edition = "2021" license = "MIT" name = "nu-plugin-core" -version = "0.94.1" +version = "0.94.2" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.1", default-features = false } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.2", default-features = false } rmp-serde = { workspace = true } serde = { workspace = true } diff --git a/crates/nu-plugin-engine/Cargo.toml b/crates/nu-plugin-engine/Cargo.toml index 715c2b7f74..50fe40ab0a 100644 --- a/crates/nu-plugin-engine/Cargo.toml +++ b/crates/nu-plugin-engine/Cargo.toml @@ -5,17 +5,17 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin-engi edition = "2021" license = "MIT" name = "nu-plugin-engine" -version = "0.94.1" +version = "0.94.2" [lib] bench = false [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-system = { path = "../nu-system", version = "0.94.1" } -nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.1" } -nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.1", default-features = false } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-system = { path = "../nu-system", version = "0.94.2" } +nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.2" } +nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.2", default-features = false } serde = { workspace = true } log = { workspace = true } diff --git a/crates/nu-plugin-protocol/Cargo.toml b/crates/nu-plugin-protocol/Cargo.toml index 8fe1c1102e..b52655a4f1 100644 --- a/crates/nu-plugin-protocol/Cargo.toml +++ b/crates/nu-plugin-protocol/Cargo.toml @@ -5,14 +5,14 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin-prot edition = "2021" license = "MIT" name = "nu-plugin-protocol" -version = "0.94.1" +version = "0.94.2" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.1", features = ["plugin"] } -nu-utils = { path = "../nu-utils", version = "0.94.1" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } +nu-utils = { path = "../nu-utils", version = "0.94.2" } bincode = "1.3" serde = { workspace = true, features = ["derive"] } diff --git a/crates/nu-plugin-test-support/Cargo.toml b/crates/nu-plugin-test-support/Cargo.toml index 32df904645..b5ef1e4c02 100644 --- a/crates/nu-plugin-test-support/Cargo.toml +++ b/crates/nu-plugin-test-support/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nu-plugin-test-support" -version = "0.94.1" +version = "0.94.2" edition = "2021" license = "MIT" description = "Testing support for Nushell plugins" @@ -12,14 +12,14 @@ bench = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.1", features = ["plugin"] } -nu-protocol = { path = "../nu-protocol", version = "0.94.1", features = ["plugin"] } -nu-parser = { path = "../nu-parser", version = "0.94.1", features = ["plugin"] } -nu-plugin = { path = "../nu-plugin", version = "0.94.1" } -nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.1" } -nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.1" } -nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.1" } -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.1" } +nu-engine = { path = "../nu-engine", version = "0.94.2", features = ["plugin"] } +nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } +nu-parser = { path = "../nu-parser", version = "0.94.2", features = ["plugin"] } +nu-plugin = { path = "../nu-plugin", version = "0.94.2" } +nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.2" } +nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.2" } +nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.2" } +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } nu-ansi-term = { workspace = true } similar = "2.5" diff --git a/crates/nu-plugin/Cargo.toml b/crates/nu-plugin/Cargo.toml index 150ab6666d..0a9a169474 100644 --- a/crates/nu-plugin/Cargo.toml +++ b/crates/nu-plugin/Cargo.toml @@ -5,16 +5,16 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin" edition = "2021" license = "MIT" name = "nu-plugin" -version = "0.94.1" +version = "0.94.2" [lib] bench = false [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.1" } -nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.1", default-features = false } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.2" } +nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.2", default-features = false } log = { workspace = true } thiserror = "1.0" diff --git a/crates/nu-pretty-hex/Cargo.toml b/crates/nu-pretty-hex/Cargo.toml index 639ceb0edd..152d03df72 100644 --- a/crates/nu-pretty-hex/Cargo.toml +++ b/crates/nu-pretty-hex/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-pretty-hex" edition = "2021" license = "MIT" name = "nu-pretty-hex" -version = "0.94.1" +version = "0.94.2" [lib] doctest = false diff --git a/crates/nu-protocol/Cargo.toml b/crates/nu-protocol/Cargo.toml index 8b2870a378..2ccd0a07ce 100644 --- a/crates/nu-protocol/Cargo.toml +++ b/crates/nu-protocol/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-protocol" edition = "2021" license = "MIT" name = "nu-protocol" -version = "0.94.1" +version = "0.94.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -13,9 +13,9 @@ version = "0.94.1" bench = false [dependencies] -nu-utils = { path = "../nu-utils", version = "0.94.1" } -nu-path = { path = "../nu-path", version = "0.94.1" } -nu-system = { path = "../nu-system", version = "0.94.1" } +nu-utils = { path = "../nu-utils", version = "0.94.2" } +nu-path = { path = "../nu-path", version = "0.94.2" } +nu-system = { path = "../nu-system", version = "0.94.2" } brotli = { workspace = true, optional = true } byte-unit = { version = "5.1", features = [ "serde" ] } @@ -45,7 +45,7 @@ plugin = [ serde_json = { workspace = true } strum = "0.26" strum_macros = "0.26" -nu-test-support = { path = "../nu-test-support", version = "0.94.1" } +nu-test-support = { path = "../nu-test-support", version = "0.94.2" } pretty_assertions = { workspace = true } rstest = { workspace = true } tempfile = { workspace = true } diff --git a/crates/nu-std/Cargo.toml b/crates/nu-std/Cargo.toml index f5c6790c52..4e5850c3fb 100644 --- a/crates/nu-std/Cargo.toml +++ b/crates/nu-std/Cargo.toml @@ -5,12 +5,12 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-std" edition = "2021" license = "MIT" name = "nu-std" -version = "0.94.1" +version = "0.94.2" [dependencies] -nu-parser = { version = "0.94.1", path = "../nu-parser" } -nu-protocol = { version = "0.94.1", path = "../nu-protocol" } -nu-engine = { version = "0.94.1", path = "../nu-engine" } +nu-parser = { version = "0.94.2", path = "../nu-parser" } +nu-protocol = { version = "0.94.2", path = "../nu-protocol" } +nu-engine = { version = "0.94.2", path = "../nu-engine" } miette = { workspace = true, features = ["fancy-no-backtrace"] } log = "0.4" \ No newline at end of file diff --git a/crates/nu-system/Cargo.toml b/crates/nu-system/Cargo.toml index 33305d07bc..17e621db90 100644 --- a/crates/nu-system/Cargo.toml +++ b/crates/nu-system/Cargo.toml @@ -3,7 +3,7 @@ authors = ["The Nushell Project Developers", "procs creators"] description = "Nushell system querying" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-system" name = "nu-system" -version = "0.94.1" +version = "0.94.2" edition = "2021" license = "MIT" diff --git a/crates/nu-table/Cargo.toml b/crates/nu-table/Cargo.toml index 6fcb1ffce6..fe1de742d9 100644 --- a/crates/nu-table/Cargo.toml +++ b/crates/nu-table/Cargo.toml @@ -5,20 +5,20 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-table" edition = "2021" license = "MIT" name = "nu-table" -version = "0.94.1" +version = "0.94.2" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-utils = { path = "../nu-utils", version = "0.94.1" } -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-color-config = { path = "../nu-color-config", version = "0.94.1" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-utils = { path = "../nu-utils", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-color-config = { path = "../nu-color-config", version = "0.94.2" } nu-ansi-term = { workspace = true } once_cell = { workspace = true } fancy-regex = { workspace = true } tabled = { workspace = true, features = ["color"], default-features = false } [dev-dependencies] -# nu-test-support = { path="../nu-test-support", version = "0.94.1" } \ No newline at end of file +# nu-test-support = { path="../nu-test-support", version = "0.94.2" } \ No newline at end of file diff --git a/crates/nu-term-grid/Cargo.toml b/crates/nu-term-grid/Cargo.toml index 2570ce0d68..bc560257f8 100644 --- a/crates/nu-term-grid/Cargo.toml +++ b/crates/nu-term-grid/Cargo.toml @@ -5,12 +5,12 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-term-grid" edition = "2021" license = "MIT" name = "nu-term-grid" -version = "0.94.1" +version = "0.94.2" [lib] bench = false [dependencies] -nu-utils = { path = "../nu-utils", version = "0.94.1" } +nu-utils = { path = "../nu-utils", version = "0.94.2" } unicode-width = { workspace = true } \ No newline at end of file diff --git a/crates/nu-test-support/Cargo.toml b/crates/nu-test-support/Cargo.toml index e2525d8c78..07f4142d43 100644 --- a/crates/nu-test-support/Cargo.toml +++ b/crates/nu-test-support/Cargo.toml @@ -5,16 +5,16 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-test-suppor edition = "2021" license = "MIT" name = "nu-test-support" -version = "0.94.1" +version = "0.94.2" [lib] doctest = false bench = false [dependencies] -nu-path = { path = "../nu-path", version = "0.94.1" } -nu-glob = { path = "../nu-glob", version = "0.94.1" } -nu-utils = { path = "../nu-utils", version = "0.94.1" } +nu-path = { path = "../nu-path", version = "0.94.2" } +nu-glob = { path = "../nu-glob", version = "0.94.2" } +nu-utils = { path = "../nu-utils", version = "0.94.2" } num-format = { workspace = true } which = { workspace = true } diff --git a/crates/nu-utils/Cargo.toml b/crates/nu-utils/Cargo.toml index 85b80015df..584602f184 100644 --- a/crates/nu-utils/Cargo.toml +++ b/crates/nu-utils/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "MIT" name = "nu-utils" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-utils" -version = "0.94.1" +version = "0.94.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [[bin]] diff --git a/crates/nu-utils/src/sample_config/default_config.nu b/crates/nu-utils/src/sample_config/default_config.nu index 357a1cc7d5..6d84d8d1de 100644 --- a/crates/nu-utils/src/sample_config/default_config.nu +++ b/crates/nu-utils/src/sample_config/default_config.nu @@ -1,6 +1,6 @@ # Nushell Config File # -# version = "0.94.1" +# version = "0.94.2" # For more information on defining custom themes, see # https://www.nushell.sh/book/coloring_and_theming.html diff --git a/crates/nu-utils/src/sample_config/default_env.nu b/crates/nu-utils/src/sample_config/default_env.nu index 90705230a9..edf0830f9f 100644 --- a/crates/nu-utils/src/sample_config/default_env.nu +++ b/crates/nu-utils/src/sample_config/default_env.nu @@ -1,6 +1,6 @@ # Nushell Environment Config File # -# version = "0.94.1" +# version = "0.94.2" def create_left_prompt [] { let dir = match (do --ignore-shell-errors { $env.PWD | path relative-to $nu.home-path }) { diff --git a/crates/nu_plugin_custom_values/Cargo.toml b/crates/nu_plugin_custom_values/Cargo.toml index 7cfbc0b578..2f5ae29e3d 100644 --- a/crates/nu_plugin_custom_values/Cargo.toml +++ b/crates/nu_plugin_custom_values/Cargo.toml @@ -10,10 +10,10 @@ name = "nu_plugin_custom_values" bench = false [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1", features = ["plugin"] } +nu-plugin = { path = "../nu-plugin", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } serde = { workspace = true, default-features = false } typetag = "0.2" [dev-dependencies] -nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.1" } \ No newline at end of file +nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.2" } \ No newline at end of file diff --git a/crates/nu_plugin_example/Cargo.toml b/crates/nu_plugin_example/Cargo.toml index 0b4ec44e89..de370a0a5d 100644 --- a/crates/nu_plugin_example/Cargo.toml +++ b/crates/nu_plugin_example/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_exam edition = "2021" license = "MIT" name = "nu_plugin_example" -version = "0.94.1" +version = "0.94.2" [[bin]] name = "nu_plugin_example" @@ -15,9 +15,9 @@ bench = false bench = false [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1", features = ["plugin"] } +nu-plugin = { path = "../nu-plugin", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } [dev-dependencies] -nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.1" } -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.1" } \ No newline at end of file +nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.2" } +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } \ No newline at end of file diff --git a/crates/nu_plugin_formats/Cargo.toml b/crates/nu_plugin_formats/Cargo.toml index 213ea74cd5..797eb69656 100644 --- a/crates/nu_plugin_formats/Cargo.toml +++ b/crates/nu_plugin_formats/Cargo.toml @@ -5,12 +5,12 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_form edition = "2021" license = "MIT" name = "nu_plugin_formats" -version = "0.94.1" +version = "0.94.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1", features = ["plugin"] } +nu-plugin = { path = "../nu-plugin", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } indexmap = { workspace = true } eml-parser = "0.1" @@ -18,4 +18,4 @@ ical = "0.11" rust-ini = "0.21.0" [dev-dependencies] -nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.1" } \ No newline at end of file +nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.2" } \ No newline at end of file diff --git a/crates/nu_plugin_gstat/Cargo.toml b/crates/nu_plugin_gstat/Cargo.toml index 7c0ca79ebe..a16bf019f6 100644 --- a/crates/nu_plugin_gstat/Cargo.toml +++ b/crates/nu_plugin_gstat/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_gsta edition = "2021" license = "MIT" name = "nu_plugin_gstat" -version = "0.94.1" +version = "0.94.2" [lib] doctest = false @@ -16,7 +16,7 @@ name = "nu_plugin_gstat" bench = false [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } +nu-plugin = { path = "../nu-plugin", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } git2 = "0.18" \ No newline at end of file diff --git a/crates/nu_plugin_inc/Cargo.toml b/crates/nu_plugin_inc/Cargo.toml index 543982d599..7b57d1591c 100644 --- a/crates/nu_plugin_inc/Cargo.toml +++ b/crates/nu_plugin_inc/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_inc" edition = "2021" license = "MIT" name = "nu_plugin_inc" -version = "0.94.1" +version = "0.94.2" [lib] doctest = false @@ -16,7 +16,7 @@ name = "nu_plugin_inc" bench = false [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1", features = ["plugin"] } +nu-plugin = { path = "../nu-plugin", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } semver = "1.0" \ No newline at end of file diff --git a/crates/nu_plugin_nu_example/nu_plugin_nu_example.nu b/crates/nu_plugin_nu_example/nu_plugin_nu_example.nu index d900f498da..15c8340c0e 100755 --- a/crates/nu_plugin_nu_example/nu_plugin_nu_example.nu +++ b/crates/nu_plugin_nu_example/nu_plugin_nu_example.nu @@ -6,7 +6,7 @@ # it also allows us to test the plugin interface with something manually implemented in a scripting # language without adding any extra dependencies to our tests. -const NUSHELL_VERSION = "0.94.1" +const NUSHELL_VERSION = "0.94.2" def main [--stdio] { if ($stdio) { diff --git a/crates/nu_plugin_polars/Cargo.toml b/crates/nu_plugin_polars/Cargo.toml index f93e183926..0855bc9b16 100644 --- a/crates/nu_plugin_polars/Cargo.toml +++ b/crates/nu_plugin_polars/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "MIT" name = "nu_plugin_polars" repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_polars" -version = "0.94.1" +version = "0.94.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -17,9 +17,9 @@ bench = false bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-plugin = { path = "../nu-plugin", version = "0.94.1" } -nu-path = { path = "../nu-path", version = "0.94.1" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-plugin = { path = "../nu-plugin", version = "0.94.2" } +nu-path = { path = "../nu-path", version = "0.94.2" } # Potential dependencies for extras chrono = { workspace = true, features = ["std", "unstable-locales"], default-features = false } @@ -73,9 +73,9 @@ optional = false version = "0.39" [dev-dependencies] -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.1" } -nu-engine = { path = "../nu-engine", version = "0.94.1" } -nu-parser = { path = "../nu-parser", version = "0.94.1" } -nu-command = { path = "../nu-command", version = "0.94.1" } -nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.1" } +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-parser = { path = "../nu-parser", version = "0.94.2" } +nu-command = { path = "../nu-command", version = "0.94.2" } +nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.2" } tempfile.workspace = true \ No newline at end of file diff --git a/crates/nu_plugin_python/nu_plugin_python_example.py b/crates/nu_plugin_python/nu_plugin_python_example.py index 55746d89c1..b2cb06c7eb 100755 --- a/crates/nu_plugin_python/nu_plugin_python_example.py +++ b/crates/nu_plugin_python/nu_plugin_python_example.py @@ -27,7 +27,7 @@ import sys import json -NUSHELL_VERSION = "0.94.1" +NUSHELL_VERSION = "0.94.2" def signatures(): diff --git a/crates/nu_plugin_query/Cargo.toml b/crates/nu_plugin_query/Cargo.toml index b48ca14fa5..0fd251e646 100644 --- a/crates/nu_plugin_query/Cargo.toml +++ b/crates/nu_plugin_query/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_quer edition = "2021" license = "MIT" name = "nu_plugin_query" -version = "0.94.1" +version = "0.94.2" [lib] doctest = false @@ -16,8 +16,8 @@ name = "nu_plugin_query" bench = false [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } +nu-plugin = { path = "../nu-plugin", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } gjson = "0.8" scraper = { default-features = false, version = "0.19" } diff --git a/crates/nu_plugin_stress_internals/Cargo.toml b/crates/nu_plugin_stress_internals/Cargo.toml index 159e0b616c..884244a5db 100644 --- a/crates/nu_plugin_stress_internals/Cargo.toml +++ b/crates/nu_plugin_stress_internals/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_stre edition = "2021" license = "MIT" name = "nu_plugin_stress_internals" -version = "0.94.1" +version = "0.94.2" [[bin]] name = "nu_plugin_stress_internals" diff --git a/crates/nuon/Cargo.toml b/crates/nuon/Cargo.toml index 69e7d89713..80a4de36ae 100644 --- a/crates/nuon/Cargo.toml +++ b/crates/nuon/Cargo.toml @@ -5,14 +5,14 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nuon" edition = "2021" license = "MIT" name = "nuon" -version = "0.94.1" +version = "0.94.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -nu-parser = { path = "../nu-parser", version = "0.94.1" } -nu-protocol = { path = "../nu-protocol", version = "0.94.1" } -nu-engine = { path = "../nu-engine", version = "0.94.1" } +nu-parser = { path = "../nu-parser", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.2" } once_cell = { workspace = true } fancy-regex = { workspace = true } From b50903cf58a067b78815be620372e8a3d5cbdcae Mon Sep 17 00:00:00 2001 From: Devyn Cairns Date: Mon, 3 Jun 2024 00:28:45 -0700 Subject: [PATCH 05/19] Fix external command name parsing with backslashes, and add tests (#13027) # Description Fixes #13016 and adds tests for many variations of external call parsing. I just realized @kubouch took a crack at this too (#13022) so really whichever is better, but I think the tests are a good addition. --- crates/nu-parser/src/parser.rs | 35 +++-- crates/nu-parser/tests/test_parser.rs | 215 ++++++++++++++++++++++++++ 2 files changed, 239 insertions(+), 11 deletions(-) diff --git a/crates/nu-parser/src/parser.rs b/crates/nu-parser/src/parser.rs index ad5e7d4f42..830d8b81e0 100644 --- a/crates/nu-parser/src/parser.rs +++ b/crates/nu-parser/src/parser.rs @@ -16,6 +16,7 @@ use nu_protocol::{ IN_VARIABLE_ID, }; use std::{ + borrow::Cow, collections::{HashMap, HashSet}, num::ParseIntError, str, @@ -241,15 +242,10 @@ fn parse_external_arg(working_set: &mut StateWorkingSet, span: Span) -> External )) } else { // Eval stage trims the quotes, so we don't have to do the same thing when parsing. - let contents = if contents.starts_with(b"\"") { - let (contents, err) = unescape_string(contents, span); - if let Some(err) = err { - working_set.error(err) - } - String::from_utf8_lossy(&contents).to_string() - } else { - String::from_utf8_lossy(contents).to_string() - }; + let (contents, err) = unescape_string_preserving_quotes(contents, span); + if let Some(err) = err { + working_set.error(err); + } ExternalArgument::Regular(Expression { expr: Expr::String(contents), @@ -279,13 +275,13 @@ pub fn parse_external_call(working_set: &mut StateWorkingSet, spans: &[Span]) -> Box::new(arg) } else { // Eval stage will unquote the string, so we don't bother with that here - let (contents, err) = unescape_string(&head_contents, head_span); + let (contents, err) = unescape_string_preserving_quotes(&head_contents, head_span); if let Some(err) = err { working_set.error(err) } Box::new(Expression { - expr: Expr::String(String::from_utf8_lossy(&contents).into_owned()), + expr: Expr::String(contents), span: head_span, ty: Type::String, custom_completion: None, @@ -2699,6 +2695,23 @@ pub fn unescape_unquote_string(bytes: &[u8], span: Span) -> (String, Option (String, Option) { + let (bytes, err) = if bytes.starts_with(b"\"") { + let (bytes, err) = unescape_string(bytes, span); + (Cow::Owned(bytes), err) + } else { + (Cow::Borrowed(bytes), None) + }; + + // The original code for args used lossy conversion here, even though that's not what we + // typically use for strings. Revisit whether that's actually desirable later, but don't + // want to introduce a breaking change for this patch. + let token = String::from_utf8_lossy(&bytes).into_owned(); + (token, err) +} + pub fn parse_string(working_set: &mut StateWorkingSet, span: Span) -> Expression { trace!("parsing: string"); diff --git a/crates/nu-parser/tests/test_parser.rs b/crates/nu-parser/tests/test_parser.rs index ef5d968280..2646b3cc90 100644 --- a/crates/nu-parser/tests/test_parser.rs +++ b/crates/nu-parser/tests/test_parser.rs @@ -694,6 +694,221 @@ pub fn parse_call_missing_req_flag() { )); } +#[rstest] +#[case("foo-external-call", "foo-external-call", "bare word")] +#[case("^foo-external-call", "foo-external-call", "bare word with caret")] +#[case( + "foo/external-call", + "foo/external-call", + "bare word with forward slash" +)] +#[case( + "^foo/external-call", + "foo/external-call", + "bare word with forward slash and caret" +)] +#[case(r"foo\external-call", r"foo\external-call", "bare word with backslash")] +#[case( + r"^foo\external-call", + r"foo\external-call", + "bare word with backslash and caret" +)] +#[case( + "^'foo external call'", + "'foo external call'", + "single quote with caret" +)] +#[case( + "^'foo/external call'", + "'foo/external call'", + "single quote with forward slash and caret" +)] +#[case( + r"^'foo\external call'", + r"'foo\external call'", + "single quote with backslash and caret" +)] +#[case( + r#"^"foo external call""#, + r#""foo external call""#, + "double quote with caret" +)] +#[case( + r#"^"foo/external call""#, + r#""foo/external call""#, + "double quote with forward slash and caret" +)] +#[case( + r#"^"foo\\external call""#, + r#""foo\external call""#, + "double quote with backslash and caret" +)] +#[case("`foo external call`", "`foo external call`", "backtick quote")] +#[case( + "^`foo external call`", + "`foo external call`", + "backtick quote with caret" +)] +#[case( + "`foo/external call`", + "`foo/external call`", + "backtick quote with forward slash" +)] +#[case( + "^`foo/external call`", + "`foo/external call`", + "backtick quote with forward slash and caret" +)] +#[case( + r"^`foo\external call`", + r"`foo\external call`", + "backtick quote with backslash" +)] +#[case( + r"^`foo\external call`", + r"`foo\external call`", + "backtick quote with backslash and caret" +)] +fn test_external_call_name(#[case] input: &str, #[case] expected: &str, #[case] tag: &str) { + let engine_state = EngineState::new(); + let mut working_set = StateWorkingSet::new(&engine_state); + let block = parse(&mut working_set, None, input.as_bytes(), true); + assert!( + working_set.parse_errors.is_empty(), + "{tag}: errors: {:?}", + working_set.parse_errors + ); + + let pipeline = &block.pipelines[0]; + assert_eq!(1, pipeline.len()); + let element = &pipeline.elements[0]; + match &element.expr.expr { + Expr::ExternalCall(name, args) => { + match &name.expr { + Expr::String(string) => { + assert_eq!(expected, string); + } + other => { + panic!("{tag}: Unexpected expression in command name position: {other:?}"); + } + } + assert_eq!(0, args.len()); + } + other => { + panic!("{tag}: Unexpected expression in pipeline: {other:?}"); + } + } +} + +#[rstest] +#[case("^foo bar-baz", "bar-baz", "bare word")] +#[case("^foo bar/baz", "bar/baz", "bare word with forward slash")] +#[case(r"^foo bar\baz", r"bar\baz", "bare word with backslash")] +#[case("^foo 'bar baz'", "'bar baz'", "single quote")] +#[case("foo 'bar/baz'", "'bar/baz'", "single quote with forward slash")] +#[case(r"foo 'bar\baz'", r"'bar\baz'", "single quote with backslash")] +#[case(r#"^foo "bar baz""#, r#""bar baz""#, "double quote")] +#[case(r#"^foo "bar/baz""#, r#""bar/baz""#, "double quote with forward slash")] +#[case(r#"^foo "bar\\baz""#, r#""bar\baz""#, "double quote with backslash")] +#[case("^foo `bar baz`", "`bar baz`", "backtick quote")] +#[case("^foo `bar/baz`", "`bar/baz`", "backtick quote with forward slash")] +#[case(r"^foo `bar\baz`", r"`bar\baz`", "backtick quote with backslash")] +fn test_external_call_argument_regular( + #[case] input: &str, + #[case] expected: &str, + #[case] tag: &str, +) { + let engine_state = EngineState::new(); + let mut working_set = StateWorkingSet::new(&engine_state); + let block = parse(&mut working_set, None, input.as_bytes(), true); + assert!( + working_set.parse_errors.is_empty(), + "{tag}: errors: {:?}", + working_set.parse_errors + ); + + let pipeline = &block.pipelines[0]; + assert_eq!(1, pipeline.len()); + let element = &pipeline.elements[0]; + match &element.expr.expr { + Expr::ExternalCall(name, args) => { + match &name.expr { + Expr::String(string) => { + assert_eq!("foo", string, "{tag}: incorrect name"); + } + other => { + panic!("{tag}: Unexpected expression in command name position: {other:?}"); + } + } + assert_eq!(1, args.len()); + match &args[0] { + ExternalArgument::Regular(expr) => match &expr.expr { + Expr::String(string) => { + assert_eq!(expected, string, "{tag}: incorrect arg"); + } + other => { + panic!("Unexpected expression in command arg position: {other:?}") + } + }, + other @ ExternalArgument::Spread(..) => { + panic!("Unexpected external spread argument in command arg position: {other:?}") + } + } + } + other => { + panic!("{tag}: Unexpected expression in pipeline: {other:?}"); + } + } +} + +#[test] +fn test_external_call_argument_spread() { + let engine_state = EngineState::new(); + let mut working_set = StateWorkingSet::new(&engine_state); + let block = parse(&mut working_set, None, b"^foo ...[a b c]", true); + assert!( + working_set.parse_errors.is_empty(), + "errors: {:?}", + working_set.parse_errors + ); + + let pipeline = &block.pipelines[0]; + assert_eq!(1, pipeline.len()); + let element = &pipeline.elements[0]; + match &element.expr.expr { + Expr::ExternalCall(name, args) => { + match &name.expr { + Expr::String(string) => { + assert_eq!("foo", string, "incorrect name"); + } + other => { + panic!("Unexpected expression in command name position: {other:?}"); + } + } + assert_eq!(1, args.len()); + match &args[0] { + ExternalArgument::Spread(expr) => match &expr.expr { + Expr::List(items) => { + assert_eq!(3, items.len()); + // that's good enough, don't really need to go so deep into it... + } + other => { + panic!("Unexpected expression in command arg position: {other:?}") + } + }, + other @ ExternalArgument::Regular(..) => { + panic!( + "Unexpected external regular argument in command arg position: {other:?}" + ) + } + } + } + other => { + panic!("Unexpected expression in pipeline: {other:?}"); + } + } +} + #[test] fn test_nothing_comparison_eq() { let engine_state = EngineState::new(); From be8c1dc0066cd1034a6b110a622f47b516bfe029 Mon Sep 17 00:00:00 2001 From: Devyn Cairns Date: Mon, 3 Jun 2024 00:38:55 -0700 Subject: [PATCH 06/19] Fix `run_external::expand_glob()` to return paths that are PWD-relative but reflect the original intent (#13028) # Description Fix #13021 This changes the `expand_glob()` function to use `nu_engine::glob_from()` so that absolute paths are actually preserved, rather than being made relative to the provided parent. This preserves the intent of whoever wrote the original path/glob, and also makes it so that tilde always produces absolute paths. I also made `expand_glob()` handle Ctrl-C so that it can be interrupted. cc @YizhePKU # Tests + Formatting No additional tests here... but that might be a good idea. --- crates/nu-command/src/system/run_external.rs | 143 +++++++++++++------ 1 file changed, 99 insertions(+), 44 deletions(-) diff --git a/crates/nu-command/src/system/run_external.rs b/crates/nu-command/src/system/run_external.rs index a200ce75de..d4645e87e8 100644 --- a/crates/nu-command/src/system/run_external.rs +++ b/crates/nu-command/src/system/run_external.rs @@ -4,7 +4,7 @@ use nu_protocol::{ ast::{Expr, Expression}, did_you_mean, process::ChildProcess, - ByteStream, OutDest, + ByteStream, NuGlob, OutDest, }; use nu_system::ForegroundChild; use nu_utils::IgnoreCaseExt; @@ -13,7 +13,7 @@ use std::{ io::Write, path::{Path, PathBuf}, process::Stdio, - sync::Arc, + sync::{atomic::AtomicBool, Arc}, thread, }; @@ -155,6 +155,9 @@ impl Command for External { } }; + // Log the command we're about to run in case it's useful for debugging purposes. + log::trace!("run-external spawning: {command:?}"); + // Spawn the child process. On Unix, also put the child process to // foreground if we're in an interactive session. #[cfg(windows)] @@ -232,6 +235,7 @@ pub fn eval_arguments_from_call( stack: &mut Stack, call: &Call, ) -> Result>, ShellError> { + let ctrlc = &engine_state.ctrlc; let cwd = engine_state.cwd(Some(stack))?; let mut args: Vec> = vec![]; for (expr, spread) in call.rest_iter(1) { @@ -240,7 +244,7 @@ pub fn eval_arguments_from_call( // glob-expansion, and inner-quotes-removal, in that order. for arg in eval_argument(engine_state, stack, expr, spread)? { let tilde_expanded = expand_tilde(&arg); - for glob_expanded in expand_glob(&tilde_expanded, &cwd, expr.span)? { + for glob_expanded in expand_glob(&tilde_expanded, &cwd, expr.span, ctrlc)? { let inner_quotes_removed = remove_inner_quotes(&glob_expanded); args.push(inner_quotes_removed.into_owned().into_spanned(expr.span)); } @@ -321,37 +325,75 @@ fn expand_tilde(arg: &str) -> String { /// /// Note: This matches the default behavior of Bash, but is known to be /// error-prone. We might want to change this behavior in the future. -fn expand_glob(arg: &str, cwd: &Path, span: Span) -> Result, ShellError> { - let Ok(paths) = nu_glob::glob_with_parent(arg, nu_glob::MatchOptions::default(), cwd) else { +fn expand_glob( + arg: &str, + cwd: &Path, + span: Span, + interrupt: &Option>, +) -> Result, ShellError> { + const GLOB_CHARS: &[char] = &['*', '?', '[']; + + // Don't expand something that doesn't include the GLOB_CHARS + if !arg.contains(GLOB_CHARS) { + return Ok(vec![arg.into()]); + } + + // We must use `nu_engine::glob_from` here, in order to ensure we get paths from the correct + // dir + let glob = NuGlob::Expand(arg.to_owned()).into_spanned(span); + let Ok((_prefix, paths)) = nu_engine::glob_from(&glob, cwd, span, None) else { + // If an error occurred, return the original input return Ok(vec![arg.into()]); }; - let mut result = vec![]; - for path in paths { - let path = path.map_err(|err| ShellError::IOErrorSpanned { - msg: format!("{}: {:?}", err.path().display(), err.error()), - span, - })?; - // Strip PWD from the resulting paths if possible. - let path_stripped = if let Ok(remainder) = path.strip_prefix(cwd) { - // If stripping PWD results in an empty path, return `.` instead. - if remainder.components().next().is_none() { - Path::new(".") - } else { - remainder + // If the first component of the original `arg` string path was '.', that should be preserved + let relative_to_dot = Path::new(arg).starts_with("."); + + let paths = paths + // Skip over glob failures. These are usually just inaccessible paths. + .flat_map(|path_result| match path_result { + Ok(path) => Some(path), + Err(err) => { + // But internally log them just in case we need to debug this. + log::warn!("Error in run_external::expand_glob(): {}", err); + None } - } else { - &path - }; - let path_string = path_stripped.to_string_lossy().to_string(); - result.push(path_string); - } + }) + // Make the paths relative to the cwd + .map(|path| { + path.strip_prefix(cwd) + .map(|path| path.to_owned()) + .unwrap_or(path) + }) + // Add './' to relative paths if the original pattern had it + .map(|path| { + if relative_to_dot && path.is_relative() { + Path::new(".").join(path) + } else { + path + } + }) + // Convert the paths returned to UTF-8 strings. + // + // FIXME: this fails to return the correct results for non-UTF-8 paths, but we don't support + // those in Nushell yet. + .map(|path| path.to_string_lossy().into_owned()) + // Abandon if ctrl-c is pressed + .map(|path| { + if !nu_utils::ctrl_c::was_pressed(interrupt) { + Ok(path) + } else { + Err(ShellError::InterruptedByUser { span: Some(span) }) + } + }) + .collect::, ShellError>>()?; - if result.is_empty() { - result.push(arg.to_string()); + if !paths.is_empty() { + Ok(paths) + } else { + // If we failed to match, return the original input + Ok(vec![arg.into()]) } - - Ok(result) } /// Transforms `--option="value"` into `--option=value`. `value` can be quoted @@ -607,6 +649,7 @@ fn escape_cmd_argument(arg: &Spanned) -> Result, ShellError mod test { use super::*; use nu_protocol::ast::ListItem; + use nu_test_support::{fs::Stub, playground::Playground}; #[test] fn test_remove_quotes() { @@ -669,26 +712,38 @@ mod test { #[test] fn test_expand_glob() { - let tempdir = tempfile::tempdir().unwrap(); - let cwd = tempdir.path(); - std::fs::File::create(cwd.join("a.txt")).unwrap(); - std::fs::File::create(cwd.join("b.txt")).unwrap(); + Playground::setup("test_expand_glob", |dirs, play| { + play.with_files(&[Stub::EmptyFile("a.txt"), Stub::EmptyFile("b.txt")]); - let actual = expand_glob("*.txt", cwd, Span::unknown()).unwrap(); - let expected = &["a.txt", "b.txt"]; - assert_eq!(actual, expected); + let cwd = dirs.test(); - let actual = expand_glob("'*.txt'", cwd, Span::unknown()).unwrap(); - let expected = &["'*.txt'"]; - assert_eq!(actual, expected); + let actual = expand_glob("*.txt", cwd, Span::unknown(), &None).unwrap(); + let expected = &["a.txt", "b.txt"]; + assert_eq!(actual, expected); - let actual = expand_glob(cwd.to_str().unwrap(), cwd, Span::unknown()).unwrap(); - let expected = &["."]; - assert_eq!(actual, expected); + let actual = expand_glob("./*.txt", cwd, Span::unknown(), &None).unwrap(); + let expected = vec![ + Path::new(".").join("a.txt").to_string_lossy().into_owned(), + Path::new(".").join("b.txt").to_string_lossy().into_owned(), + ]; + assert_eq!(actual, expected); - let actual = expand_glob("[*.txt", cwd, Span::unknown()).unwrap(); - let expected = &["[*.txt"]; - assert_eq!(actual, expected); + let actual = expand_glob("'*.txt'", cwd, Span::unknown(), &None).unwrap(); + let expected = &["'*.txt'"]; + assert_eq!(actual, expected); + + let actual = expand_glob(".", cwd, Span::unknown(), &None).unwrap(); + let expected = &["."]; + assert_eq!(actual, expected); + + let actual = expand_glob("./a.txt", cwd, Span::unknown(), &None).unwrap(); + let expected = &["./a.txt"]; + assert_eq!(actual, expected); + + let actual = expand_glob("[*.txt", cwd, Span::unknown(), &None).unwrap(); + let expected = &["[*.txt"]; + assert_eq!(actual, expected); + }) } #[test] From ad5a6cdc00a390ce67238f6d7a7f9552f34a1c98 Mon Sep 17 00:00:00 2001 From: Wind Date: Wed, 5 Jun 2024 06:52:40 +0800 Subject: [PATCH 07/19] bump version to 0.94.3 (#13055) --- Cargo.lock | 72 +++++++++---------- Cargo.toml | 42 +++++------ crates/nu-cli/Cargo.toml | 26 +++---- crates/nu-cmd-base/Cargo.toml | 12 ++-- crates/nu-cmd-extra/Cargo.toml | 22 +++--- crates/nu-cmd-lang/Cargo.toml | 12 ++-- crates/nu-cmd-plugin/Cargo.toml | 12 ++-- crates/nu-color-config/Cargo.toml | 10 +-- crates/nu-command/Cargo.toml | 36 +++++----- crates/nu-engine/Cargo.toml | 12 ++-- crates/nu-explore/Cargo.toml | 20 +++--- crates/nu-glob/Cargo.toml | 4 +- crates/nu-json/Cargo.toml | 6 +- crates/nu-lsp/Cargo.toml | 16 ++--- crates/nu-parser/Cargo.toml | 12 ++-- crates/nu-path/Cargo.toml | 4 +- crates/nu-plugin-core/Cargo.toml | 8 +-- crates/nu-plugin-engine/Cargo.toml | 14 ++-- crates/nu-plugin-protocol/Cargo.toml | 8 +-- crates/nu-plugin-test-support/Cargo.toml | 20 +++--- crates/nu-plugin/Cargo.toml | 12 ++-- crates/nu-pretty-hex/Cargo.toml | 4 +- crates/nu-protocol/Cargo.toml | 12 ++-- crates/nu-std/Cargo.toml | 10 +-- crates/nu-system/Cargo.toml | 4 +- crates/nu-table/Cargo.toml | 12 ++-- crates/nu-term-grid/Cargo.toml | 6 +- crates/nu-test-support/Cargo.toml | 10 +-- crates/nu-utils/Cargo.toml | 4 +- .../src/sample_config/default_config.nu | 4 +- .../nu-utils/src/sample_config/default_env.nu | 4 +- crates/nu_plugin_custom_values/Cargo.toml | 6 +- crates/nu_plugin_example/Cargo.toml | 10 +-- crates/nu_plugin_formats/Cargo.toml | 8 +-- crates/nu_plugin_gstat/Cargo.toml | 8 +-- crates/nu_plugin_inc/Cargo.toml | 8 +-- .../nu_plugin_nu_example.nu | 4 +- crates/nu_plugin_polars/Cargo.toml | 20 +++--- .../nu_plugin_python_example.py | 9 +-- crates/nu_plugin_query/Cargo.toml | 8 +-- crates/nu_plugin_stress_internals/Cargo.toml | 4 +- crates/nuon/Cargo.toml | 10 +-- 42 files changed, 273 insertions(+), 272 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 23cafeefda..7c5596adba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2770,7 +2770,7 @@ dependencies = [ [[package]] name = "nu" -version = "0.94.2" +version = "0.94.3" dependencies = [ "assert_cmd", "crossterm", @@ -2823,7 +2823,7 @@ dependencies = [ [[package]] name = "nu-cli" -version = "0.94.2" +version = "0.94.3" dependencies = [ "chrono", "crossterm", @@ -2858,7 +2858,7 @@ dependencies = [ [[package]] name = "nu-cmd-base" -version = "0.94.2" +version = "0.94.3" dependencies = [ "indexmap", "miette", @@ -2870,7 +2870,7 @@ dependencies = [ [[package]] name = "nu-cmd-extra" -version = "0.94.2" +version = "0.94.3" dependencies = [ "fancy-regex", "heck 0.5.0", @@ -2895,7 +2895,7 @@ dependencies = [ [[package]] name = "nu-cmd-lang" -version = "0.94.2" +version = "0.94.3" dependencies = [ "itertools 0.12.1", "nu-engine", @@ -2907,7 +2907,7 @@ dependencies = [ [[package]] name = "nu-cmd-plugin" -version = "0.94.2" +version = "0.94.3" dependencies = [ "itertools 0.12.1", "nu-engine", @@ -2918,7 +2918,7 @@ dependencies = [ [[package]] name = "nu-color-config" -version = "0.94.2" +version = "0.94.3" dependencies = [ "nu-ansi-term", "nu-engine", @@ -2930,7 +2930,7 @@ dependencies = [ [[package]] name = "nu-command" -version = "0.94.2" +version = "0.94.3" dependencies = [ "alphanumeric-sort", "base64 0.22.1", @@ -3039,7 +3039,7 @@ dependencies = [ [[package]] name = "nu-engine" -version = "0.94.2" +version = "0.94.3" dependencies = [ "nu-glob", "nu-path", @@ -3049,7 +3049,7 @@ dependencies = [ [[package]] name = "nu-explore" -version = "0.94.2" +version = "0.94.3" dependencies = [ "ansi-str", "anyhow", @@ -3074,14 +3074,14 @@ dependencies = [ [[package]] name = "nu-glob" -version = "0.94.2" +version = "0.94.3" dependencies = [ "doc-comment", ] [[package]] name = "nu-json" -version = "0.94.2" +version = "0.94.3" dependencies = [ "linked-hash-map", "num-traits", @@ -3091,7 +3091,7 @@ dependencies = [ [[package]] name = "nu-lsp" -version = "0.94.2" +version = "0.94.3" dependencies = [ "assert-json-diff", "crossbeam-channel", @@ -3112,7 +3112,7 @@ dependencies = [ [[package]] name = "nu-parser" -version = "0.94.2" +version = "0.94.3" dependencies = [ "bytesize", "chrono", @@ -3128,7 +3128,7 @@ dependencies = [ [[package]] name = "nu-path" -version = "0.94.2" +version = "0.94.3" dependencies = [ "dirs-next", "omnipath", @@ -3137,7 +3137,7 @@ dependencies = [ [[package]] name = "nu-plugin" -version = "0.94.2" +version = "0.94.3" dependencies = [ "log", "nix", @@ -3152,7 +3152,7 @@ dependencies = [ [[package]] name = "nu-plugin-core" -version = "0.94.2" +version = "0.94.3" dependencies = [ "interprocess", "log", @@ -3166,7 +3166,7 @@ dependencies = [ [[package]] name = "nu-plugin-engine" -version = "0.94.2" +version = "0.94.3" dependencies = [ "log", "nu-engine", @@ -3181,7 +3181,7 @@ dependencies = [ [[package]] name = "nu-plugin-protocol" -version = "0.94.2" +version = "0.94.3" dependencies = [ "bincode", "nu-protocol", @@ -3193,7 +3193,7 @@ dependencies = [ [[package]] name = "nu-plugin-test-support" -version = "0.94.2" +version = "0.94.3" dependencies = [ "nu-ansi-term", "nu-cmd-lang", @@ -3211,7 +3211,7 @@ dependencies = [ [[package]] name = "nu-pretty-hex" -version = "0.94.2" +version = "0.94.3" dependencies = [ "heapless", "nu-ansi-term", @@ -3220,7 +3220,7 @@ dependencies = [ [[package]] name = "nu-protocol" -version = "0.94.2" +version = "0.94.3" dependencies = [ "brotli 5.0.0", "byte-unit", @@ -3251,7 +3251,7 @@ dependencies = [ [[package]] name = "nu-std" -version = "0.94.2" +version = "0.94.3" dependencies = [ "log", "miette", @@ -3262,7 +3262,7 @@ dependencies = [ [[package]] name = "nu-system" -version = "0.94.2" +version = "0.94.3" dependencies = [ "chrono", "itertools 0.12.1", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "nu-table" -version = "0.94.2" +version = "0.94.3" dependencies = [ "fancy-regex", "nu-ansi-term", @@ -3294,7 +3294,7 @@ dependencies = [ [[package]] name = "nu-term-grid" -version = "0.94.2" +version = "0.94.3" dependencies = [ "nu-utils", "unicode-width", @@ -3302,7 +3302,7 @@ dependencies = [ [[package]] name = "nu-test-support" -version = "0.94.2" +version = "0.94.3" dependencies = [ "nu-glob", "nu-path", @@ -3314,7 +3314,7 @@ dependencies = [ [[package]] name = "nu-utils" -version = "0.94.2" +version = "0.94.3" dependencies = [ "crossterm_winapi", "log", @@ -3340,7 +3340,7 @@ dependencies = [ [[package]] name = "nu_plugin_example" -version = "0.94.2" +version = "0.94.3" dependencies = [ "nu-cmd-lang", "nu-plugin", @@ -3350,7 +3350,7 @@ dependencies = [ [[package]] name = "nu_plugin_formats" -version = "0.94.2" +version = "0.94.3" dependencies = [ "eml-parser", "ical", @@ -3363,7 +3363,7 @@ dependencies = [ [[package]] name = "nu_plugin_gstat" -version = "0.94.2" +version = "0.94.3" dependencies = [ "git2", "nu-plugin", @@ -3372,7 +3372,7 @@ dependencies = [ [[package]] name = "nu_plugin_inc" -version = "0.94.2" +version = "0.94.3" dependencies = [ "nu-plugin", "nu-protocol", @@ -3381,7 +3381,7 @@ dependencies = [ [[package]] name = "nu_plugin_polars" -version = "0.94.2" +version = "0.94.3" dependencies = [ "chrono", "chrono-tz 0.9.0", @@ -3412,7 +3412,7 @@ dependencies = [ [[package]] name = "nu_plugin_query" -version = "0.94.2" +version = "0.94.3" dependencies = [ "gjson", "nu-plugin", @@ -3424,7 +3424,7 @@ dependencies = [ [[package]] name = "nu_plugin_stress_internals" -version = "0.94.2" +version = "0.94.3" dependencies = [ "interprocess", "serde", @@ -3550,7 +3550,7 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "nuon" -version = "0.94.2" +version = "0.94.3" dependencies = [ "chrono", "fancy-regex", diff --git a/Cargo.toml b/Cargo.toml index ce9157efb4..2d99b7b42e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ license = "MIT" name = "nu" repository = "https://github.com/nushell/nushell" rust-version = "1.77.2" -version = "0.94.2" +version = "0.94.3" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -174,22 +174,22 @@ windows = "0.54" winreg = "0.52" [dependencies] -nu-cli = { path = "./crates/nu-cli", version = "0.94.2" } -nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.94.2" } -nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.94.2" } -nu-cmd-plugin = { path = "./crates/nu-cmd-plugin", version = "0.94.2", optional = true } -nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.94.2" } -nu-command = { path = "./crates/nu-command", version = "0.94.2" } -nu-engine = { path = "./crates/nu-engine", version = "0.94.2" } -nu-explore = { path = "./crates/nu-explore", version = "0.94.2" } -nu-lsp = { path = "./crates/nu-lsp/", version = "0.94.2" } -nu-parser = { path = "./crates/nu-parser", version = "0.94.2" } -nu-path = { path = "./crates/nu-path", version = "0.94.2" } -nu-plugin-engine = { path = "./crates/nu-plugin-engine", optional = true, version = "0.94.2" } -nu-protocol = { path = "./crates/nu-protocol", version = "0.94.2" } -nu-std = { path = "./crates/nu-std", version = "0.94.2" } -nu-system = { path = "./crates/nu-system", version = "0.94.2" } -nu-utils = { path = "./crates/nu-utils", version = "0.94.2" } +nu-cli = { path = "./crates/nu-cli", version = "0.94.3" } +nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.94.3" } +nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.94.3" } +nu-cmd-plugin = { path = "./crates/nu-cmd-plugin", version = "0.94.3", optional = true } +nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.94.3" } +nu-command = { path = "./crates/nu-command", version = "0.94.3" } +nu-engine = { path = "./crates/nu-engine", version = "0.94.3" } +nu-explore = { path = "./crates/nu-explore", version = "0.94.3" } +nu-lsp = { path = "./crates/nu-lsp/", version = "0.94.3" } +nu-parser = { path = "./crates/nu-parser", version = "0.94.3" } +nu-path = { path = "./crates/nu-path", version = "0.94.3" } +nu-plugin-engine = { path = "./crates/nu-plugin-engine", optional = true, version = "0.94.3" } +nu-protocol = { path = "./crates/nu-protocol", version = "0.94.3" } +nu-std = { path = "./crates/nu-std", version = "0.94.3" } +nu-system = { path = "./crates/nu-system", version = "0.94.3" } +nu-utils = { path = "./crates/nu-utils", version = "0.94.3" } reedline = { workspace = true, features = ["bashisms", "sqlite"] } @@ -218,9 +218,9 @@ nix = { workspace = true, default-features = false, features = [ ] } [dev-dependencies] -nu-test-support = { path = "./crates/nu-test-support", version = "0.94.2" } -nu-plugin-protocol = { path = "./crates/nu-plugin-protocol", version = "0.94.2" } -nu-plugin-core = { path = "./crates/nu-plugin-core", version = "0.94.2" } +nu-test-support = { path = "./crates/nu-test-support", version = "0.94.3" } +nu-plugin-protocol = { path = "./crates/nu-plugin-protocol", version = "0.94.3" } +nu-plugin-core = { path = "./crates/nu-plugin-core", version = "0.94.3" } assert_cmd = "2.0" dirs-next = { workspace = true } tango-bench = "0.5" @@ -305,4 +305,4 @@ bench = false # Run individual benchmarks like `cargo bench -- ` e.g. `cargo bench -- parse` [[bench]] name = "benchmarks" -harness = false \ No newline at end of file +harness = false diff --git a/crates/nu-cli/Cargo.toml b/crates/nu-cli/Cargo.toml index 0d82fa4aae..c2ca2c9704 100644 --- a/crates/nu-cli/Cargo.toml +++ b/crates/nu-cli/Cargo.toml @@ -5,27 +5,27 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cli" edition = "2021" license = "MIT" name = "nu-cli" -version = "0.94.2" +version = "0.94.3" [lib] bench = false [dev-dependencies] -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } -nu-command = { path = "../nu-command", version = "0.94.2" } -nu-test-support = { path = "../nu-test-support", version = "0.94.2" } +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.3" } +nu-command = { path = "../nu-command", version = "0.94.3" } +nu-test-support = { path = "../nu-test-support", version = "0.94.3" } rstest = { workspace = true, default-features = false } tempfile = { workspace = true } [dependencies] -nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.2" } -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-path = { path = "../nu-path", version = "0.94.2" } -nu-parser = { path = "../nu-parser", version = "0.94.2" } -nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.2", optional = true } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-utils = { path = "../nu-utils", version = "0.94.2" } -nu-color-config = { path = "../nu-color-config", version = "0.94.2" } +nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.3" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-path = { path = "../nu-path", version = "0.94.3" } +nu-parser = { path = "../nu-parser", version = "0.94.3" } +nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.3", optional = true } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-utils = { path = "../nu-utils", version = "0.94.3" } +nu-color-config = { path = "../nu-color-config", version = "0.94.3" } nu-ansi-term = { workspace = true } reedline = { workspace = true, features = ["bashisms", "sqlite"] } @@ -46,4 +46,4 @@ which = { workspace = true } [features] plugin = ["nu-plugin-engine"] -system-clipboard = ["reedline/system_clipboard"] \ No newline at end of file +system-clipboard = ["reedline/system_clipboard"] diff --git a/crates/nu-cmd-base/Cargo.toml b/crates/nu-cmd-base/Cargo.toml index 858ff55e2d..fb6a977ab9 100644 --- a/crates/nu-cmd-base/Cargo.toml +++ b/crates/nu-cmd-base/Cargo.toml @@ -5,17 +5,17 @@ edition = "2021" license = "MIT" name = "nu-cmd-base" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-base" -version = "0.94.2" +version = "0.94.3" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-parser = { path = "../nu-parser", version = "0.94.2" } -nu-path = { path = "../nu-path", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-parser = { path = "../nu-parser", version = "0.94.3" } +nu-path = { path = "../nu-path", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } indexmap = { workspace = true } miette = { workspace = true } -[dev-dependencies] \ No newline at end of file +[dev-dependencies] diff --git a/crates/nu-cmd-extra/Cargo.toml b/crates/nu-cmd-extra/Cargo.toml index b03c7911ed..39a705f47c 100644 --- a/crates/nu-cmd-extra/Cargo.toml +++ b/crates/nu-cmd-extra/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "MIT" name = "nu-cmd-extra" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-extra" -version = "0.94.2" +version = "0.94.3" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -13,13 +13,13 @@ version = "0.94.2" bench = false [dependencies] -nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.2" } -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-json = { version = "0.94.2", path = "../nu-json" } -nu-parser = { path = "../nu-parser", version = "0.94.2" } -nu-pretty-hex = { version = "0.94.2", path = "../nu-pretty-hex" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-utils = { path = "../nu-utils", version = "0.94.2" } +nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.3" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-json = { version = "0.94.3", path = "../nu-json" } +nu-parser = { path = "../nu-parser", version = "0.94.3" } +nu-pretty-hex = { version = "0.94.3", path = "../nu-pretty-hex" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-utils = { path = "../nu-utils", version = "0.94.3" } # Potential dependencies for extras heck = { workspace = true } @@ -37,6 +37,6 @@ extra = ["default"] default = [] [dev-dependencies] -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } -nu-command = { path = "../nu-command", version = "0.94.2" } -nu-test-support = { path = "../nu-test-support", version = "0.94.2" } \ No newline at end of file +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.3" } +nu-command = { path = "../nu-command", version = "0.94.3" } +nu-test-support = { path = "../nu-test-support", version = "0.94.3" } diff --git a/crates/nu-cmd-lang/Cargo.toml b/crates/nu-cmd-lang/Cargo.toml index ad94c331d8..22e1cad374 100644 --- a/crates/nu-cmd-lang/Cargo.toml +++ b/crates/nu-cmd-lang/Cargo.toml @@ -6,16 +6,16 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-lang" edition = "2021" license = "MIT" name = "nu-cmd-lang" -version = "0.94.2" +version = "0.94.3" [lib] bench = false [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-parser = { path = "../nu-parser", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-utils = { path = "../nu-utils", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-parser = { path = "../nu-parser", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-utils = { path = "../nu-utils", version = "0.94.3" } itertools = { workspace = true } shadow-rs = { version = "0.28", default-features = false } @@ -29,4 +29,4 @@ which-support = [] trash-support = [] sqlite = [] static-link-openssl = [] -system-clipboard = [] \ No newline at end of file +system-clipboard = [] diff --git a/crates/nu-cmd-plugin/Cargo.toml b/crates/nu-cmd-plugin/Cargo.toml index 62ed6851b5..d274f46a6a 100644 --- a/crates/nu-cmd-plugin/Cargo.toml +++ b/crates/nu-cmd-plugin/Cargo.toml @@ -5,16 +5,16 @@ edition = "2021" license = "MIT" name = "nu-cmd-plugin" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-plugin" -version = "0.94.2" +version = "0.94.3" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-path = { path = "../nu-path", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } -nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-path = { path = "../nu-path", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3", features = ["plugin"] } +nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.3" } itertools = { workspace = true } -[dev-dependencies] \ No newline at end of file +[dev-dependencies] diff --git a/crates/nu-color-config/Cargo.toml b/crates/nu-color-config/Cargo.toml index 6268acf6f6..95b06c1f77 100644 --- a/crates/nu-color-config/Cargo.toml +++ b/crates/nu-color-config/Cargo.toml @@ -5,18 +5,18 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-color-confi edition = "2021" license = "MIT" name = "nu-color-config" -version = "0.94.2" +version = "0.94.3" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-json = { path = "../nu-json", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-json = { path = "../nu-json", version = "0.94.3" } nu-ansi-term = { workspace = true } serde = { workspace = true, features = ["derive"] } [dev-dependencies] -nu-test-support = { path = "../nu-test-support", version = "0.94.2" } \ No newline at end of file +nu-test-support = { path = "../nu-test-support", version = "0.94.3" } diff --git a/crates/nu-command/Cargo.toml b/crates/nu-command/Cargo.toml index 1a88a24e5e..c6f71c8d25 100644 --- a/crates/nu-command/Cargo.toml +++ b/crates/nu-command/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "MIT" name = "nu-command" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-command" -version = "0.94.2" +version = "0.94.3" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -13,21 +13,21 @@ version = "0.94.2" bench = false [dependencies] -nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.2" } -nu-color-config = { path = "../nu-color-config", version = "0.94.2" } -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-glob = { path = "../nu-glob", version = "0.94.2" } -nu-json = { path = "../nu-json", version = "0.94.2" } -nu-parser = { path = "../nu-parser", version = "0.94.2" } -nu-path = { path = "../nu-path", version = "0.94.2" } -nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-system = { path = "../nu-system", version = "0.94.2" } -nu-table = { path = "../nu-table", version = "0.94.2" } -nu-term-grid = { path = "../nu-term-grid", version = "0.94.2" } -nu-utils = { path = "../nu-utils", version = "0.94.2" } +nu-cmd-base = { path = "../nu-cmd-base", version = "0.94.3" } +nu-color-config = { path = "../nu-color-config", version = "0.94.3" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-glob = { path = "../nu-glob", version = "0.94.3" } +nu-json = { path = "../nu-json", version = "0.94.3" } +nu-parser = { path = "../nu-parser", version = "0.94.3" } +nu-path = { path = "../nu-path", version = "0.94.3" } +nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-system = { path = "../nu-system", version = "0.94.3" } +nu-table = { path = "../nu-table", version = "0.94.3" } +nu-term-grid = { path = "../nu-term-grid", version = "0.94.3" } +nu-utils = { path = "../nu-utils", version = "0.94.3" } nu-ansi-term = { workspace = true } -nuon = { path = "../nuon", version = "0.94.2" } +nuon = { path = "../nuon", version = "0.94.3" } alphanumeric-sort = { workspace = true } base64 = { workspace = true } @@ -137,8 +137,8 @@ trash-support = ["trash"] which-support = [] [dev-dependencies] -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } -nu-test-support = { path = "../nu-test-support", version = "0.94.2" } +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.3" } +nu-test-support = { path = "../nu-test-support", version = "0.94.3" } dirs-next = { workspace = true } mockito = { workspace = true, default-features = false } @@ -146,4 +146,4 @@ quickcheck = { workspace = true } quickcheck_macros = { workspace = true } rstest = { workspace = true, default-features = false } pretty_assertions = { workspace = true } -tempfile = { workspace = true } \ No newline at end of file +tempfile = { workspace = true } diff --git a/crates/nu-engine/Cargo.toml b/crates/nu-engine/Cargo.toml index d8a90fb70e..fae2b3eff4 100644 --- a/crates/nu-engine/Cargo.toml +++ b/crates/nu-engine/Cargo.toml @@ -5,16 +5,16 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-engine" edition = "2021" license = "MIT" name = "nu-engine" -version = "0.94.2" +version = "0.94.3" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", features = ["plugin"], version = "0.94.2" } -nu-path = { path = "../nu-path", version = "0.94.2" } -nu-glob = { path = "../nu-glob", version = "0.94.2" } -nu-utils = { path = "../nu-utils", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", features = ["plugin"], version = "0.94.3" } +nu-path = { path = "../nu-path", version = "0.94.3" } +nu-glob = { path = "../nu-glob", version = "0.94.3" } +nu-utils = { path = "../nu-utils", version = "0.94.3" } [features] -plugin = [] \ No newline at end of file +plugin = [] diff --git a/crates/nu-explore/Cargo.toml b/crates/nu-explore/Cargo.toml index 0837d9d683..dc17e6087d 100644 --- a/crates/nu-explore/Cargo.toml +++ b/crates/nu-explore/Cargo.toml @@ -5,21 +5,21 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-explore" edition = "2021" license = "MIT" name = "nu-explore" -version = "0.94.2" +version = "0.94.3" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-parser = { path = "../nu-parser", version = "0.94.2" } -nu-color-config = { path = "../nu-color-config", version = "0.94.2" } -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-table = { path = "../nu-table", version = "0.94.2" } -nu-json = { path = "../nu-json", version = "0.94.2" } -nu-utils = { path = "../nu-utils", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-parser = { path = "../nu-parser", version = "0.94.3" } +nu-color-config = { path = "../nu-color-config", version = "0.94.3" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-table = { path = "../nu-table", version = "0.94.3" } +nu-json = { path = "../nu-json", version = "0.94.3" } +nu-utils = { path = "../nu-utils", version = "0.94.3" } nu-ansi-term = { workspace = true } -nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.94.2" } +nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.94.3" } anyhow = { workspace = true } log = { workspace = true } @@ -32,4 +32,4 @@ ansi-str = { workspace = true } unicode-width = { workspace = true } lscolors = { workspace = true, default-features = false, features = [ "nu-ansi-term", -] } \ No newline at end of file +] } diff --git a/crates/nu-glob/Cargo.toml b/crates/nu-glob/Cargo.toml index d7568f7b2d..3e0dbfbd12 100644 --- a/crates/nu-glob/Cargo.toml +++ b/crates/nu-glob/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nu-glob" -version = "0.94.2" +version = "0.94.3" authors = ["The Nushell Project Developers", "The Rust Project Developers"] license = "MIT/Apache-2.0" description = """ @@ -14,4 +14,4 @@ categories = ["filesystem"] bench = false [dev-dependencies] -doc-comment = "0.3" \ No newline at end of file +doc-comment = "0.3" diff --git a/crates/nu-json/Cargo.toml b/crates/nu-json/Cargo.toml index 63a80f4b91..9d348d00d4 100644 --- a/crates/nu-json/Cargo.toml +++ b/crates/nu-json/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-json" edition = "2021" license = "MIT" name = "nu-json" -version = "0.94.2" +version = "0.94.3" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -23,5 +23,5 @@ serde = { workspace = true } serde_json = { workspace = true } [dev-dependencies] -# nu-path = { path="../nu-path", version = "0.94.2" } -# serde_json = "1.0" \ No newline at end of file +# nu-path = { path="../nu-path", version = "0.94.3" } +# serde_json = "1.0" diff --git a/crates/nu-lsp/Cargo.toml b/crates/nu-lsp/Cargo.toml index 0732862bff..c4e495f040 100644 --- a/crates/nu-lsp/Cargo.toml +++ b/crates/nu-lsp/Cargo.toml @@ -3,14 +3,14 @@ authors = ["The Nushell Project Developers"] description = "Nushell's integrated LSP server" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-lsp" name = "nu-lsp" -version = "0.94.2" +version = "0.94.3" edition = "2021" license = "MIT" [dependencies] -nu-cli = { path = "../nu-cli", version = "0.94.2" } -nu-parser = { path = "../nu-parser", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-cli = { path = "../nu-cli", version = "0.94.3" } +nu-parser = { path = "../nu-parser", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } reedline = { workspace = true } @@ -23,8 +23,8 @@ serde = { workspace = true } serde_json = { workspace = true } [dev-dependencies] -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } -nu-command = { path = "../nu-command", version = "0.94.2" } -nu-test-support = { path = "../nu-test-support", version = "0.94.2" } +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.3" } +nu-command = { path = "../nu-command", version = "0.94.3" } +nu-test-support = { path = "../nu-test-support", version = "0.94.3" } -assert-json-diff = "2.0" \ No newline at end of file +assert-json-diff = "2.0" diff --git a/crates/nu-parser/Cargo.toml b/crates/nu-parser/Cargo.toml index fa840fc483..742009424a 100644 --- a/crates/nu-parser/Cargo.toml +++ b/crates/nu-parser/Cargo.toml @@ -5,17 +5,17 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-parser" edition = "2021" license = "MIT" name = "nu-parser" -version = "0.94.2" +version = "0.94.3" exclude = ["/fuzz"] [lib] bench = false [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-path = { path = "../nu-path", version = "0.94.2" } -nu-plugin-engine = { path = "../nu-plugin-engine", optional = true, version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-path = { path = "../nu-path", version = "0.94.3" } +nu-plugin-engine = { path = "../nu-plugin-engine", optional = true, version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } bytesize = { workspace = true } chrono = { default-features = false, features = ['std'], workspace = true } @@ -27,4 +27,4 @@ serde_json = { workspace = true } rstest = { workspace = true, default-features = false } [features] -plugin = ["nu-plugin-engine"] \ No newline at end of file +plugin = ["nu-plugin-engine"] diff --git a/crates/nu-path/Cargo.toml b/crates/nu-path/Cargo.toml index bdd0157e4f..e3c84acdb3 100644 --- a/crates/nu-path/Cargo.toml +++ b/crates/nu-path/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-path" edition = "2021" license = "MIT" name = "nu-path" -version = "0.94.2" +version = "0.94.3" exclude = ["/fuzz"] [lib] @@ -18,4 +18,4 @@ dirs-next = { workspace = true } omnipath = { workspace = true } [target.'cfg(all(unix, not(target_os = "macos"), not(target_os = "android")))'.dependencies] -pwd = { workspace = true } \ No newline at end of file +pwd = { workspace = true } diff --git a/crates/nu-plugin-core/Cargo.toml b/crates/nu-plugin-core/Cargo.toml index 580e0287e2..965b09d085 100644 --- a/crates/nu-plugin-core/Cargo.toml +++ b/crates/nu-plugin-core/Cargo.toml @@ -5,14 +5,14 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin-core edition = "2021" license = "MIT" name = "nu-plugin-core" -version = "0.94.2" +version = "0.94.3" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.2", default-features = false } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.3", default-features = false } rmp-serde = { workspace = true } serde = { workspace = true } @@ -25,4 +25,4 @@ default = ["local-socket"] local-socket = ["interprocess", "nu-plugin-protocol/local-socket"] [target.'cfg(target_os = "windows")'.dependencies] -windows = { workspace = true } \ No newline at end of file +windows = { workspace = true } diff --git a/crates/nu-plugin-engine/Cargo.toml b/crates/nu-plugin-engine/Cargo.toml index 50fe40ab0a..95c0298c09 100644 --- a/crates/nu-plugin-engine/Cargo.toml +++ b/crates/nu-plugin-engine/Cargo.toml @@ -5,17 +5,17 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin-engi edition = "2021" license = "MIT" name = "nu-plugin-engine" -version = "0.94.2" +version = "0.94.3" [lib] bench = false [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-system = { path = "../nu-system", version = "0.94.2" } -nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.2" } -nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.2", default-features = false } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-system = { path = "../nu-system", version = "0.94.3" } +nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.3" } +nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.3", default-features = false } serde = { workspace = true } log = { workspace = true } @@ -31,4 +31,4 @@ local-socket = ["nu-plugin-core/local-socket"] windows = { workspace = true, features = [ # For setting process creation flags "Win32_System_Threading", -] } \ No newline at end of file +] } diff --git a/crates/nu-plugin-protocol/Cargo.toml b/crates/nu-plugin-protocol/Cargo.toml index b52655a4f1..41c8a7c535 100644 --- a/crates/nu-plugin-protocol/Cargo.toml +++ b/crates/nu-plugin-protocol/Cargo.toml @@ -5,14 +5,14 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin-prot edition = "2021" license = "MIT" name = "nu-plugin-protocol" -version = "0.94.2" +version = "0.94.3" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } -nu-utils = { path = "../nu-utils", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3", features = ["plugin"] } +nu-utils = { path = "../nu-utils", version = "0.94.3" } bincode = "1.3" serde = { workspace = true, features = ["derive"] } @@ -21,4 +21,4 @@ typetag = "0.2" [features] default = ["local-socket"] -local-socket = [] \ No newline at end of file +local-socket = [] diff --git a/crates/nu-plugin-test-support/Cargo.toml b/crates/nu-plugin-test-support/Cargo.toml index b5ef1e4c02..bc390d3994 100644 --- a/crates/nu-plugin-test-support/Cargo.toml +++ b/crates/nu-plugin-test-support/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nu-plugin-test-support" -version = "0.94.2" +version = "0.94.3" edition = "2021" license = "MIT" description = "Testing support for Nushell plugins" @@ -12,17 +12,17 @@ bench = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.2", features = ["plugin"] } -nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } -nu-parser = { path = "../nu-parser", version = "0.94.2", features = ["plugin"] } -nu-plugin = { path = "../nu-plugin", version = "0.94.2" } -nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.2" } -nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.2" } -nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.2" } -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } +nu-engine = { path = "../nu-engine", version = "0.94.3", features = ["plugin"] } +nu-protocol = { path = "../nu-protocol", version = "0.94.3", features = ["plugin"] } +nu-parser = { path = "../nu-parser", version = "0.94.3", features = ["plugin"] } +nu-plugin = { path = "../nu-plugin", version = "0.94.3" } +nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.3" } +nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.94.3" } +nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.3" } +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.3" } nu-ansi-term = { workspace = true } similar = "2.5" [dev-dependencies] typetag = "0.2" -serde = "1.0" \ No newline at end of file +serde = "1.0" diff --git a/crates/nu-plugin/Cargo.toml b/crates/nu-plugin/Cargo.toml index 0a9a169474..68b3a7cadd 100644 --- a/crates/nu-plugin/Cargo.toml +++ b/crates/nu-plugin/Cargo.toml @@ -5,16 +5,16 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin" edition = "2021" license = "MIT" name = "nu-plugin" -version = "0.94.2" +version = "0.94.3" [lib] bench = false [dependencies] -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.2" } -nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.2", default-features = false } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.94.3" } +nu-plugin-core = { path = "../nu-plugin-core", version = "0.94.3", default-features = false } log = { workspace = true } thiserror = "1.0" @@ -29,4 +29,4 @@ local-socket = ["nu-plugin-core/local-socket"] [target.'cfg(target_family = "unix")'.dependencies] # For setting the process group ID (EnterForeground / LeaveForeground) -nix = { workspace = true, default-features = false, features = ["process"] } \ No newline at end of file +nix = { workspace = true, default-features = false, features = ["process"] } diff --git a/crates/nu-pretty-hex/Cargo.toml b/crates/nu-pretty-hex/Cargo.toml index 152d03df72..ae5be298aa 100644 --- a/crates/nu-pretty-hex/Cargo.toml +++ b/crates/nu-pretty-hex/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-pretty-hex" edition = "2021" license = "MIT" name = "nu-pretty-hex" -version = "0.94.2" +version = "0.94.3" [lib] doctest = false @@ -18,4 +18,4 @@ nu-ansi-term = { workspace = true } [dev-dependencies] heapless = { version = "0.8", default-features = false } -rand = "0.8" \ No newline at end of file +rand = "0.8" diff --git a/crates/nu-protocol/Cargo.toml b/crates/nu-protocol/Cargo.toml index 2ccd0a07ce..de73ba1a2c 100644 --- a/crates/nu-protocol/Cargo.toml +++ b/crates/nu-protocol/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-protocol" edition = "2021" license = "MIT" name = "nu-protocol" -version = "0.94.2" +version = "0.94.3" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -13,9 +13,9 @@ version = "0.94.2" bench = false [dependencies] -nu-utils = { path = "../nu-utils", version = "0.94.2" } -nu-path = { path = "../nu-path", version = "0.94.2" } -nu-system = { path = "../nu-system", version = "0.94.2" } +nu-utils = { path = "../nu-utils", version = "0.94.3" } +nu-path = { path = "../nu-path", version = "0.94.3" } +nu-system = { path = "../nu-system", version = "0.94.3" } brotli = { workspace = true, optional = true } byte-unit = { version = "5.1", features = [ "serde" ] } @@ -45,11 +45,11 @@ plugin = [ serde_json = { workspace = true } strum = "0.26" strum_macros = "0.26" -nu-test-support = { path = "../nu-test-support", version = "0.94.2" } +nu-test-support = { path = "../nu-test-support", version = "0.94.3" } pretty_assertions = { workspace = true } rstest = { workspace = true } tempfile = { workspace = true } os_pipe = { workspace = true } [package.metadata.docs.rs] -all-features = true \ No newline at end of file +all-features = true diff --git a/crates/nu-std/Cargo.toml b/crates/nu-std/Cargo.toml index 4e5850c3fb..660d418097 100644 --- a/crates/nu-std/Cargo.toml +++ b/crates/nu-std/Cargo.toml @@ -5,12 +5,12 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-std" edition = "2021" license = "MIT" name = "nu-std" -version = "0.94.2" +version = "0.94.3" [dependencies] -nu-parser = { version = "0.94.2", path = "../nu-parser" } -nu-protocol = { version = "0.94.2", path = "../nu-protocol" } -nu-engine = { version = "0.94.2", path = "../nu-engine" } +nu-parser = { version = "0.94.3", path = "../nu-parser" } +nu-protocol = { version = "0.94.3", path = "../nu-protocol" } +nu-engine = { version = "0.94.3", path = "../nu-engine" } miette = { workspace = true, features = ["fancy-no-backtrace"] } -log = "0.4" \ No newline at end of file +log = "0.4" diff --git a/crates/nu-system/Cargo.toml b/crates/nu-system/Cargo.toml index 17e621db90..3e888dba49 100644 --- a/crates/nu-system/Cargo.toml +++ b/crates/nu-system/Cargo.toml @@ -3,7 +3,7 @@ authors = ["The Nushell Project Developers", "procs creators"] description = "Nushell system querying" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-system" name = "nu-system" -version = "0.94.2" +version = "0.94.3" edition = "2021" license = "MIT" @@ -45,4 +45,4 @@ windows = { workspace = true, features = [ "Win32_System_SystemInformation", "Win32_System_Threading", "Win32_UI_Shell", -]} \ No newline at end of file +]} diff --git a/crates/nu-table/Cargo.toml b/crates/nu-table/Cargo.toml index fe1de742d9..af7cf19f36 100644 --- a/crates/nu-table/Cargo.toml +++ b/crates/nu-table/Cargo.toml @@ -5,20 +5,20 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-table" edition = "2021" license = "MIT" name = "nu-table" -version = "0.94.2" +version = "0.94.3" [lib] bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-utils = { path = "../nu-utils", version = "0.94.2" } -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-color-config = { path = "../nu-color-config", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-utils = { path = "../nu-utils", version = "0.94.3" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-color-config = { path = "../nu-color-config", version = "0.94.3" } nu-ansi-term = { workspace = true } once_cell = { workspace = true } fancy-regex = { workspace = true } tabled = { workspace = true, features = ["color"], default-features = false } [dev-dependencies] -# nu-test-support = { path="../nu-test-support", version = "0.94.2" } \ No newline at end of file +# nu-test-support = { path="../nu-test-support", version = "0.94.3" } diff --git a/crates/nu-term-grid/Cargo.toml b/crates/nu-term-grid/Cargo.toml index bc560257f8..47f6724b53 100644 --- a/crates/nu-term-grid/Cargo.toml +++ b/crates/nu-term-grid/Cargo.toml @@ -5,12 +5,12 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-term-grid" edition = "2021" license = "MIT" name = "nu-term-grid" -version = "0.94.2" +version = "0.94.3" [lib] bench = false [dependencies] -nu-utils = { path = "../nu-utils", version = "0.94.2" } +nu-utils = { path = "../nu-utils", version = "0.94.3" } -unicode-width = { workspace = true } \ No newline at end of file +unicode-width = { workspace = true } diff --git a/crates/nu-test-support/Cargo.toml b/crates/nu-test-support/Cargo.toml index 07f4142d43..86a1bf35e7 100644 --- a/crates/nu-test-support/Cargo.toml +++ b/crates/nu-test-support/Cargo.toml @@ -5,17 +5,17 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-test-suppor edition = "2021" license = "MIT" name = "nu-test-support" -version = "0.94.2" +version = "0.94.3" [lib] doctest = false bench = false [dependencies] -nu-path = { path = "../nu-path", version = "0.94.2" } -nu-glob = { path = "../nu-glob", version = "0.94.2" } -nu-utils = { path = "../nu-utils", version = "0.94.2" } +nu-path = { path = "../nu-path", version = "0.94.3" } +nu-glob = { path = "../nu-glob", version = "0.94.3" } +nu-utils = { path = "../nu-utils", version = "0.94.3" } num-format = { workspace = true } which = { workspace = true } -tempfile = { workspace = true } \ No newline at end of file +tempfile = { workspace = true } diff --git a/crates/nu-utils/Cargo.toml b/crates/nu-utils/Cargo.toml index 584602f184..0677f655d0 100644 --- a/crates/nu-utils/Cargo.toml +++ b/crates/nu-utils/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "MIT" name = "nu-utils" repository = "https://github.com/nushell/nushell/tree/main/crates/nu-utils" -version = "0.94.2" +version = "0.94.3" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [[bin]] @@ -29,4 +29,4 @@ unicase = "2.7.0" crossterm_winapi = "0.9" [target.'cfg(unix)'.dependencies] -nix = { workspace = true, default-features = false, features = ["user", "fs"] } \ No newline at end of file +nix = { workspace = true, default-features = false, features = ["user", "fs"] } diff --git a/crates/nu-utils/src/sample_config/default_config.nu b/crates/nu-utils/src/sample_config/default_config.nu index 6d84d8d1de..b6b1fbf3f8 100644 --- a/crates/nu-utils/src/sample_config/default_config.nu +++ b/crates/nu-utils/src/sample_config/default_config.nu @@ -1,6 +1,6 @@ # Nushell Config File # -# version = "0.94.2" +# version = "0.94.3" # For more information on defining custom themes, see # https://www.nushell.sh/book/coloring_and_theming.html @@ -892,4 +892,4 @@ $env.config = { event: { edit: selectall } } ] -} \ No newline at end of file +} diff --git a/crates/nu-utils/src/sample_config/default_env.nu b/crates/nu-utils/src/sample_config/default_env.nu index edf0830f9f..57e255ed20 100644 --- a/crates/nu-utils/src/sample_config/default_env.nu +++ b/crates/nu-utils/src/sample_config/default_env.nu @@ -1,6 +1,6 @@ # Nushell Environment Config File # -# version = "0.94.2" +# version = "0.94.3" def create_left_prompt [] { let dir = match (do --ignore-shell-errors { $env.PWD | path relative-to $nu.home-path }) { @@ -97,4 +97,4 @@ $env.NU_PLUGIN_DIRS = [ # $env.PATH = ($env.PATH | uniq) # To load from a custom file you can use: -# source ($nu.default-config-dir | path join 'custom.nu') \ No newline at end of file +# source ($nu.default-config-dir | path join 'custom.nu') diff --git a/crates/nu_plugin_custom_values/Cargo.toml b/crates/nu_plugin_custom_values/Cargo.toml index 2f5ae29e3d..2791cdaa6f 100644 --- a/crates/nu_plugin_custom_values/Cargo.toml +++ b/crates/nu_plugin_custom_values/Cargo.toml @@ -10,10 +10,10 @@ name = "nu_plugin_custom_values" bench = false [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } +nu-plugin = { path = "../nu-plugin", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3", features = ["plugin"] } serde = { workspace = true, default-features = false } typetag = "0.2" [dev-dependencies] -nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.2" } \ No newline at end of file +nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.3" } diff --git a/crates/nu_plugin_example/Cargo.toml b/crates/nu_plugin_example/Cargo.toml index de370a0a5d..b2fd13abd9 100644 --- a/crates/nu_plugin_example/Cargo.toml +++ b/crates/nu_plugin_example/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_exam edition = "2021" license = "MIT" name = "nu_plugin_example" -version = "0.94.2" +version = "0.94.3" [[bin]] name = "nu_plugin_example" @@ -15,9 +15,9 @@ bench = false bench = false [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } +nu-plugin = { path = "../nu-plugin", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3", features = ["plugin"] } [dev-dependencies] -nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.2" } -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } \ No newline at end of file +nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.3" } +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.3" } diff --git a/crates/nu_plugin_formats/Cargo.toml b/crates/nu_plugin_formats/Cargo.toml index 797eb69656..a649a5bc5a 100644 --- a/crates/nu_plugin_formats/Cargo.toml +++ b/crates/nu_plugin_formats/Cargo.toml @@ -5,12 +5,12 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_form edition = "2021" license = "MIT" name = "nu_plugin_formats" -version = "0.94.2" +version = "0.94.3" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } +nu-plugin = { path = "../nu-plugin", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3", features = ["plugin"] } indexmap = { workspace = true } eml-parser = "0.1" @@ -18,4 +18,4 @@ ical = "0.11" rust-ini = "0.21.0" [dev-dependencies] -nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.2" } \ No newline at end of file +nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.3" } diff --git a/crates/nu_plugin_gstat/Cargo.toml b/crates/nu_plugin_gstat/Cargo.toml index a16bf019f6..01e17fdb54 100644 --- a/crates/nu_plugin_gstat/Cargo.toml +++ b/crates/nu_plugin_gstat/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_gsta edition = "2021" license = "MIT" name = "nu_plugin_gstat" -version = "0.94.2" +version = "0.94.3" [lib] doctest = false @@ -16,7 +16,7 @@ name = "nu_plugin_gstat" bench = false [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-plugin = { path = "../nu-plugin", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } -git2 = "0.18" \ No newline at end of file +git2 = "0.18" diff --git a/crates/nu_plugin_inc/Cargo.toml b/crates/nu_plugin_inc/Cargo.toml index 7b57d1591c..3701ad49bd 100644 --- a/crates/nu_plugin_inc/Cargo.toml +++ b/crates/nu_plugin_inc/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_inc" edition = "2021" license = "MIT" name = "nu_plugin_inc" -version = "0.94.2" +version = "0.94.3" [lib] doctest = false @@ -16,7 +16,7 @@ name = "nu_plugin_inc" bench = false [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2", features = ["plugin"] } +nu-plugin = { path = "../nu-plugin", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3", features = ["plugin"] } -semver = "1.0" \ No newline at end of file +semver = "1.0" diff --git a/crates/nu_plugin_nu_example/nu_plugin_nu_example.nu b/crates/nu_plugin_nu_example/nu_plugin_nu_example.nu index 15c8340c0e..028e9735fd 100755 --- a/crates/nu_plugin_nu_example/nu_plugin_nu_example.nu +++ b/crates/nu_plugin_nu_example/nu_plugin_nu_example.nu @@ -6,7 +6,7 @@ # it also allows us to test the plugin interface with something manually implemented in a scripting # language without adding any extra dependencies to our tests. -const NUSHELL_VERSION = "0.94.2" +const NUSHELL_VERSION = "0.94.3" def main [--stdio] { if ($stdio) { @@ -257,4 +257,4 @@ def start_plugin [] { }) | each { from json | handle_input } | ignore -} \ No newline at end of file +} diff --git a/crates/nu_plugin_polars/Cargo.toml b/crates/nu_plugin_polars/Cargo.toml index 0855bc9b16..a2c693128d 100644 --- a/crates/nu_plugin_polars/Cargo.toml +++ b/crates/nu_plugin_polars/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" license = "MIT" name = "nu_plugin_polars" repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_polars" -version = "0.94.2" +version = "0.94.3" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -17,9 +17,9 @@ bench = false bench = false [dependencies] -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-plugin = { path = "../nu-plugin", version = "0.94.2" } -nu-path = { path = "../nu-path", version = "0.94.2" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-plugin = { path = "../nu-plugin", version = "0.94.3" } +nu-path = { path = "../nu-path", version = "0.94.3" } # Potential dependencies for extras chrono = { workspace = true, features = ["std", "unstable-locales"], default-features = false } @@ -73,9 +73,9 @@ optional = false version = "0.39" [dev-dependencies] -nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.2" } -nu-engine = { path = "../nu-engine", version = "0.94.2" } -nu-parser = { path = "../nu-parser", version = "0.94.2" } -nu-command = { path = "../nu-command", version = "0.94.2" } -nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.2" } -tempfile.workspace = true \ No newline at end of file +nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.94.3" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } +nu-parser = { path = "../nu-parser", version = "0.94.3" } +nu-command = { path = "../nu-command", version = "0.94.3" } +nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.94.3" } +tempfile.workspace = true diff --git a/crates/nu_plugin_python/nu_plugin_python_example.py b/crates/nu_plugin_python/nu_plugin_python_example.py index b2cb06c7eb..3db89a0afc 100755 --- a/crates/nu_plugin_python/nu_plugin_python_example.py +++ b/crates/nu_plugin_python/nu_plugin_python_example.py @@ -27,7 +27,7 @@ import sys import json -NUSHELL_VERSION = "0.94.2" +NUSHELL_VERSION = "0.94.3" def signatures(): @@ -124,7 +124,7 @@ def process_call(id, plugin_call): span = plugin_call["call"]["head"] # Creates a Value of type List that will be encoded and sent to Nushell - f = lambda x, y: { + def f(x, y): return { "Int": { "val": x * y, "span": span @@ -169,7 +169,7 @@ def tell_nushell_hello(): """ hello = { "Hello": { - "protocol": "nu-plugin", # always this value + "protocol": "nu-plugin", # always this value "version": NUSHELL_VERSION, "features": [] } @@ -246,8 +246,9 @@ def plugin(): input = json.loads(line) handle_input(input) + if __name__ == "__main__": if len(sys.argv) == 2 and sys.argv[1] == "--stdio": plugin() else: - print("Run me from inside nushell!") \ No newline at end of file + print("Run me from inside nushell!") diff --git a/crates/nu_plugin_query/Cargo.toml b/crates/nu_plugin_query/Cargo.toml index 0fd251e646..20a2a2729d 100644 --- a/crates/nu_plugin_query/Cargo.toml +++ b/crates/nu_plugin_query/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_quer edition = "2021" license = "MIT" name = "nu_plugin_query" -version = "0.94.2" +version = "0.94.3" [lib] doctest = false @@ -16,10 +16,10 @@ name = "nu_plugin_query" bench = false [dependencies] -nu-plugin = { path = "../nu-plugin", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } +nu-plugin = { path = "../nu-plugin", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } gjson = "0.8" scraper = { default-features = false, version = "0.19" } sxd-document = "0.3" -sxd-xpath = "0.4" \ No newline at end of file +sxd-xpath = "0.4" diff --git a/crates/nu_plugin_stress_internals/Cargo.toml b/crates/nu_plugin_stress_internals/Cargo.toml index 884244a5db..7103d99cda 100644 --- a/crates/nu_plugin_stress_internals/Cargo.toml +++ b/crates/nu_plugin_stress_internals/Cargo.toml @@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_stre edition = "2021" license = "MIT" name = "nu_plugin_stress_internals" -version = "0.94.2" +version = "0.94.3" [[bin]] name = "nu_plugin_stress_internals" @@ -16,4 +16,4 @@ bench = false # assumptions about the serialized format serde = { workspace = true } serde_json = { workspace = true } -interprocess = { workspace = true } \ No newline at end of file +interprocess = { workspace = true } diff --git a/crates/nuon/Cargo.toml b/crates/nuon/Cargo.toml index 80a4de36ae..31c0cdd363 100644 --- a/crates/nuon/Cargo.toml +++ b/crates/nuon/Cargo.toml @@ -5,16 +5,16 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nuon" edition = "2021" license = "MIT" name = "nuon" -version = "0.94.2" +version = "0.94.3" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -nu-parser = { path = "../nu-parser", version = "0.94.2" } -nu-protocol = { path = "../nu-protocol", version = "0.94.2" } -nu-engine = { path = "../nu-engine", version = "0.94.2" } +nu-parser = { path = "../nu-parser", version = "0.94.3" } +nu-protocol = { path = "../nu-protocol", version = "0.94.3" } +nu-engine = { path = "../nu-engine", version = "0.94.3" } once_cell = { workspace = true } fancy-regex = { workspace = true } [dev-dependencies] -chrono = { workspace = true } \ No newline at end of file +chrono = { workspace = true } From a84fdb1d375aa0478cae0a452a8b1aa002deef07 Mon Sep 17 00:00:00 2001 From: Jack Wright <56345+ayax79@users.noreply.github.com> Date: Tue, 4 Jun 2024 16:40:02 -0700 Subject: [PATCH 08/19] Fixed a couple of incorrect errors messages (#13043) Fixed a couple of error message that incorrectly reported as parquet errors instead of CSV errors. --- crates/nu_plugin_polars/src/dataframe/eager/open.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/nu_plugin_polars/src/dataframe/eager/open.rs b/crates/nu_plugin_polars/src/dataframe/eager/open.rs index da9352b2d3..81ea537574 100644 --- a/crates/nu_plugin_polars/src/dataframe/eager/open.rs +++ b/crates/nu_plugin_polars/src/dataframe/eager/open.rs @@ -465,7 +465,7 @@ fn from_csv( let df: NuLazyFrame = csv_reader .finish() .map_err(|e| ShellError::GenericError { - error: "Parquet reader error".into(), + error: "CSV reader error".into(), msg: format!("{e:?}"), span: Some(call.head), help: None, @@ -531,7 +531,7 @@ fn from_csv( let df: NuDataFrame = csv_reader .finish() .map_err(|e| ShellError::GenericError { - error: "Parquet reader error".into(), + error: "CSV reader error".into(), msg: format!("{e:?}"), span: Some(call.head), help: None, From 7746e84199a51715df64d19d4ee5ef40ec05c78c Mon Sep 17 00:00:00 2001 From: Reilly Wood <26268125+rgwood@users.noreply.github.com> Date: Tue, 4 Jun 2024 16:43:12 -0700 Subject: [PATCH 09/19] Make LS_COLORS functionality faster in `explore`, especially on Windows (#12984) Closes #12980. More context there, but basically `explore` was getting file metadata for every row every time the record view was rendered. The quick fix for now is to do the `LS_COLORS` colouring with a `&str` instead of a path and file metadata. --- crates/nu-explore/src/nu_common/lscolor.rs | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/crates/nu-explore/src/nu_common/lscolor.rs b/crates/nu-explore/src/nu_common/lscolor.rs index 31a5571ef5..491d2c3f3a 100644 --- a/crates/nu-explore/src/nu_common/lscolor.rs +++ b/crates/nu-explore/src/nu_common/lscolor.rs @@ -4,7 +4,6 @@ use nu_ansi_term::{Color, Style}; use nu_engine::env_to_string; use nu_protocol::engine::{EngineState, Stack}; use nu_utils::get_ls_colors; -use std::fs::symlink_metadata; pub fn create_lscolors(engine_state: &EngineState, stack: &Stack) -> LsColors { let colors = stack @@ -14,6 +13,7 @@ pub fn create_lscolors(engine_state: &EngineState, stack: &Stack) -> LsColors { get_ls_colors(colors) } +/// Colorizes any columns named "name" in the table using LS_COLORS pub fn lscolorize(header: &[String], data: &mut [Vec], lscolors: &LsColors) { for (col, col_name) in header.iter().enumerate() { if col_name != "name" { @@ -33,14 +33,7 @@ pub fn lscolorize(header: &[String], data: &mut [Vec], lscolors: &LsColo fn get_path_style(path: &str, ls_colors: &LsColors) -> Option