-
Resolve any
FIXME
comments in the code. -
Ensure the
chill
crate builds and runs using the latest dependencies.$ cargo update && cargo test && cargo test --release
If any errors occur then fix them.
-
Ensure packaging succeeds.
$ cargo package
If any errors occur then fix them.
-
Create a temporary Git branch for the release.
$ git checkout -b release_prep
-
Update project files.
-
Edit
Cargo.toml
to declare the correct version for this crate.-
E.g., remove the
-master
suffix. -
Ensure the documentation link is correct.
-
-
Edit
CHANGELOG.md
to add the date for the new release and remove the “unreleased” adjective. Ensure the change log is up-to-date, clear, and well formatted. -
Edit
README.md
to update all references to the latest release and next release. -
Ensure there are no untracked files in the working directory.
-
Commit changes.
$ git commit
-
-
Build and publish Rust documentation for the new version.
-
Build.
$ cargo clean && cargo doc --no-deps && ver=$(grep '^version\s=' Cargo.toml | head -n1 | sed -Ee 's/.*"([0-9]+\.[0-9]+\.[0.9]+)"$/\1/') git checkout gh-pages && cp -pR target/doc doc/v$ver && git add doc/v$ver
-
Review
doc/v$ver/chill/index.html
. -
Publish.
$ git commit -a -m "Add documentation for v$ver" && git push origin && git checkout release_prep
-
-
Merge updates into master.
$ git checkout master && git merge release_prep && git branch -d release_prep
-
Publish the crate.
$ cargo publish
-
Create Git tag.
$ git tag -a v$ver -m "v$ver release" && git push --tags
-
Prep for new work.
-
Edit
Cargo.toml
to increment the version, adding the-master
suffix. -
Edit
CHANGELOG.md
to add the new “unreleased” section for the next version. -
Commit changes
$ git commit -m "Prep for work on the next release"
-