High-performance cache policies and supporting data structures.
This document describes the end-to-end release process for the cachekit crate:
versioning, validation, tagging, publishing, and documentation updates.
If you only need a quick set of checks, see Release checklist.
vX.Y.Z (example: v0.1.0).github/workflows/release.yml on tag push.X.Y.Z-alpha, X.Y.Z-alpha.1, X.Y.Z-beta.1, X.Y.Z-rc.1, etc.v*.*.*, so tags like
v0.1.0-alpha / v0.2.0-alpha.1 will not run the automated release pipeline unless the
workflow trigger is updated.main is green in CI (.github/workflows/ci.yml).Make a branch/PR that does the release bookkeeping:
Cargo.toml to the target version (no leading v).CHANGELOG.md:
[Unreleased] into a new section [X.Y.Z] - YYYY-MM-DD (or
[X.Y.Z-alpha] - YYYY-MM-DD for a pre-release).[Unreleased] section for follow-up work.cargo benchscripts/update_docs_benchmarks.sh target/criterion docs/benchmarks.mdSuggested local validation for the PR:
cargo fmt
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-features --all-targets
RUSTDOCFLAGS='-Dwarnings' cargo doc --no-deps --all-features
Merge once CI passes. Releases should always be cut from a commit on main.
Create an annotated tag on main and push it:
git checkout main
git pull --ff-only
git tag -a vX.Y.Z -m "cachekit vX.Y.Z"
git push origin vX.Y.Z
On tag push, .github/workflows/release.yml runs:
cargo package, cargo publish --dry-runcargo publish if CARGO_REGISTRY_TOKEN is setNotes:
origin/main.CARGO_REGISTRY_TOKEN from GitHub repository variables (vars).
If you prefer GitHub Secrets, update the workflow accordingly.docs/ on pushes to main via
.github/workflows/jekyll-gh-pages.yml).Cargo.toml to the next dev/pre-release version (optional).[Unreleased] in CHANGELOG.md.v*.*.* and was pushed
to the upstream repository (not just locally).CARGO_REGISTRY_TOKEN is configured as a GitHub
repository variable (or adjust the workflow to use secrets).actions/checkout@v6), update the workflow to a
published major version (for example actions/checkout@v4).