forked from extern/nushell
439889dcef
This commit adds the ability to work on features behind a feature flag that won't be included in normal builds of nu. These features are not exposed as Cargo features, as they reflect incomplete features that are not yet stable. To create a feature, add it to `features.toml`: ```toml [hintsv1] description = "Adding hints based on error states in the highlighter" enabled = false ``` Each feature in `features.toml` becomes a feature flag accessible to `cfg`: ```rs println!("hintsv1 is enabled"); ``` By default, features are enabled based on the value of the `enabled` field. You can also enable a feature from the command line via the `NUSHELL_ENABLE_FLAGS` environment variable: ```sh $ NUSHELL_ENABLE_FLAGS=hintsv1 cargo run ``` You can enable all flags via `NUSHELL_ENABLE_ALL_FLAGS`. This commit also updates the CI setup to run the build with all flags off and with all flags on. It also extracts the linting test into its own parallelizable test, which means it doesn't need to run together with every other test anymore. When working on a feature, you should also add tests behind the same flag. A commit is mergable if all tests pass with and without the flag, allowing incomplete commits to land on master as long as the incomplete code builds and passes tests.
182 lines
4.3 KiB
TOML
182 lines
4.3 KiB
TOML
[package]
|
|
name = "nu"
|
|
version = "0.3.0"
|
|
authors = ["Yehuda Katz <wycats@gmail.com>", "Jonathan Turner <jonathan.d.turner@gmail.com>", "Andrés N. Robalino <andres@androbtech.com>"]
|
|
description = "A shell for the GitHub era"
|
|
license = "MIT"
|
|
edition = "2018"
|
|
readme = "README.md"
|
|
default-run = "nu"
|
|
repository = "https://github.com/nushell/nushell"
|
|
homepage = "https://www.nushell.sh"
|
|
documentation = "https://book.nushell.sh"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
rustyline = "5.0.3"
|
|
chrono = { version = "0.4.9", features = ["serde"] }
|
|
derive-new = "0.5.8"
|
|
prettytable-rs = "0.8.0"
|
|
itertools = "0.8.0"
|
|
ansi_term = "0.12.1"
|
|
nom = "5.0.0"
|
|
dunce = "1.0.0"
|
|
indexmap = { version = "1.2.0", features = ["serde-1"] }
|
|
chrono-humanize = "0.0.11"
|
|
byte-unit = "3.0.1"
|
|
base64 = "0.10.1"
|
|
futures-preview = { version = "=0.3.0-alpha.18", features = ["compat", "io-compat"] }
|
|
async-stream = "0.1.1"
|
|
futures_codec = "0.2.5"
|
|
num-traits = "0.2.8"
|
|
term = "0.5.2"
|
|
bytes = "0.4.12"
|
|
log = "0.4.8"
|
|
pretty_env_logger = "0.3.1"
|
|
serde = { version = "1.0.100", features = ["derive"] }
|
|
bson = { version = "0.14.0", features = ["decimal128"] }
|
|
serde_json = "1.0.40"
|
|
serde-hjson = "0.9.1"
|
|
serde_yaml = "0.8"
|
|
serde_bytes = "0.11.2"
|
|
getset = "0.0.8"
|
|
#language-reporting = "0.3.1"
|
|
language-reporting = { git = "https://github.com/wycats/language-reporting" }
|
|
app_dirs = "1.2.1"
|
|
csv = "1.1"
|
|
toml = "0.5.3"
|
|
clap = "2.33.0"
|
|
git2 = { version = "0.10.1", default_features = false }
|
|
dirs = "2.0.2"
|
|
glob = "0.3.0"
|
|
ctrlc = "3.1.3"
|
|
surf = "1.0.2"
|
|
url = "2.1.0"
|
|
roxmltree = "0.7.0"
|
|
nom_locate = "1.0.0"
|
|
nom-tracable = "0.4.0"
|
|
enum-utils = "0.1.1"
|
|
unicode-xid = "0.2.0"
|
|
serde_ini = "0.2.0"
|
|
subprocess = "0.1.18"
|
|
mime = "0.3.14"
|
|
pretty-hex = "0.1.0"
|
|
hex = "0.3.2"
|
|
tempfile = "3.1.0"
|
|
semver = "0.9.0"
|
|
which = "2.0.1"
|
|
uuid = {version = "0.7.4", features = [ "v4", "serde" ]}
|
|
textwrap = {version = "0.11.0", features = ["term_size"]}
|
|
shellexpand = "1.0.0"
|
|
futures-timer = "0.4.0"
|
|
pin-utils = "0.1.0-alpha.4"
|
|
num-bigint = { version = "0.2.3", features = ["serde"] }
|
|
bigdecimal = { version = "0.1.0", features = ["serde"] }
|
|
natural = "0.3.0"
|
|
serde_urlencoded = "0.6.1"
|
|
sublime_fuzzy = "0.5"
|
|
regex = "1"
|
|
|
|
neso = { version = "0.5.0", optional = true }
|
|
crossterm = { version = "0.10.2", optional = true }
|
|
syntect = {version = "3.2.0", optional = true }
|
|
onig_sys = {version = "=69.1.0", optional = true }
|
|
heim = {version = "0.0.8-alpha.1", optional = true }
|
|
battery = {version = "0.7.4", optional = true }
|
|
rawkey = {version = "0.1.2", optional = true }
|
|
clipboard = {version = "0.5", optional = true }
|
|
ptree = {version = "0.2", optional = true }
|
|
image = { version = "0.22.2", default_features = false, features = ["png_codec", "jpeg"], optional = true }
|
|
|
|
[features]
|
|
default = ["textview", "sys", "ps"]
|
|
raw-key = ["rawkey", "neso"]
|
|
textview = ["syntect", "onig_sys", "crossterm"]
|
|
binaryview = ["image", "crossterm"]
|
|
sys = ["heim", "battery"]
|
|
ps = ["heim"]
|
|
# trace = ["nom-tracable/trace"]
|
|
all = ["raw-key", "textview", "binaryview", "sys", "ps", "clipboard", "ptree"]
|
|
|
|
[dependencies.rusqlite]
|
|
version = "0.20.0"
|
|
features = ["bundled", "blob"]
|
|
|
|
[dev-dependencies]
|
|
pretty_assertions = "0.6.1"
|
|
|
|
[build-dependencies]
|
|
toml = "0.5.3"
|
|
serde = { version = "1.0.101", features = ["derive"] }
|
|
|
|
[lib]
|
|
name = "nu"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_inc"
|
|
path = "src/plugins/inc.rs"
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_sum"
|
|
path = "src/plugins/sum.rs"
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_embed"
|
|
path = "src/plugins/embed.rs"
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_add"
|
|
path = "src/plugins/add.rs"
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_edit"
|
|
path = "src/plugins/edit.rs"
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_str"
|
|
path = "src/plugins/str.rs"
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_skip"
|
|
path = "src/plugins/skip.rs"
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_match"
|
|
path = "src/plugins/match.rs"
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_sys"
|
|
path = "src/plugins/sys.rs"
|
|
required-features = ["sys"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_ps"
|
|
path = "src/plugins/ps.rs"
|
|
required-features = ["ps"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_tree"
|
|
path = "src/plugins/tree.rs"
|
|
required-features = ["tree"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_binaryview"
|
|
path = "src/plugins/binaryview.rs"
|
|
required-features = ["binaryview"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_textview"
|
|
path = "src/plugins/textview.rs"
|
|
required-features = ["textview"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_docker"
|
|
path = "src/plugins/docker.rs"
|
|
required-features = ["docker"]
|
|
|
|
[[bin]]
|
|
name = "nu"
|
|
path = "src/main.rs"
|