zbuild/Cargo.toml

111 lines
3.6 KiB
TOML

[workspace]
members = ["zbuild", "zbuild-bin", "zbuild-test"]
resolver = "2"
[workspace.package]
description = "Make-like build system"
edition = "2024"
license = "MIT OR Apache-2.0"
publish = ["filipejr"]
repository = "https://github.com/zenithsiz/zbuild"
version = "0.1.10"
[workspace.dependencies]
# Workspace
zbuild = { path = "zbuild" }
zbuild-bin = { path = "zbuild-bin" }
zbuild-test = { path = "zbuild-test" }
app-error = { git = "https://github.com/Zenithsiz/app-error", rev = "9a7c202f54ef449d02e2b6ace74ad916f6e6720e" }
async-broadcast = "0.7.2"
clap = "4.5.47"
console-subscriber = "0.4.1"
dashmap = "6.1.0"
futures = "0.3.31"
indexmap = "2.11.1"
indicatif = "0.18.0"
itertools = "0.14.0"
notify = "8.2.0"
notify-debouncer-full = "0.6.0"
pin-project = "1.1.10"
smallvec = "1.15.1"
tempfile = "3.22.0"
tokio = "1.47.1"
tokio-stream = "0.1.17"
tracing = "0.1.41"
tracing-log = "0.2.0"
tracing-subscriber = "0.3.20"
tracing-test = "0.2.5"
unicode-ident = "1.0.19"
yoke = "0.8.0"
[workspace.lints]
# This project doesn't require unsafe code (outside of some modules)
rust.unsafe_code = "deny"
rust.unsafe_op_in_unsafe_fn = "deny"
# Group lints
clippy.nursery = { level = "warn", priority = -1 }
clippy.pedantic = { level = "warn", priority = -1 }
# Prefer `expect` instead of `unwrap`
clippy.expect_used = "allow"
clippy.unwrap_used = "deny"
# We must specify `'_` to avoid surprises
rust.elided_lifetimes_in_paths = "deny"
# `Debug` / `Copy` should be implemented wherever possible
rust.missing_copy_implementations = "warn"
rust.missing_debug_implementations = "warn"
# Misc.
clippy.let_underscore_untyped = "warn"
rust.explicit_outlives_requirements = "warn"
rust.meta_variable_misuse = "warn"
rust.must_not_suspend = "warn"
rust.noop_method_call = "warn"
rust.single_use_lifetimes = "warn"
rust.trivial_numeric_casts = "warn"
rust.unused_lifetimes = "warn"
rust.unused_macro_rules = "warn"
rust.unused_results = "warn"
rust.variant_size_differences = "warn"
# False positives
clippy.significant_drop_tightening = "allow"
# Style
clippy.implicit_return = "allow"
clippy.items_after_statements = "allow"
clippy.match_bool = "allow"
clippy.module_inception = "allow"
clippy.module_name_repetitions = "allow"
clippy.multiple_inherent_impl = "allow"
clippy.option_if_let_else = "allow"
clippy.pattern_type_mismatch = "allow"
clippy.ref_patterns = "allow" # Matching on a vale and adding `ref` is easier than matching on ref and de-referencing values within the body
clippy.self_named_module_files = "allow"
clippy.separated_literal_suffix = "allow"
clippy.single_match_else = "allow" # Note: `match` reads easier than `if / else`
# Callers don't care about which error happened.
clippy.missing_errors_doc = "allow"
# Too noisy with self-contained panics that the caller will never see.
clippy.missing_panics_doc = "allow"
# This is too prevalent on generic functions, which we don't want to ALWAYS be `Send`
clippy.future_not_send = "allow"
# We want to format paths with quotes
clippy.unnecessary_debug_formatting = "allow"
# TODO: Warn on this always once we resolve the issues of it triggering
# on integration tests
# rust.unused_crate_dependencies = "warn"