-
Notifications
You must be signed in to change notification settings - Fork 235
Open
Labels
Description
When releasing v0.3.4 (#735), there were a few manual steps that I missed (#736). I also had to manually run cargo publish
on my laptop and create the corresponding GitHub release: https://github.com/rust-random/getrandom/releases/tag/v0.3.4
Ideally there should be:
- A check run on PRs (as part of the Workspace workflow) which:
- ensures
CHANGELOG.md
is correctly formatted - ensures the latest dated release matches the version in
Cargo.toml
- ensures
- A new "Tag" workflow which:
- Runs on any push to
master
orbackports/*
- If the
Cargo.toml
version is not tagged on GitHub yet, tag it - Create a corresponding GitHub Release using the notes from
CHANGELOG.md
. - Should be a separate workflow, as only this workflow will have permissions to write tags or releases to GitHub.
- After this is confirmed to work, we should remove the ability for users to manually/unilaterally create Tags
- Runs on any push to
- A new "Release" workflow which:
- Runs when pushing a tag like
vX.Y.Z
- Publish the tag to crates.io
- Should be similar to the example in https://crates.io/docs/trusted-publishing
- We should probably require some sort of approval for this workflow to run (so it doesn't run by accident)
- After we've confirmed this workflow works, we should remove the ability for users to manually/unilaterally release versions of this crate..
- Runs when pushing a tag like
This should also include updating documentation of how the release process works for this crate (maybe in a CONTRIBUTING.md
file).
@newpavlov @dhardy are there any release processes you used in previous projects that worked well?