[config] default_to_workspace = false [tasks.format] command = "cargo" args = ["fmt"] [tasks.format-check] command = "cargo" args = ["fmt", "--check"] [tasks.lint] command = "cargo" args = ["clippy", "--all-targets", "--", "-D", "warnings"] # Cognitive complexity (clippy's nursery lint, not literal cyclomatic # complexity — see clippy.toml for why) on the bin target only: run without # --all-targets so #[cfg(test)] code, which naturally reads as more # "complex" without being a maintainability signal, isn't gated on this. [tasks.complexity] command = "cargo" args = ["clippy", "--bins", "--", "-D", "warnings", "-W", "clippy::cognitive_complexity"] [tasks.test] command = "cargo" args = ["test"] # Named coverage-report, not coverage: cargo-make reserves "coverage" for # its own built-in tarpaulin/kcov-routing composite task, which clobbers a # same-named custom one. # # Reports coverage only; not gated on a threshold yet — main.rs is thin # orchestration glue exercised by the real end-to-end `cargo run`, not unit # tests, so it's excluded here rather than dragging the number down for # reasons unrelated to test quality. [tasks.coverage-report] command = "cargo" args = ["llvm-cov", "--ignore-filename-regex", "main\\.rs", "--summary-only"] [tasks.audit] command = "cargo" args = ["audit"] [tasks.build] command = "cargo" args = ["build", "--release"] [tasks.install-hooks] description = "One-time setup: point git at the tracked hooks in .githooks/" command = "git" args = ["config", "core.hooksPath", ".githooks"] [tasks.ci] dependencies = ["format-check", "lint", "complexity", "test", "coverage-report", "audit"] [tasks.default] alias = "ci"