2.9 KiB
2.9 KiB
name | about | title | labels | assignees |
---|---|---|---|---|
Patch Release | Create a new patch release [for release managers only] | Release MAJOR.MINOR.PATCH+1 | release |
Create a new patch release
Summary
<--release summary to be used in announcements-->
Commit
<--latest commit ID to include in this release-->
Changelog
<--add notices from PRs merged since the prior release, see "keep a changelog"-->
Checklist
Release numbering must follow Semantic Versioning. These steps assume the current master
branch development version is MAJOR.MINOR.PATCH.
On the day of the patch release
Change the master
branch to the new PATCH+1 version:
- Switch to the
master
branch. - Create a new PR branch called
bump_dev_MAJOR_MINOR_PATCH+1
, eg.bump_dev_0_22_1
. - Bump the
bump_dev_MAJOR_MINOR
branch to the next development PATCH+1 version.- Change the
Cargo.toml
version value toMAJOR.MINOR.PATCH+1
. - Update the
CHANGELOG.md
file. - The commit message should be "Bump version to MAJOR.MINOR.PATCH+1".
- Change the
- Create PR and merge the
bump_dev_MAJOR_MINOR_PATCH+1
branch tomaster
.- Title PR "Bump version to MAJOR.MINOR.PATCH+1".
Cherry-pick, tag and publish new PATCH+1 release:
- Merge fix PRs to the
master
branch. - Git cherry-pick fix commits to the
release/MAJOR.MINOR
branch to be patched. - Verify fixes in
release/MAJOR.MINOR
branch. - Bump the
release/MAJOR.MINOR.PATCH+1
branch toMAJOR.MINOR.PATCH+1
version.- Change the
Cargo.toml
version value toMAJOR.MINOR.MINOR.PATCH+1
. - The commit message should be "Bump version to MAJOR.MINOR.PATCH+1".
- Change the
- Add a tag to the
HEAD
commit in therelease/MAJOR.MINOR
branch.- The tag name should be
vMAJOR.MINOR.PATCH+1
- The first line of the tag message should be "Release MAJOR.MINOR.PATCH+1".
- In the body of the tag message put a copy of the Summary and Changelog for the release.
- Make sure the tag is signed, for extra safety use the explicit
--sign
flag.
- The tag name should be
- Wait for the CI to finish one last time.
- Push the new tag to the
bitcoindevkit/bdk
repo. - Publish all the updated crates to crates.io.
- Create the release on GitHub.
- Go to "tags", click on the dots on the right and select "Create Release".
- Set the title to
Release MAJOR.MINOR.PATCH+1
. - In the release notes body put the Summary and Changelog.
- Use the "+ Auto-generate release notes" button to add details from included PRs.
- Until we reach a
1.0.0
release check the "Pre-release" box.
- Make sure the new release shows up on crates.io and that the docs are built correctly on docs.rs.
- Announce the release, using the Summary, on Discord, Twitter and Mastodon.
- Celebrate 🎉