NOTE: This document is probably only relevant to you, if you're a member of the Clippy team.
Clippy is released together with stable Rust releases. The dates for these releases can be found at the Rust Forge. This document explains the necessary steps to create a Clippy release.
beta
branchstable
branchCHANGELOG.md
You may want to define the upstream
remote of the Clippy project to simplify the following steps. However, this is optional and you can replace upstream
with the full URL instead.
git remote add upstream git@github.com:rust-lang/rust-clippy
When a release needs to be done, cargo test
will fail, if the versions in the Cargo.toml
are not correct. During that sync, the versions need to be bumped. This is done by running:
cargo dev release bump_version
This will increase the version number of each relevant Cargo.toml
file. After that, just commit the updated files with:
git commit -m "Bump Clippy version -> 0.1.XY" **/*Cargo.toml
XY
should be exchanged with the corresponding version
For both updating the beta
and the stable
branch, the first step is to find the Clippy commit of the last Clippy sync done in the respective Rust branch.
Running the following commands in the Rust repo will get the commit for the specified <branch>
:
git switch <branch> SHA=$(git log --oneline -- src/tools/clippy/ | grep -o "Merge commit '[a-f0-9]*' into .*" | head -1 | sed -e "s/Merge commit '\([a-f0-9]*\)' into .*/\1/g")
Where <branch>
is one of stable
, beta
, or master
.
beta
branchAfter getting the commit of the beta
branch, the beta
branch in the Clippy repository can be updated.
git checkout beta git reset --hard $SHA git push upstream beta
stable
branchAfter getting the commit of the stable
branch, the stable
branch in the Clippy repository can be updated.
git checkout stable git reset --hard $SHA git push upstream stable
stable
commitAfter updating the stable
branch, tag the HEAD commit and push it to the Clippy repo.
git tag rust-1.XX.0 # XX should be exchanged with the corresponding version git push upstream rust-1.XX.0 # `upstream` is the `rust-lang/rust-clippy` remote
After this, the release should be available on the Clippy tags page.
clippy_utils
The clippy_utils
crate is published to crates.io
without any stability guarantees. To do this, after the sync and the release is done, switch back to the upstream/master
branch and publish clippy_utils
:
Note: The Rustup PR bumping the nightly and Clippy version must be merged before doing this.
git switch master && git pull upstream master cargo publish --manifest-path clippy_utils/Cargo.toml
CHANGELOG.md
For this see the document on how to update the changelog.
If you don't have time to do a complete changelog update right away, just update the following parts:
Remove the (beta)
from the new stable version:
## Rust 1.XX (beta) -> ## Rust 1.XX
Update the release date line of the new stable version:
Current beta, release 20YY-MM-DD -> Current stable, released 20YY-MM-DD
Update the release date line of the previous stable version:
Current stable, released 20YY-MM-DD -> Released 20YY-MM-DD