mirror of
https://github.com/nushell/nushell.git
synced 2024-11-07 09:04:18 +01:00
2c379cba71
# Description This feature tried to connect reedline with the system clipboard for three special bindings. To do so it uses the `arboard` crate with heavy dependencies for the system X or Wayland server or the Windows APIs. We had issues in the headless CI with it and builds with musl seem to stall. Removing it from the default build should negatively impact only a small subset of users aware of the extra bindings. You can still use the internal clipboard for binding based selection and the terminals extra bindings to copy arbitrary content into the system clipboard. For all other users it removes potential sources of failure and a whole 1 MB of release mode binary size (> 2% reduction). Furthermore a potentially substantial attack surface for Nushell is gone for default builds. - Should resolve #13019 - Work in the spirit of #13603 # User-Facing Changes The `edit` entries `copyselectionsystem`/`copyselectionsystem`/`pastesystem` for keybindings are gone in the default build If you strictly depend on this behavior, you can still build with the addition of `--features system-clipboard`
316 lines
8.8 KiB
TOML
316 lines
8.8 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.78.0"
|
|
version = "0.97.2"
|
|
|
|
# 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.2"
|
|
brotli = "5.0"
|
|
byteorder = "1.5"
|
|
bytes = "1"
|
|
bytesize = "1.3"
|
|
calamine = "0.24.0"
|
|
chardetng = "0.1.17"
|
|
chrono = { default-features = false, version = "0.4.34" }
|
|
chrono-humanize = "0.2.3"
|
|
chrono-tz = "0.8"
|
|
crossbeam-channel = "0.5.8"
|
|
crossterm = "0.27"
|
|
csv = "1.3"
|
|
ctrlc = "3.4"
|
|
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.13"
|
|
filesize = "0.2"
|
|
filetime = "0.2"
|
|
fuzzy-matcher = "0.3"
|
|
heck = "0.5.0"
|
|
human-date-parser = "0.1.1"
|
|
indexmap = "2.4"
|
|
indicatif = "0.17"
|
|
interprocess = "2.2.0"
|
|
is_executable = "1.0"
|
|
itertools = "0.12"
|
|
libc = "0.2"
|
|
libproc = "0.14"
|
|
log = "0.4"
|
|
lru = "0.12"
|
|
lscolors = { version = "0.17", default-features = false }
|
|
lsp-server = "0.7.5"
|
|
lsp-types = "0.95.0"
|
|
mach2 = "0.4"
|
|
md5 = { version = "0.10", package = "md-5" }
|
|
miette = "7.2"
|
|
mime = "0.3.17"
|
|
mime_guess = "2.0"
|
|
mockito = { version = "1.5", default-features = false }
|
|
multipart-rs = "0.1.11"
|
|
native-tls = "0.2"
|
|
nix = { version = "0.28", default-features = false }
|
|
notify-debouncer-full = { version = "0.3", default-features = false }
|
|
nu-ansi-term = "0.50.1"
|
|
num-format = "0.4"
|
|
num-traits = "0.2"
|
|
omnipath = "0.1"
|
|
once_cell = "1.18"
|
|
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-error = { version = "1.0", default-features = false }
|
|
proc-macro2 = "1.0"
|
|
procfs = "0.16.0"
|
|
pwd = "1.3"
|
|
quick-xml = "0.32.0"
|
|
quickcheck = "1.0"
|
|
quickcheck_macros = "1.0"
|
|
quote = "1.0"
|
|
rand = "0.8"
|
|
rand_chacha = "0.3.1"
|
|
ratatui = "0.26"
|
|
rayon = "1.10"
|
|
reedline = "0.34.0"
|
|
regex = "1.9.5"
|
|
rmp = "0.8"
|
|
rmp-serde = "1.3"
|
|
ropey = "1.6.1"
|
|
roxmltree = "0.19"
|
|
rstest = { version = "0.18", default-features = false }
|
|
rusqlite = "0.31"
|
|
rust-embed = "8.5.0"
|
|
serde = { version = "1.0", default-features = false }
|
|
serde_json = "1.0"
|
|
serde_urlencoded = "0.7.1"
|
|
serde_yaml = "0.9"
|
|
sha2 = "0.10"
|
|
strip-ansi-escapes = "0.2.0"
|
|
syn = "2.0"
|
|
sysinfo = "0.30"
|
|
tabled = { version = "0.16.0", default-features = false }
|
|
tempfile = "3.10"
|
|
terminal_size = "0.3"
|
|
titlecase = "2.0"
|
|
toml = "0.8"
|
|
trash = "3.3"
|
|
umask = "2.1"
|
|
unicode-segmentation = "1.11"
|
|
unicode-width = "0.1"
|
|
ureq = { version = "2.10", default-features = false }
|
|
url = "2.2"
|
|
uu_cp = "0.0.27"
|
|
uu_mkdir = "0.0.27"
|
|
uu_mktemp = "0.0.27"
|
|
uu_mv = "0.0.27"
|
|
uu_whoami = "0.0.27"
|
|
uu_uname = "0.0.27"
|
|
uucore = "0.0.27"
|
|
uuid = "1.10.0"
|
|
v_htmlescape = "0.15.0"
|
|
wax = "0.6"
|
|
which = "6.0.0"
|
|
windows = "0.54"
|
|
windows-sys = "0.48"
|
|
winreg = "0.52"
|
|
|
|
[dependencies]
|
|
nu-cli = { path = "./crates/nu-cli", version = "0.97.2" }
|
|
nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.97.2" }
|
|
nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.97.2" }
|
|
nu-cmd-plugin = { path = "./crates/nu-cmd-plugin", version = "0.97.2", optional = true }
|
|
nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.97.2" }
|
|
nu-command = { path = "./crates/nu-command", version = "0.97.2" }
|
|
nu-engine = { path = "./crates/nu-engine", version = "0.97.2" }
|
|
nu-explore = { path = "./crates/nu-explore", version = "0.97.2" }
|
|
nu-lsp = { path = "./crates/nu-lsp/", version = "0.97.2" }
|
|
nu-parser = { path = "./crates/nu-parser", version = "0.97.2" }
|
|
nu-path = { path = "./crates/nu-path", version = "0.97.2" }
|
|
nu-plugin-engine = { path = "./crates/nu-plugin-engine", optional = true, version = "0.97.2" }
|
|
nu-protocol = { path = "./crates/nu-protocol", version = "0.97.2" }
|
|
nu-std = { path = "./crates/nu-std", version = "0.97.2" }
|
|
nu-system = { path = "./crates/nu-system", version = "0.97.2" }
|
|
nu-utils = { path = "./crates/nu-utils", version = "0.97.2" }
|
|
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"] }
|
|
mimalloc = { version = "0.1.42", default-features = false, optional = true }
|
|
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.97.2" }
|
|
nu-plugin-protocol = { path = "./crates/nu-plugin-protocol", version = "0.97.2" }
|
|
nu-plugin-core = { path = "./crates/nu-plugin-core", version = "0.97.2" }
|
|
assert_cmd = "2.0"
|
|
dirs = { workspace = true }
|
|
tango-bench = "0.5"
|
|
pretty_assertions = { workspace = true }
|
|
regex = { workspace = true }
|
|
rstest = { workspace = true, default-features = false }
|
|
serial_test = "3.1"
|
|
tempfile = { workspace = true }
|
|
|
|
[features]
|
|
plugin = [
|
|
"nu-plugin-engine",
|
|
"nu-cmd-plugin",
|
|
"nu-cli/plugin",
|
|
"nu-parser/plugin",
|
|
"nu-command/plugin",
|
|
"nu-protocol/plugin",
|
|
"nu-engine/plugin",
|
|
]
|
|
|
|
default = [
|
|
"plugin",
|
|
"trash-support",
|
|
"sqlite",
|
|
"mimalloc",
|
|
]
|
|
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"]
|
|
|
|
mimalloc = ["nu-cmd-lang/mimalloc", "dep:mimalloc"]
|
|
# 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"]
|
|
|
|
[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
|