|
1 | 1 | ---
|
2 |
| -name: Bug report |
3 |
| -about: Create a report to help us improve |
4 |
| -title: '' |
5 |
| -labels: 'bug' |
| 2 | +name: Release |
| 3 | +about: Create a new release [for release managers only] |
| 4 | +title: 'Release MAJOR.MINOR.PATCH' |
| 5 | +labels: 'release' |
6 | 6 | assignees: ''
|
7 | 7 |
|
8 | 8 | ---
|
9 | 9 |
|
10 |
| -**Describe the bug** |
11 |
| -<!-- A clear and concise description of what the bug is. --> |
| 10 | +Create a new release. |
12 | 11 |
|
13 |
| -**To Reproduce** |
14 |
| -<!-- Steps or code to reproduce the behavior. --> |
| 12 | +**Summary** |
15 | 13 |
|
16 |
| -**Expected behavior** |
17 |
| -<!-- A clear and concise description of what you expected to happen. --> |
| 14 | +<--release summary to be used in announcements--> |
18 | 15 |
|
19 |
| -**Build environment** |
20 |
| - - BDK tag/commit: <!-- e.g. v0.13.0, 3a07614 --> |
21 |
| - - OS+version: <!-- e.g. ubuntu 20.04.01, macOS 12.0.1, windows --> |
22 |
| - - Rust/Cargo version: <!-- e.g. 1.56.0 --> |
23 |
| - - Rust/Cargo target: <!-- e.g. x86_64-apple-darwin, x86_64-unknown-linux-gnu, etc. --> |
| 16 | +**Commit** |
24 | 17 |
|
25 |
| -**Additional context** |
26 |
| -<!-- Add any other context about the problem here. --> |
| 18 | +<--latest commit ID to include in this release--> |
| 19 | + |
| 20 | +**Changelog** |
| 21 | + |
| 22 | +<--add notices from PRs merged since the prior release, see ["keep a changelog"]--> |
| 23 | + |
| 24 | +**Checklist** |
| 25 | + |
| 26 | +Release numbering must follow [Semantic Versioning]. These steps assume the |
| 27 | +current `master` branch **development** version is **MAJOR.MINOR.0**. |
| 28 | + |
| 29 | +On the day of the feature freeze for the current development **MAJOR.MINOR.0** |
| 30 | +release create a new release branch and release candidate tag: |
| 31 | + |
| 32 | +- [ ] Double check that your local `master` is up-to-date with the upstream repo. |
| 33 | +- [ ] Create a new branch called `release/MAJOR.MINOR` from `master`. |
| 34 | +- [ ] Add a tag to the `HEAD` commit in the `release/MAJOR.MINOR` branch. |
| 35 | + - The tag name should be `vMAJOR.MINOR.0-RC.1` |
| 36 | + - Use message "Release MAJOR.MINOR.0 RC.1". |
| 37 | + - Make sure the tag is signed, for extra safety use the explicit `--sign` flag. |
| 38 | +- [ ] Push the `release/MAJOR.MINOR` branch and new tag to the `bitcoindevkit/bdk` repo. |
| 39 | + - Use `git push --tags` option to push the new `vMAJOR.MINOR.0-RC.1` tag. |
| 40 | + |
| 41 | +Change `master` branch version to next development **MAJOR.MINOR+1.0** release: |
| 42 | + |
| 43 | +- [ ] Switch back to the `master` branch. |
| 44 | +- [ ] Create a new PR branch called `bump_dev_MAJOR_MINOR+1`, eg. `bump_dev_0_18`. |
| 45 | +- [ ] Bump the `bump_dev_MAJOR_MINOR+1` branch to the next development MAJOR.MINOR+1 version. |
| 46 | + - Change the `Cargo.toml` version value to `MAJOR.MINOR+1.0`. |
| 47 | + - The commit message should be "Bump version to MAJOR.MINOR+1.0". |
| 48 | +- [ ] Create PR and merge the `bump_dev_MAJOR_MINOR+1` branch to `master`. |
| 49 | + - Title PR "Bump dev version to MAJOR.MINOR+1.0". |
| 50 | + |
| 51 | +If any issues need to be fixed before the **MAJOR.MINOR.0** version is released: |
| 52 | + |
| 53 | +- [ ] Merge fix PRs to the `master` branch. |
| 54 | +- [ ] Git cherry-pick fix commits to the `release/MAJOR.MINOR` branch. |
| 55 | +- [ ] Verify fixes in `release/MAJOR.MINOR` branch. |
| 56 | +- [ ] Add a tag to the `HEAD` commit in the `release/MAJOR.MINOR` branch. |
| 57 | + - The tag name should be `vMAJOR.MINOR.0-RC.x+1`, where x is the current release candidate number. |
| 58 | + - Use tag message "Release MAJOR.MINOR.0 RC.x+1". |
| 59 | + - Make sure the tag is signed, for extra safety use the explicit `--sign` flag. |
| 60 | +- [ ] Push the new tag to the `bitcoindevkit/bdk` repo. |
| 61 | + - Use `git push --tags` option to push the new `vMAJOR.MINOR.0-RC.x+1` tag. |
| 62 | + |
| 63 | +On the day of a **MAJOR.MINOR.0** release: |
| 64 | + |
| 65 | +- [ ] Add a tag to the `HEAD` commit in the `release/MAJOR.MINOR` branch. |
| 66 | + - The tag name should be `vMAJOR.MINOR.0` |
| 67 | + - The first line of the tag message should be "Release MAJOR.MINOR.0". |
| 68 | + - In the body of the tag message put a copy of the **Summary** and **Changelog** for the release. |
| 69 | + - Make sure the tag is signed, for extra safety use the explicit `--sign` flag. |
| 70 | +- [ ] Wait for the CI to finish one last time. |
| 71 | +- [ ] Push the new tag to the `bitcoindevkit/bdk` repo. |
| 72 | +- [ ] Publish **all** the updated crates to crates.io. |
| 73 | +- [ ] Create the release on GitHub. |
| 74 | + - Go to "tags", click on the dots on the right and select "Create Release". |
| 75 | + - Set the title to `Release MAJOR.MINOR.0`. |
| 76 | + - In the release notes body put the **Summary** and **Changelog**. |
| 77 | + - Use the "+ Auto-generate release notes" button to add details from included PRs. |
| 78 | + - Until we reach a `1.0.0` release check the "Pre-release" box. |
| 79 | +- [ ] Make sure the new release shows up on [crates.io] and that the docs are built correctly on [docs.rs]. |
| 80 | +- [ ] Announce the release, using the **Summary**, on Discord, Twitter and Mastodon. |
| 81 | +- [ ] Celebrate :tada: |
| 82 | + |
| 83 | +On the day of a **MAJOR.MINOR.PATCH+1** release: |
| 84 | + |
| 85 | +- [ ] Merge fix PRs to the `master` branch. |
| 86 | +- [ ] Git cherry-pick fix commits to the `release/MAJOR.MINOR` branch to be patched. |
| 87 | +- [ ] Verify fixes in `release/MAJOR.MINOR` branch. |
| 88 | +- [ ] Add a tag to the `HEAD` commit in the `release/MAJOR.MINOR` branch. |
| 89 | + - The tag name should be `vMAJOR.MINOR.PATCH+1` |
| 90 | + - The first line of the tag message should be "Release MAJOR.MINOR.PATCH+1". |
| 91 | + - In the body of the tag message put a copy of the **Summary** and **Changelog** for the release. |
| 92 | + - Make sure the tag is signed, for extra safety use the explicit `--sign` flag. |
| 93 | +- [ ] Wait for the CI to finish one last time. |
| 94 | +- [ ] Push the new tag to the `bitcoindevkit/bdk` repo. |
| 95 | +- [ ] Publish **all** the updated crates to crates.io. |
| 96 | +- [ ] Create the release on GitHub. |
| 97 | + - Go to "tags", click on the dots on the right and select "Create Release". |
| 98 | + - Set the title to `Release MAJOR.MINOR.PATCH+1`. |
| 99 | + - In the release notes body put the **Summary** and **Changelog**. |
| 100 | + - Use the "+ Auto-generate release notes" button to add details from included PRs. |
| 101 | + - Until we reach a `1.0.0` release check the "Pre-release" box. |
| 102 | +- [ ] Make sure the new release shows up on [crates.io] and that the docs are built correctly on [docs.rs]. |
| 103 | +- [ ] Announce the release, using the **Summary**, on Discord, Twitter and Mastodon. |
| 104 | +- [ ] Celebrate :tada: |
| 105 | + |
| 106 | +[Semantic Versioning]: https://semver.org/ |
| 107 | +[crates.io]: https://crates.io/crates/bdk |
| 108 | +[docs.rs]: https://docs.rs/bdk/latest/bdk |
| 109 | +["keep a changelog"]: https://keepachangelog.com/en/1.0.0/ |
0 commit comments