mirror of
https://github.com/nushell/nushell.git
synced 2025-08-04 10:52:25 +02:00
Fixes #15503
# Description
Our usage of `serde_json::Error::io_error_kind` is improperly handled in
the workspace version specifier.
We use this method in `nu-plugin-core`
f25525be6c/crates/nu-plugin-core/src/serializers/json.rs (L77-L106)
It was added in [`serde_json`
v1.0.97](https://github.com/serde-rs/json/releases/tag/v1.0.97).
Previously, we specified our version requirement only as `1.0`. Now, it
is `>=1.0.97,<1.1`, which correctly describes our maximum range of
compatibility.
# User-Facing Changes
None
# Tests + Formatting
No code has changed. Recent releases are identical. This only effect
usage of nushell as a library
# After Submitting
No doc changes should be needed. This prevents certain compiler errors,
but will not change the behavior of any compiled project.
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.103.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.5"
|
|
brotli = "7.0"
|
|
byteorder = "1.5"
|
|
bytes = "1"
|
|
bytesize = "1.3.3"
|
|
calamine = "0.26.1"
|
|
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.8"
|
|
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.39.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.6.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.4"
|
|
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 }
|
|
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.103.1" }
|
|
nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.103.1" }
|
|
nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.103.1" }
|
|
nu-cmd-plugin = { path = "./crates/nu-cmd-plugin", version = "0.103.1", optional = true }
|
|
nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.103.1" }
|
|
nu-command = { path = "./crates/nu-command", version = "0.103.1" }
|
|
nu-engine = { path = "./crates/nu-engine", version = "0.103.1" }
|
|
nu-explore = { path = "./crates/nu-explore", version = "0.103.1" }
|
|
nu-lsp = { path = "./crates/nu-lsp/", version = "0.103.1" }
|
|
nu-parser = { path = "./crates/nu-parser", version = "0.103.1" }
|
|
nu-path = { path = "./crates/nu-path", version = "0.103.1" }
|
|
nu-plugin-engine = { path = "./crates/nu-plugin-engine", optional = true, version = "0.103.1" }
|
|
nu-protocol = { path = "./crates/nu-protocol", version = "0.103.1" }
|
|
nu-std = { path = "./crates/nu-std", version = "0.103.1" }
|
|
nu-system = { path = "./crates/nu-system", version = "0.103.1" }
|
|
nu-utils = { path = "./crates/nu-utils", version = "0.103.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.103.1" }
|
|
nu-plugin-protocol = { path = "./crates/nu-plugin-protocol", version = "0.103.1" }
|
|
nu-plugin-core = { path = "./crates/nu-plugin-core", version = "0.103.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
|