Cookbook: Rust Workspace
This recipe gives a solid Rust workspace flow with fmt, clippy, tests, and release build.
Scenario
You have a Cargo workspace and want consistent local + CI quality checks.
qp.yaml Recipe
project: rust-workspace
default: check
tasks:
fmt:
desc: Enforce rustfmt style
cmd: cargo fmt --all --check
safety: safe
clippy:
desc: Lint with clippy (warnings as errors)
cmd: cargo clippy --workspace --all-targets -- -D warnings
safety: safe
test:
desc: Run workspace tests
cmd: cargo test --workspace
safety: safe
cache:
enabled: true
paths:
- Cargo.toml
- Cargo.lock
- crates/**/*.rs
build:
desc: Build release artifacts
cmd: cargo build --workspace --release
safety: idempotent
check:
desc: Workspace quality gate
run: par(fmt, clippy, test)
guards:
ci:
steps: [check, build]Run It
qp check
qp guard ci --jsonMulti-Crate Targeting Pattern
Add crate-specific tasks with params:
tasks:
test-crate:
desc: Test a single crate
cmd: cargo test -p {{params.crate}}
params:
crate:
required: trueqp test-crate --crate api-coreRelease Extension
tasks:
publish:
desc: Publish selected crate
cmd: cargo publish -p {{params.crate}}
params:
crate:
required: true
safety: external
retry: 2
retry_delay: 2sqp publish --crate api-core --allow-unsafeWhy This Works Well
- Parallelized check path keeps feedback fast.
- CI uses the exact same guard contract.
- Crate-specific tasks scale to large workspaces cleanly.