mirror of
https://github.com/nushell/nushell
synced 2024-11-13 00:17:06 +00:00
067ceedf79
# Description The intended effect of the `extra` feature has been undermined by introducing the full builds on our release pages and having more activity on some of the extra commands. To simplify the feature matrix let's get rid of it and focus our effort on truly either refining a command to well-specified behavior or discarding it entirely from the `nu` binary and moving it into plugins. ## Details - Remove `--features extra` from CI - Don't explicitly name `extra` in full build wf - Remove feature extra from build-help scripts - Update README in `nu-cmd-extra` - Remove feature `extra` - Fix previously dead `format pattern` tests - Relax signature of `to html` - Fix/ignore `html::test_no_color_flag` - Remove dead features from `version` - Refine `to html` type signature # User-Facing Changes The commands that were previously only available when building with `--features extra` will now be available to everyone. This increases the number of dependencies slightly but has a limited impact on the overall binary size. # Tests + Formatting Some tests that were left in `nu-command` during cratification were dead because the feature was not passed to `nu-command` and only to `nu-cmd-lang` for feature-flag mention in `version`. Those tests have now been either fixed or ignored in one case. # After Submitting There may be places in the documentation where we point to `--features extra` that will now be moot (apart from the generated command help)
207 lines
6.2 KiB
TOML
207 lines
6.2 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.74.1"
|
|
version = "0.91.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-dataframe",
|
|
"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-plugin",
|
|
"crates/nu_plugin_inc",
|
|
"crates/nu_plugin_gstat",
|
|
"crates/nu_plugin_example",
|
|
"crates/nu_plugin_stream_example",
|
|
"crates/nu_plugin_query",
|
|
"crates/nu_plugin_custom_values",
|
|
"crates/nu_plugin_formats",
|
|
"crates/nu-std",
|
|
"crates/nu-table",
|
|
"crates/nu-term-grid",
|
|
"crates/nu-test-support",
|
|
"crates/nu-utils",
|
|
]
|
|
|
|
[workspace.dependencies]
|
|
chrono = { default-features = false, version = "0.4" }
|
|
crossterm = "0.27"
|
|
ctrlc = "3.4"
|
|
fancy-regex = "0.13"
|
|
log = "0.4"
|
|
miette = "7.1"
|
|
nix = { version = "0.27", default-features = false }
|
|
nu-ansi-term = "0.50.0"
|
|
once_cell = "1.18"
|
|
pathdiff = "0.2"
|
|
percent-encoding = "2"
|
|
reedline = "0.30.0"
|
|
rstest = { version = "0.18", default-features = false }
|
|
serde_json = "1.0"
|
|
sysinfo = "0.30"
|
|
tempfile = "3.10"
|
|
unicode-segmentation = "1.11"
|
|
uuid = "1.6.0"
|
|
which = "6.0.0"
|
|
|
|
[dependencies]
|
|
nu-cli = { path = "./crates/nu-cli", version = "0.91.1" }
|
|
nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.91.1" }
|
|
nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.91.1" }
|
|
nu-cmd-dataframe = { path = "./crates/nu-cmd-dataframe", version = "0.91.1", features = [
|
|
"dataframe",
|
|
], optional = true }
|
|
nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.91.1" }
|
|
nu-command = { path = "./crates/nu-command", version = "0.91.1" }
|
|
nu-engine = { path = "./crates/nu-engine", version = "0.91.1" }
|
|
nu-explore = { path = "./crates/nu-explore", version = "0.91.1" }
|
|
nu-lsp = { path = "./crates/nu-lsp/", version = "0.91.1" }
|
|
nu-parser = { path = "./crates/nu-parser", version = "0.91.1" }
|
|
nu-path = { path = "./crates/nu-path", version = "0.91.1" }
|
|
nu-plugin = { path = "./crates/nu-plugin", optional = true, version = "0.91.1" }
|
|
nu-protocol = { path = "./crates/nu-protocol", version = "0.91.1" }
|
|
nu-std = { path = "./crates/nu-std", version = "0.91.1" }
|
|
nu-utils = { path = "./crates/nu-utils", version = "0.91.1" }
|
|
|
|
reedline = { workspace = true, features = ["bashisms", "sqlite"] }
|
|
|
|
crossterm = { workspace = true }
|
|
ctrlc = { workspace = true }
|
|
log = { workspace = true }
|
|
miette = { workspace = true, features = ["fancy-no-backtrace", "fancy"] }
|
|
mimalloc = { version = "0.1.37", default-features = false, optional = 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.91.1" }
|
|
assert_cmd = "2.0"
|
|
divan = "0.1.14"
|
|
pretty_assertions = "1.4"
|
|
rstest = { workspace = true, default-features = false }
|
|
serial_test = "3.0"
|
|
tempfile = { workspace = true }
|
|
|
|
[features]
|
|
plugin = [
|
|
"nu-plugin",
|
|
"nu-cli/plugin",
|
|
"nu-parser/plugin",
|
|
"nu-command/plugin",
|
|
"nu-protocol/plugin",
|
|
"nu-engine/plugin",
|
|
]
|
|
default = ["default-no-clipboard", "system-clipboard"]
|
|
# Enables convenient omitting of the system-clipboard feature, as it leads to problems in ci on linux
|
|
# See https://github.com/nushell/nushell/pull/11535
|
|
default-no-clipboard = [
|
|
"plugin",
|
|
"which-support",
|
|
"trash-support",
|
|
"sqlite",
|
|
"mimalloc",
|
|
]
|
|
stable = ["default"]
|
|
wasi = ["nu-cmd-lang/wasi"]
|
|
# 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"]
|
|
system-clipboard = ["reedline/system_clipboard"]
|
|
|
|
# Stable (Default)
|
|
which-support = ["nu-command/which-support", "nu-cmd-lang/which-support"]
|
|
trash-support = ["nu-command/trash-support", "nu-cmd-lang/trash-support"]
|
|
|
|
# Dataframe feature for nushell
|
|
dataframe = ["dep:nu-cmd-dataframe", "nu-cmd-lang/dataframe"]
|
|
|
|
# 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
|