diff --git a/README.md b/README.md index 5f9082a..dd16173 100644 --- a/README.md +++ b/README.md @@ -117,16 +117,17 @@ cargo run -- imported.agnd --import tasks.ics ## Development quality gate Compiler warnings are denied by project configuration. Before accepting any -change, run the complete gate: +change, install the pinned Antislop release and run the complete gate: ```sh +cargo install antislop --version 0.3.0 --locked ./scripts/quality-gate.sh ``` It requires clean `cargo fmt --check` output, runs Clippy across every target and -feature with `-D warnings`, executes all tests, builds warning-free documentation, -and produces the release binary. Any warning, formatting difference, test failure, -or build failure stops the gate. +feature with `-D warnings`, rejects Antislop findings, executes all tests, builds +warning-free documentation, and produces the release binary. Any finding, warning, +formatting difference, test failure, or build failure stops the gate. ## Essential keys diff --git a/scripts/quality-gate.sh b/scripts/quality-gate.sh index 9c6ad15..7aca809 100755 --- a/scripts/quality-gate.sh +++ b/scripts/quality-gate.sh @@ -8,6 +8,14 @@ cargo fmt --all -- --check # and automated Clippy runs have the same, visible contract. cargo clippy --all-targets --all-features -- -D warnings +antislop_version=0.3.0 +if ! command -v antislop >/dev/null 2>&1 || + [[ "$(antislop --version)" != "antislop ${antislop_version}" ]]; then + echo "antislop ${antislop_version} is required; install it with: cargo install antislop --version ${antislop_version} --locked" >&2 + exit 1 +fi +antislop . + cargo test --all-targets --all-features RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features cargo build --release --all-targets --all-features