You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: DEVELOPMENT_CYCLE.md
+44-20
Original file line number
Diff line number
Diff line change
@@ -24,23 +24,47 @@ What follows are notes and procedures that maintainers can refer to when making
24
24
25
25
Pre-`v1.0.0` our "major" releases only affect the "minor" semver value. Accordingly, our "minor" releases will only affect the "patch" value.
26
26
27
-
1. Create a new branch called `release/x.y.z` from `master`. Double check that your local `master` is up-to-date with the upstream repo before doing so.
28
-
2. Make a commit on the release branch to bump the version to `x.y.z-rc.1`. The message should be "Bump version to x.y.z-rc.1".
29
-
3. Push the new branch to `bitcoindevkit/bdk` on GitHub.
30
-
4. During the one week of feature freeze run additional tests on the release branch.
31
-
5. If a bug is found:
32
-
- If it's a minor issue you can just fix it in the release branch, since it will be merged back to `master` eventually
33
-
- For bigger issues you can fix them on `master` and then *cherry-pick* the commit to the release branch
34
-
6. Update the changelog with the new release version.
35
-
7. Update `src/lib.rs` with the new version (line ~43)
36
-
8. On release day, make a commit on the release branch to bump the version to `x.y.z`. The message should be "Bump version to x.y.z".
37
-
9. Add a tag to this commit. The tag name should be `vx.y.z` (for example `v0.5.0`), and the message "Release x.y.z". Make sure the tag is signed, for extra safety use the explicit `--sign` flag.
38
-
10. Push the new commits to the upstream release branch, wait for the CI to finish one last time.
39
-
11. Publish **all** the updated crates to crates.io.
40
-
12. Make a new commit to bump the version value to `x.y.(z+1)-dev`. The message should be "Bump version to x.y.(z+1)-dev".
41
-
13. Merge the release branch back into `master`.
42
-
14. If the `master` branch contains any unreleased changes to the `bdk-macros` crate, change the `bdk` Cargo.toml `[dependencies]` to point to the local path (ie. `bdk-macros = { path = "./macros"}`)
43
-
15. Create the release on GitHub: go to "tags", click on the dots on the right and select "Create Release". Then set the title to `vx.y.z` and write down some brief release notes.
44
-
16. Make sure the new release shows up on crates.io and that the docs are built correctly on docs.rs.
45
-
17. Announce the release on Twitter, Discord and Telegram.
46
-
18. Celebrate :tada:
27
+
These steps assume the current unreleased `master` branch version is `x.y.0`.
28
+
29
+
### On feature freeze day
30
+
31
+
1. Double check that your local `master` is up-to-date with the upstream repo.
32
+
1. Create a new branch called `release/x.y` from `master`.
33
+
1. In the `release/x.y` branch update the changelog:
34
+
- Add descriptions for PRs merged since the prior release that are relevant to users.
35
+
- The commit message should be "Update changelog for release x.y.0".
36
+
1. Push the new branch to `bitcoindevkit/bdk` on GitHub.
37
+
1. In a new PR bump the `master` branch to the next unreleased MINOR version:
38
+
- Change the`Cargo.toml` version value to `x.y+1.0`.
39
+
- Update `src/lib.rs` with the new version (line ~43).
40
+
- The commit message should be "Bump version to x.y+1.0".
41
+
42
+
### During the one week x.y.0 feature freeze or for x.y.z bug fix releases
43
+
44
+
1. Run additional tests on the `release/x.y` branch.
45
+
1. If a bug is found:
46
+
- If it's a minor issue fix it in the `release/x.y` branch, since it will be merged back to `master` eventually.
47
+
- For bigger issues you can fix them on `master` and then *cherry-pick* the commit to the `release/x.y` branch.
48
+
- Update the changelog with details of any significant fixes. The message should be "Update changelog for release x.y.z".
49
+
50
+
### On x.y.0 release day or for x.y.z bug fix releases
51
+
52
+
1. Add a tag to the `HEAD` commit in the `release/x.y` branch:
53
+
- The tag name should be `vx.y.z`, and the message "Release x.y.z".
54
+
- Make sure the tag is signed, for extra safety use the explicit `--sign` flag.
55
+
1. Push the new tag to the upstream `release/x.y` branch, wait for the CI to finish one last time.
56
+
1. Publish **all** the updated crates to crates.io.
57
+
1. Merge the `release/x.y` branch CHANGELOG and any bug fixes back into `master`.
58
+
The version on `master` should stay `x.y+1.0`.
59
+
1. If the `master` branch contains any unreleased changes to the `bdk-macros` crate, change the
60
+
`bdk` Cargo.toml `[dependencies]` to point to the local path (ie. `bdk-macros = { path = "./macros"}`)
61
+
1. Create the release on GitHub:
62
+
- Go to "tags", click on the dots on the right and select "Create Release".
63
+
- Set the title to `vx.y.z` and add a brief release description.
64
+
- Use the "+ Auto-generate release notes" button to add details from included PRs.
65
+
1. Make sure the new release shows up on [crates.io] and that the docs are built correctly on [docs.rs].
66
+
1. Announce the release on Discord, Twitter and Mastodon.
0 commit comments