docs: add release checklist (#766)

This commit is contained in:
Bjerg
2023-01-08 12:42:31 +01:00
committed by GitHub
parent 0b9ceb9efb
commit 75f56e3088
3 changed files with 40 additions and 9 deletions

35
docs/release.md Normal file
View File

@ -0,0 +1,35 @@
## Releasing
This document outlines how to cut a new release.
### Checklist
It is assumed that the commit that is being considered for release has been marked as stable, i.e. that there is an expectation of no major bugs.
- [ ] Ensure *all* tests and lints pass
- [ ] Changelog
- [ ] Ensure the changelog is up to date by going over https://github.com/paradigmxyz/reth/labels/M-changelog
- [ ] Move the "Unreleased" section in [CHANGELOG.md](./CHANGELOG.md) into a header with the new version, and add a link at the bottom of the changelog to compare the new version to HEAD.
- [ ] Version bump
- [ ] Update the version in `Cargo.toml`
- [ ] Commit the changes
- The message format should be `release: x.y.z`, substituting `x.y.z` for the semver.
- [ ] Tag the new commit with `x.y.z`
- [ ] Push the changes, including the tag
After pushing the tag, CI will start building the release, bundling it, and publishing it to package managers and crates.io. (TBD)
> **Note**
> This is a work in progress. There are still some unknowns:
>
> - Should we require that the commit is signed?
> - Should we publish crates to crates.io? Should each crate use the same version?
>
> Additionally, a workflow needs to be added that:
>
> - Builds the release (cross-platform)
> - Runs *all* tests once more, even the long ones
> - Bundles the release with any aux files (license, config, ...)
> - Publishes the release to GitHub, brew, Dockerhub, Arch, ...
> - Publishes crates to crates.io
> - Creates a GitHub release, copying over the relevant section of the changelog