mirror of
https://github.com/nushell/nushell
synced 2024-12-27 21:43:09 +00:00
52cb865c5c
2 crates were still using Rust 2018, including the base `nu` crate. This PR upgrades them to Rust 2021. If you're aware of any reason why this is a bad idea, please speak now or forever hold your peace. ## Context I was moving benchmarks from `nu-plugin` to the base crate and couldn't figure out why they wouldn't compile. Turns out the benchmarks rely on some Rust 2021 features. Would be nice to have everything on 2021.
142 lines
4.5 KiB
TOML
142 lines
4.5 KiB
TOML
[package]
|
|
authors = ["The Nushell Project Developers"]
|
|
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.60"
|
|
version = "0.73.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-command",
|
|
"crates/nu-protocol",
|
|
"crates/nu-plugin",
|
|
"crates/nu_plugin_inc",
|
|
"crates/nu_plugin_gstat",
|
|
"crates/nu_plugin_example",
|
|
"crates/nu_plugin_query",
|
|
"crates/nu_plugin_custom_values",
|
|
"crates/nu-utils",
|
|
]
|
|
|
|
[dependencies]
|
|
chrono = { version = "0.4.23", features = ["serde"] }
|
|
crossterm = "0.24.0"
|
|
ctrlc = "3.2.1"
|
|
log = "0.4"
|
|
miette = { version = "5.1.0", features = ["fancy-no-backtrace"] }
|
|
nu-ansi-term = "0.46.0"
|
|
nu-cli = { path="./crates/nu-cli", version = "0.73.1" }
|
|
nu-color-config = { path = "./crates/nu-color-config", version = "0.73.1" }
|
|
nu-command = { path="./crates/nu-command", version = "0.73.1" }
|
|
nu-engine = { path="./crates/nu-engine", version = "0.73.1" }
|
|
nu-json = { path="./crates/nu-json", version = "0.73.1" }
|
|
nu-parser = { path="./crates/nu-parser", version = "0.73.1" }
|
|
nu-path = { path="./crates/nu-path", version = "0.73.1" }
|
|
nu-plugin = { path = "./crates/nu-plugin", optional = true, version = "0.73.1" }
|
|
nu-pretty-hex = { path = "./crates/nu-pretty-hex", version = "0.73.1" }
|
|
nu-protocol = { path = "./crates/nu-protocol", version = "0.73.1" }
|
|
nu-system = { path = "./crates/nu-system", version = "0.73.1" }
|
|
nu-table = { path = "./crates/nu-table", version = "0.73.1" }
|
|
nu-term-grid = { path = "./crates/nu-term-grid", version = "0.73.1" }
|
|
nu-utils = { path = "./crates/nu-utils", version = "0.73.1" }
|
|
reedline = { version = "0.14.0", features = ["bashisms", "sqlite"]}
|
|
|
|
rayon = "1.5.1"
|
|
is_executable = "1.0.1"
|
|
simplelog = "0.12.0"
|
|
time = "0.3.12"
|
|
|
|
[target.'cfg(not(target_os = "windows"))'.dependencies]
|
|
# Our dependencies don't use OpenSSL on Windows
|
|
openssl = { version = "0.10.38", features = ["vendored"], optional = true }
|
|
signal-hook = { version = "0.3.14", default-features = false }
|
|
|
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
winres = "0.1"
|
|
|
|
[target.'cfg(target_family = "unix")'.dependencies]
|
|
nix = { version = "0.25", default-features = false, features = ["signal", "process", "fs", "term"]}
|
|
atty = "0.2"
|
|
|
|
[dev-dependencies]
|
|
nu-test-support = { path="./crates/nu-test-support", version = "0.73.1" }
|
|
tempfile = "3.2.0"
|
|
assert_cmd = "2.0.2"
|
|
pretty_assertions = "1.0.0"
|
|
serial_test = "0.8.0"
|
|
hamcrest2 = "0.3.0"
|
|
rstest = {version = "0.15.0", default-features = false}
|
|
itertools = "0.10.3"
|
|
|
|
[features]
|
|
plugin = ["nu-plugin", "nu-cli/plugin", "nu-parser/plugin", "nu-command/plugin", "nu-protocol/plugin", "nu-engine/plugin"]
|
|
# extra used to be more useful but now it's the same as default. Leaving it in for backcompat with existing build scripts
|
|
extra = ["default"]
|
|
default = ["plugin", "which-support", "trash-support", "sqlite"]
|
|
stable = ["default"]
|
|
wasi = []
|
|
|
|
# Enable to statically link OpenSSL; otherwise the system version will be used. Not enabled by default because it takes a while to build
|
|
static-link-openssl = ["dep:openssl"]
|
|
|
|
# Stable (Default)
|
|
which-support = ["nu-command/which-support"]
|
|
trash-support = ["nu-command/trash-support"]
|
|
|
|
# Extra
|
|
|
|
# Dataframe feature for nushell
|
|
dataframe = ["nu-command/dataframe"]
|
|
|
|
# SQLite commands for nushell
|
|
sqlite = ["nu-command/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"
|
|
|
|
# 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.git", branch = "main" }
|