default: help # Get a list of recipes you can run @help: just --list # Install required tools for development setup: (_cargo-install 'cargo-nextest') _install-spell-check # Run all the checks required for CI to pass ci: spell-check lint test # Format the code fmt: cargo +nightly fmt --all # Check the formatting of the code but don't actually format it fmt-check: cargo +nightly fmt --all --check # Lint the code lint: fmt-check cargo clippy --all-targets -- -Dwarnings cargo clippy --all-targets --no-default-features -- -Dwarnings cargo clippy --all-targets --all-features -- -Dwarnings # Run benchmarks bench $RUSTFLAGS='-Ctarget-cpu=native': cargo bench # Run the test suite test TEST_RUNNER='cargo nextest run': setup {{ TEST_RUNNER }} {{ TEST_RUNNER }} --no-default-features {{ TEST_RUNNER }} --all-features # Check for typos spell-check: _install-spell-check @update-contributors: echo 'Removing old CONTRIBUTORS.md' mv CONTRIBUTORS.md CONTRIBUTORS.md.bak echo 'Downloading a list of new contributors' echo "the following is a list of contributors:" > CONTRIBUTORS.md echo "" >> CONTRIBUTORS.md echo "" >> CONTRIBUTORS.md githubcontrib --owner kbknapp --repo cargo-outdated --sha master --cols 6 --format md --showlogin true --sortBy contributions --sortOrder desc >> CONTRIBUTORS.md echo "" >> CONTRIBUTORS.md echo "" >> CONTRIBUTORS.md echo "This list was generated by [mgechev/github-contributors-list](https://github.com/mgechev/github-contributors-list)" >> CONTRIBUTORS.md rm CONTRIBUTORS.md.bak run-test TEST: cargo test --test {{TEST}} debug TEST: cargo test --test {{TEST}} --features debug run-tests: cargo test --features "yaml unstable" clean: cargo clean ## # # Helpers ## [unix] _install-spell-check: #!/usr/bin/env bash set -euo pipefail if ! command -v typos 2>&1 >/dev/null ; then cargo install typos-cli --force fi [windows] _install-spell-check: #!powershell.exe $ret = Get-Command typos >$null 2>$null if (! $?) { cargo install typos-cli --force } _cargo-install TOOL: cargo install {{TOOL}}