These are the steps to create a new release:
-
Get the latest head you want to create a release from.
-
Update the version in
Cargo.tomlto the new version. Without this, the new release will be rejected bycrates.io.Along with this, update the
RELEASE_NOTES.mdfile if it is not complete, up to date, and remove template comments (<!-- ... ->) and empty sections.Submit a pull request if an update is needed, wait until it is merged, and update the latest head you want to create a release from to get the new merged pull request.
-
Create a new signed tag using the release notes and a semver compatible version number with a
vprefix, for example:git tag -s --cleanup=whitespace -F RELEASE_NOTES.md v0.0.1
-
Push the new tag.
-
A GitHub action will test the tag and if all goes well it will create a GitHub Release, and upload a new package to crates.io automatically.
-
Once this is done, reset the
RELEASE_NOTES.mdwith the template:cp .github/RELEASE_NOTES.template.md RELEASE_NOTES.md
Commit the new release notes and create a PR (this step should be automated eventually too).
-
Celebrate!