25fb843c40
The prior commit switched the recipe to `[source] path = "source"`, but .gitignore:77 still listed `local/recipes/shells/brush/source` (a leftover from when brush was a transient upstream git fetch), so the vendored tree was not tracked — a fresh clone would have no brush source and the build would fail. Drop that ignore line and commit the vendored working tree (reubeno/brush @ 897b373e, with the Redox port patches pre-applied). brush is now a durable local fork like the other path=source recipes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
120 lines
3.0 KiB
TOML
120 lines
3.0 KiB
TOML
[workspace]
|
|
resolver = "3"
|
|
members = [
|
|
"brush",
|
|
"brush-shell",
|
|
"brush-parser",
|
|
"brush-core",
|
|
"brush-builtins",
|
|
"brush-coreutils-builtins",
|
|
"brush-experimental-builtins",
|
|
"brush-interactive",
|
|
"brush-test-harness",
|
|
"fuzz",
|
|
"xtask",
|
|
]
|
|
default-members = ["brush-shell"]
|
|
|
|
[workspace.package]
|
|
authors = ["reuben olinsky"]
|
|
categories = ["command-line-utilities", "development-tools"]
|
|
edition = "2024"
|
|
keywords = ["cli", "shell", "sh", "bash", "script"]
|
|
license = "MIT"
|
|
readme = "README.md"
|
|
repository = "https://github.com/reubeno/brush"
|
|
rust-version = "1.88.0"
|
|
|
|
[workspace.lints.rust]
|
|
warnings = { level = "deny" }
|
|
future_incompatible = { level = "deny" }
|
|
missing_docs = { level = "deny" }
|
|
nonstandard_style = { level = "deny" }
|
|
rust_2018_idioms = { level = "deny", priority = -1 }
|
|
unnameable_types = "deny"
|
|
unsafe_op_in_unsafe_fn = "deny"
|
|
unused_attributes = "deny"
|
|
unused_lifetimes = "deny"
|
|
unused_macro_rules = "deny"
|
|
# For now we allow unknown lints so we can opt into warnings that don't exist on the
|
|
# oldest toolchain we need to support.
|
|
unknown_lints = { level = "allow", priority = -100 }
|
|
|
|
[workspace.lints.rustdoc]
|
|
all = { level = "deny", priority = -1 }
|
|
|
|
[workspace.lints.clippy]
|
|
all = { level = "deny", priority = -1 }
|
|
pedantic = { level = "deny", priority = -1 }
|
|
cargo = { level = "deny", priority = -1 }
|
|
nursery = { level = "deny", priority = -1 }
|
|
perf = { level = "deny", priority = -1 }
|
|
|
|
# Denied rules
|
|
expect_used = "deny"
|
|
format_push_string = "deny"
|
|
multiple_unsafe_ops_per_block = "deny"
|
|
panic = "deny"
|
|
panic_in_result_fn = "deny"
|
|
string_lit_chars_any = "deny"
|
|
string_slice = "deny"
|
|
tests_outside_test_module = "deny"
|
|
todo = "deny"
|
|
unwrap_in_result = "deny"
|
|
unwrap_used = "deny"
|
|
undocumented_unsafe_blocks = "deny"
|
|
|
|
# Allowed rules
|
|
bool_to_int_with_if = "allow"
|
|
cognitive_complexity = "allow"
|
|
collapsible_else_if = "allow"
|
|
collapsible_if = "allow"
|
|
if_not_else = "allow"
|
|
if_same_then_else = "allow"
|
|
match_same_arms = "allow"
|
|
missing_errors_doc = "allow"
|
|
must_use_candidate = "allow"
|
|
multiple_crate_versions = "allow"
|
|
option_if_let_else = "allow"
|
|
redundant_closure_for_method_calls = "allow"
|
|
redundant_else = "allow"
|
|
redundant_pub_crate = "allow"
|
|
result_large_err = "allow"
|
|
similar_names = "allow"
|
|
struct_excessive_bools = "allow"
|
|
|
|
[workspace.metadata.typos]
|
|
files.extend-exclude = [
|
|
# Exclude the changelog because it's dynamically generated.
|
|
"/CHANGELOG.md",
|
|
# Remove this once impending mapfile updates are merged.
|
|
"/brush-core/src/builtins/mapfile.rs",
|
|
]
|
|
|
|
[workspace.metadata.typos.default]
|
|
extend-ignore-re = [
|
|
# -ot is a valid binary operator
|
|
"-ot",
|
|
# Ignore 2-letter string literals, which show up in testing a fair bit.
|
|
'"[a-zA-Z]{2}"',
|
|
]
|
|
|
|
[workspace.metadata.typos.default.extend-words]
|
|
# These show up in tests.
|
|
"abd" = "abd"
|
|
"hel" = "hel"
|
|
"ba" = "ba"
|
|
|
|
# This is a specific technical name.
|
|
"iterm" = "iterm"
|
|
|
|
[profile.release]
|
|
strip = true
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
panic = "abort"
|
|
|
|
[profile.bench]
|
|
inherits = "release"
|
|
strip = "debuginfo"
|