mirror of
https://github.com/nushell/nushell.git
synced 2025-05-05 15:32:56 +00:00
Fixes #15675 I've added relevant test cases to ensure coverage of the identified bug. The issue originated from my crate and pertains to the bracoxide dependency—a bug I’ve internally referred to as IgnorantNumbers. I’ve submitted a fix and updated the bracoxide dependency accordingly.
334 lines
9.3 KiB
TOML
334 lines
9.3 KiB
TOML
[package]
|
|
authors = ["The Nushell Project Developers"]
|
|
build = "scripts/build.rs"
|
|
default-run = "nu"
|
|
description = "A new type of shell"
|
|
documentation = "https://www.nushell.sh/book/"
|
|
edition = "2021"
|
|
exclude = ["images"]
|
|
homepage = "https://www.nushell.sh"
|
|
license = "MIT"
|
|
name = "nu"
|
|
repository = "https://github.com/nushell/nushell"
|
|
rust-version = "1.84.1"
|
|
version = "0.104.1"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[package.metadata.binstall]
|
|
pkg-url = "{ repo }/releases/download/{ version }/{ name }-{ version }-{ target }.{ archive-format }"
|
|
pkg-fmt = "tgz"
|
|
|
|
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
|
|
pkg-fmt = "zip"
|
|
|
|
[workspace]
|
|
members = [
|
|
"crates/nu-cli",
|
|
"crates/nu-engine",
|
|
"crates/nu-parser",
|
|
"crates/nu-system",
|
|
"crates/nu-cmd-base",
|
|
"crates/nu-cmd-extra",
|
|
"crates/nu-cmd-lang",
|
|
"crates/nu-cmd-plugin",
|
|
"crates/nu-command",
|
|
"crates/nu-color-config",
|
|
"crates/nu-explore",
|
|
"crates/nu-json",
|
|
"crates/nu-lsp",
|
|
"crates/nu-pretty-hex",
|
|
"crates/nu-protocol",
|
|
"crates/nu-derive-value",
|
|
"crates/nu-plugin",
|
|
"crates/nu-plugin-core",
|
|
"crates/nu-plugin-engine",
|
|
"crates/nu-plugin-protocol",
|
|
"crates/nu-plugin-test-support",
|
|
"crates/nu_plugin_inc",
|
|
"crates/nu_plugin_gstat",
|
|
"crates/nu_plugin_example",
|
|
"crates/nu_plugin_query",
|
|
"crates/nu_plugin_custom_values",
|
|
"crates/nu_plugin_formats",
|
|
"crates/nu_plugin_polars",
|
|
"crates/nu_plugin_stress_internals",
|
|
"crates/nu-std",
|
|
"crates/nu-table",
|
|
"crates/nu-term-grid",
|
|
"crates/nu-test-support",
|
|
"crates/nu-utils",
|
|
"crates/nuon",
|
|
]
|
|
|
|
[workspace.dependencies]
|
|
alphanumeric-sort = "1.5"
|
|
ansi-str = "0.8"
|
|
anyhow = "1.0.82"
|
|
base64 = "0.22.1"
|
|
bracoxide = "0.1.6"
|
|
brotli = "7.0"
|
|
byteorder = "1.5"
|
|
bytes = "1"
|
|
bytesize = "1.3.3"
|
|
calamine = "0.27"
|
|
chardetng = "0.1.17"
|
|
chrono = { default-features = false, version = "0.4.34" }
|
|
chrono-humanize = "0.2.3"
|
|
chrono-tz = "0.10"
|
|
crossbeam-channel = "0.5.8"
|
|
crossterm = "0.28.1"
|
|
csv = "1.3"
|
|
ctrlc = "3.4"
|
|
devicons = "0.6.12"
|
|
dialoguer = { default-features = false, version = "0.11" }
|
|
digest = { default-features = false, version = "0.10" }
|
|
dirs = "5.0"
|
|
dirs-sys = "0.4"
|
|
dtparse = "2.0"
|
|
encoding_rs = "0.8"
|
|
fancy-regex = "0.14"
|
|
filesize = "0.2"
|
|
filetime = "0.2"
|
|
heck = "0.5.0"
|
|
human-date-parser = "0.3.0"
|
|
indexmap = "2.9"
|
|
indicatif = "0.17"
|
|
interprocess = "2.2.0"
|
|
is_executable = "1.0"
|
|
itertools = "0.13"
|
|
libc = "0.2"
|
|
libproc = "0.14"
|
|
log = "0.4"
|
|
lru = "0.12"
|
|
lscolors = { version = "0.17", default-features = false }
|
|
lsp-server = "0.7.8"
|
|
lsp-types = { version = "0.97.0", features = ["proposed"] }
|
|
lsp-textdocument = "0.4.2"
|
|
mach2 = "0.4"
|
|
md5 = { version = "0.10", package = "md-5" }
|
|
miette = "7.5"
|
|
mime = "0.3.17"
|
|
mime_guess = "2.0"
|
|
mockito = { version = "1.7", default-features = false }
|
|
multipart-rs = "0.1.13"
|
|
native-tls = "0.2"
|
|
nix = { version = "0.29", default-features = false }
|
|
notify-debouncer-full = { version = "0.3", default-features = false }
|
|
nu-ansi-term = "0.50.1"
|
|
nucleo-matcher = "0.3"
|
|
num-format = "0.4"
|
|
num-traits = "0.2"
|
|
oem_cp = "2.0.0"
|
|
omnipath = "0.1"
|
|
open = "5.3"
|
|
os_pipe = { version = "1.2", features = ["io_safety"] }
|
|
pathdiff = "0.2"
|
|
percent-encoding = "2"
|
|
pretty_assertions = "1.4"
|
|
print-positions = "0.6"
|
|
proc-macro-error2 = "2.0"
|
|
proc-macro2 = "1.0"
|
|
procfs = "0.17.0"
|
|
pwd = "1.3"
|
|
quick-xml = "0.37.0"
|
|
quickcheck = "1.0"
|
|
quickcheck_macros = "1.0"
|
|
quote = "1.0"
|
|
rand = "0.9"
|
|
getrandom = "0.2" # pick same version that rand requires
|
|
rand_chacha = "0.9"
|
|
ratatui = "0.29"
|
|
rayon = "1.10"
|
|
reedline = "0.40.0"
|
|
rmp = "0.8"
|
|
rmp-serde = "1.3"
|
|
roxmltree = "0.20"
|
|
rstest = { version = "0.23", default-features = false }
|
|
rstest_reuse = "0.7"
|
|
rusqlite = "0.31"
|
|
rust-embed = "8.7.0"
|
|
scopeguard = { version = "1.2.0" }
|
|
serde = { version = "1.0" }
|
|
serde_json = "1.0.97"
|
|
serde_urlencoded = "0.7.1"
|
|
serde_yaml = "0.9.33"
|
|
sha2 = "0.10"
|
|
strip-ansi-escapes = "0.2.0"
|
|
strum = "0.26"
|
|
strum_macros = "0.26"
|
|
syn = "2.0"
|
|
sysinfo = "0.33"
|
|
tabled = { version = "0.17.0", default-features = false }
|
|
tempfile = "3.15"
|
|
titlecase = "3.5"
|
|
toml = "0.8"
|
|
trash = "5.2"
|
|
update-informer = { version = "1.2.0", default-features = false, features = ["github", "native-tls", "ureq"] }
|
|
umask = "2.1"
|
|
unicode-segmentation = "1.12"
|
|
unicode-width = "0.2"
|
|
ureq = { version = "2.12", default-features = false, features = ["socks-proxy"] }
|
|
url = "2.2"
|
|
uu_cp = "0.0.30"
|
|
uu_mkdir = "0.0.30"
|
|
uu_mktemp = "0.0.30"
|
|
uu_mv = "0.0.30"
|
|
uu_touch = "0.0.30"
|
|
uu_whoami = "0.0.30"
|
|
uu_uname = "0.0.30"
|
|
uucore = "0.0.30"
|
|
uuid = "1.16.0"
|
|
v_htmlescape = "0.15.0"
|
|
wax = "0.6"
|
|
web-time = "1.1.0"
|
|
which = "7.0.0"
|
|
windows = "0.56"
|
|
windows-sys = "0.48"
|
|
winreg = "0.52"
|
|
memchr = "2.7.4"
|
|
|
|
[workspace.lints.clippy]
|
|
# Warning: workspace lints affect library code as well as tests, so don't enable lints that would be too noisy in tests like that.
|
|
# todo = "warn"
|
|
unchecked_duration_subtraction = "warn"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
nu-cli = { path = "./crates/nu-cli", version = "0.104.1" }
|
|
nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.104.1" }
|
|
nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.104.1" }
|
|
nu-cmd-plugin = { path = "./crates/nu-cmd-plugin", version = "0.104.1", optional = true }
|
|
nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.104.1" }
|
|
nu-command = { path = "./crates/nu-command", version = "0.104.1" }
|
|
nu-engine = { path = "./crates/nu-engine", version = "0.104.1" }
|
|
nu-explore = { path = "./crates/nu-explore", version = "0.104.1" }
|
|
nu-lsp = { path = "./crates/nu-lsp/", version = "0.104.1" }
|
|
nu-parser = { path = "./crates/nu-parser", version = "0.104.1" }
|
|
nu-path = { path = "./crates/nu-path", version = "0.104.1" }
|
|
nu-plugin-engine = { path = "./crates/nu-plugin-engine", optional = true, version = "0.104.1" }
|
|
nu-protocol = { path = "./crates/nu-protocol", version = "0.104.1" }
|
|
nu-std = { path = "./crates/nu-std", version = "0.104.1" }
|
|
nu-system = { path = "./crates/nu-system", version = "0.104.1" }
|
|
nu-utils = { path = "./crates/nu-utils", version = "0.104.1" }
|
|
reedline = { workspace = true, features = ["bashisms", "sqlite"] }
|
|
|
|
crossterm = { workspace = true }
|
|
ctrlc = { workspace = true }
|
|
dirs = { workspace = true }
|
|
log = { workspace = true }
|
|
miette = { workspace = true, features = ["fancy-no-backtrace", "fancy"] }
|
|
multipart-rs = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
simplelog = "0.12"
|
|
time = "0.3"
|
|
|
|
[target.'cfg(not(target_os = "windows"))'.dependencies]
|
|
# Our dependencies don't use OpenSSL on Windows
|
|
openssl = { version = "0.10", features = ["vendored"], optional = true }
|
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
winresource = "0.1"
|
|
|
|
[target.'cfg(target_family = "unix")'.dependencies]
|
|
nix = { workspace = true, default-features = false, features = [
|
|
"signal",
|
|
"process",
|
|
"fs",
|
|
"term",
|
|
] }
|
|
|
|
[dev-dependencies]
|
|
nu-test-support = { path = "./crates/nu-test-support", version = "0.104.1" }
|
|
nu-plugin-protocol = { path = "./crates/nu-plugin-protocol", version = "0.104.1" }
|
|
nu-plugin-core = { path = "./crates/nu-plugin-core", version = "0.104.1" }
|
|
assert_cmd = "2.0"
|
|
dirs = { workspace = true }
|
|
tango-bench = "0.6"
|
|
pretty_assertions = { workspace = true }
|
|
fancy-regex = { workspace = true }
|
|
rstest = { workspace = true, default-features = false }
|
|
serial_test = "3.2"
|
|
tempfile = { workspace = true }
|
|
|
|
[features]
|
|
plugin = [
|
|
# crates
|
|
"nu-cmd-plugin",
|
|
"nu-plugin-engine",
|
|
|
|
# features
|
|
"nu-cli/plugin",
|
|
"nu-cmd-lang/plugin",
|
|
"nu-command/plugin",
|
|
"nu-engine/plugin",
|
|
"nu-engine/plugin",
|
|
"nu-parser/plugin",
|
|
"nu-protocol/plugin",
|
|
]
|
|
|
|
default = [
|
|
"plugin",
|
|
"trash-support",
|
|
"sqlite",
|
|
]
|
|
stable = ["default"]
|
|
# NOTE: individual features are also passed to `nu-cmd-lang` that uses them to generate the feature matrix in the `version` command
|
|
|
|
# Enable to statically link OpenSSL (perl is required, to build OpenSSL https://docs.rs/openssl/latest/openssl/);
|
|
# otherwise the system version will be used. Not enabled by default because it takes a while to build
|
|
static-link-openssl = ["dep:openssl", "nu-cmd-lang/static-link-openssl"]
|
|
|
|
# Optional system clipboard support in `reedline`, this behavior has problematic compatibility with some systems.
|
|
# Missing X server/ Wayland can cause issues
|
|
system-clipboard = [
|
|
"reedline/system_clipboard",
|
|
"nu-cli/system-clipboard",
|
|
"nu-cmd-lang/system-clipboard",
|
|
]
|
|
|
|
# Stable (Default)
|
|
trash-support = ["nu-command/trash-support", "nu-cmd-lang/trash-support"]
|
|
|
|
# SQLite commands for nushell
|
|
sqlite = ["nu-command/sqlite", "nu-cmd-lang/sqlite", "nu-std/sqlite"]
|
|
|
|
[profile.release]
|
|
opt-level = "s" # Optimize for size
|
|
strip = "debuginfo"
|
|
lto = "thin"
|
|
|
|
# build with `cargo build --profile profiling`
|
|
# to analyze performance with tooling like linux perf
|
|
[profile.profiling]
|
|
inherits = "release"
|
|
strip = false
|
|
debug = true
|
|
|
|
# build with `cargo build --profile ci`
|
|
# to analyze performance with tooling like linux perf
|
|
[profile.ci]
|
|
inherits = "dev"
|
|
strip = false
|
|
debug = false
|
|
|
|
# Main nu binary
|
|
[[bin]]
|
|
name = "nu"
|
|
path = "src/main.rs"
|
|
bench = false
|
|
|
|
# To use a development version of a dependency please use a global override here
|
|
# changing versions in each sub-crate of the workspace is tedious
|
|
[patch.crates-io]
|
|
# reedline = { git = "https://github.com/nushell/reedline", branch = "main" }
|
|
# nu-ansi-term = {git = "https://github.com/nushell/nu-ansi-term.git", branch = "main"}
|
|
|
|
# Run all benchmarks with `cargo bench`
|
|
# Run individual benchmarks like `cargo bench -- <regex>` e.g. `cargo bench -- parse`
|
|
[[bench]]
|
|
name = "benchmarks"
|
|
harness = false
|