Skip to content

Commit edea8e8

Browse files
docs: update release workflow
1 parent 6bc974e commit edea8e8

File tree

1 file changed

+54
-46
lines changed

1 file changed

+54
-46
lines changed

.github/ISSUE_TEMPLATE/release.md

Lines changed: 54 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -6,82 +6,90 @@ labels: 'release'
66
assignees: ''
77
---
88

9-
## Create a new minor release
10-
## Bumping BDK Rust Version
9+
# Part 1: Bump BDK Rust Version
10+
1111
1. - [ ] Open a PR with an update to `Cargo.toml` to the new bdk release candidate and ensure all CI workflows run correctly. Fix errors if necessary.
1212
2. - [ ] Once the new bdk release is out, update the PR to replace the release candidate with the full release and merge.
1313

14-
### Specific Libraries' Workflows
15-
#### _Android_
14+
# Part 2: Prepare Libraries for Release Branch
15+
16+
### _Android_
17+
1618
3. - [ ] Update the API docs to reflect the changes in the API
17-
4. - [ ] Delete the `target` directory in bdk-ffi and all previous artifacts to make sure you're building the library from scratch.
18-
5. - [ ] Delete the `target` directory in bdk-ffi and all `build` directories (in root, `lib`, and `plugins`) in bdk-android directory to make sure you're building the library from scratch.
19-
6. - [ ] Build the library and run the offline and live tests, and adjust them if necessary (note that you'll need an Android emulator running).
19+
4. - [ ] Delete the `target` directory in bdk-ffi and all `build` directories (in root, `lib`, and `plugins`) in the bdk-android directory to make sure you're building the library from scratch.
20+
5. - [ ] Build the library and run the offline and live tests, and adjust them if necessary (note that you'll need an Android emulator running).
2021
```shell
2122
# start an emulator prior to running the tests
2223
cd ./bdk-android/
23-
./gradlew buildAndroidLib
24-
./gradlew connectedAndroidTest
24+
just clean
25+
just build
26+
just test
2527
```
26-
7. - [ ] Update the readme if necessary
28+
6. - [ ] Update the readme if necessary
2729

28-
#### _JVM_
29-
8. - [ ] Update the API docs to reflect the changes in the API
30-
9. - [ ] Delete the `target` directory in bdk-ffi and all `build` directories (in root, `lib`, and `plugins`) in bdk-jvm directory to make sure you're building the library from scratch.
31-
10. - [ ] Build the library and run the tests, and adjust if necessary
30+
### _JVM_
31+
32+
7. - [ ] Update the API docs to reflect the changes in the API
33+
8. - [ ] Delete the `target` directory in bdk-ffi and all `build` directories (in root, `lib`, and `plugins`) in bdk-jvm directory to make sure you're building the library from scratch.
34+
9. - [ ] Build the library and run the tests, and adjust if necessary
3235
```shell
3336
cd ./bdk-jvm/
34-
./gradlew buildJvmLib
35-
./gradlew test
37+
just clean
38+
just build
39+
just test
3640
```
37-
11. - [ ] Update the readme if necessary
41+
10. - [ ] Update the readme if necessary
3842

39-
#### _Swift_
40-
12. - [ ] Delete the `target` directory in bdk-ffi
41-
13. - [ ] Run the tests and adjust if necessary
43+
### _Swift_
4244

45+
11. - [ ] Delete the `target` directory in bdk-ffi
46+
12. - [ ] Run the tests and adjust if necessary
4347
```shell
44-
./bdk-swift/build-local-swift.sh
4548
cd ./bdk-swift/
46-
swift test
49+
just clean
50+
just build
51+
just test
4752
```
48-
14. - [ ] Update the readme if necessary
53+
13. - [ ] Update the readme if necessary
54+
55+
### _Python_
4956

50-
#### _Python_
51-
15. - [ ] Delete the `dist`, `build`, and `bdkpython.egg-info` and rust `target` directories to make sure you are building the library from scratch without any caches
52-
16. - [ ] Build the library
57+
14. - [ ] Delete the `dist`, `build`, and `bdkpython.egg-info` and rust `target` directories to make sure you are building the library from scratch without any caches
58+
15. - [ ] Build the library
5359
```shell
5460
cd ./bdk-python/
61+
just clean
5562
pip3 install --requirement requirements.txt
5663
bash ./scripts/generate-macos-arm64.sh # run the script for your particular platform
5764
python3 setup.py --verbose bdist_wheel
5865
```
59-
17. - [ ] Run the tests and adjust if necessary
66+
16. - [ ] Run the tests and adjust if necessary
6067
```shell
6168
pip3 install ./dist/bdkpython-<yourversion>-py3-none-any.whl --force-reinstall
6269
python -m unittest --verbose
6370
```
64-
18. - [ ] Update the readme and `setup.py` if necessary
71+
17. - [ ] Update the readme and `setup.py` if necessary
72+
18. - [ ] Update the Android, JVM, Python, and Swift libraries as per the _Specific Libraries' Workflows_ section above. Open a single PR on master for all of these changes called `Prepare language bindings libraries for 0.X release`. See [example PR here](https://github.com/bitcoindevkit/bdk-ffi/pull/315).
73+
74+
## Part 3: Release Workflow
6575

66-
### Release Workflow
67-
19. - [ ] Update the Android, JVM, Python, and Swift libraries as per the _Specific Libraries' Workflows_ section above. Open a single PR on master for all of these changes called `Prepare language bindings libraries for 0.X release`. See [example PR here](https://github.com/bitcoindevkit/bdk-ffi/pull/315).
68-
20.. - [ ] Create a new branch off of `master` called `release/<feature version>`, e.g. `release/0.31`
69-
21. - [ ] Update bdk-android version from `SNAPSHOT` version to release version
70-
22. - [ ] Update bdk-jvm version from `SNAPSHOT` version to release version
71-
23. - [ ] Update bdk-python version from `.dev` version to release version
72-
24. - [ ] Open a PR to that release branch that updates the Android, JVM, and Python libraries' versions in step 19, 20, and 21. See [example PR here](https://github.com/bitcoindevkit/bdk-ffi/pull/316).
73-
25. - [ ] Get a review and ACK and merge the PR updating all the languages to their release versions
74-
26. - [ ] Create the tag for the release and make sure to add the changelog info to the tag (works better if you prepare the tag message on the side in a text editor). Push the tag to GitHub.
76+
19. - [ ] Create a new branch off of `master` called `release/<feature version>`, e.g. `release/0.31`
77+
20. - [ ] Update bdk-android version from `SNAPSHOT` version to release version
78+
21. - [ ] Update bdk-jvm version from `SNAPSHOT` version to release version
79+
22. - [ ] Update bdk-python version from `.dev` version to release version
80+
23. - [ ] Open a PR to that release branch that updates the Android, JVM, and Python libraries' versions in the three steps above. See [example PR here](https://github.com/bitcoindevkit/bdk-ffi/pull/316).
81+
24. - [ ] Get a review and ACK and merge the PR updating all the languages to their release versions
82+
25. - [ ] Create the tag for the release and make sure to add the changelog info to the tag (works better if you prepare the tag message on the side in a text editor). Push the tag to GitHub.
7583
```shell
7684
git tag v0.6.0 --sign --edit
7785
git push upstream v0.6.0
7886
```
79-
27. - [ ] Trigger manual releases for all 4 libraries (for Swift, go on the [bdk-swift](https://github.com/bitcoindevkit/bdk-swift) trigger the release on `master` and simply add the version number and tag name in the text fields when running the workflow manually. Note that the version number must not contain the `v`, i.e. `0.26.0`, but the tag will have it, i.e. `v0.26.0`).
80-
28. - [ ] Make sure the released libraries work and contain the artifacts you would expect
81-
29. - [ ] Aggregate all the changelog notices from the PRs and add them to the changelog file
82-
30. - [ ] Bump the versions on master from `0.9.0-SNAPSHOT` to `0.10.0-SNAPSHOT`, `0.6.0.dev0` to `0.7.0.dev0`
83-
31. - [ ] Apply changes to the minor_release and patch_release issue templates if they need any
84-
32. - [ ] Open a PR on master with the changes in steps 29, 30, and 31. See [example PR here](https://github.com/bitcoindevkit/bdk-ffi/pull/317). Get a review and merge the PR.
85-
33. - [ ] Make release on GitHub (set as pre-release and generate auto release notes between the previous tag and the new one)
86-
34. - [ ] Post in the announcement channel
87-
35. - [ ] Tweet about the library
87+
26. - [ ] Trigger manual releases for all 4 libraries (for Swift, go on the [bdk-swift](https://github.com/bitcoindevkit/bdk-swift) trigger the release on `master` and simply add the version number and tag name in the text fields when running the workflow manually. Note that the version number must not contain the `v`, i.e. `0.26.0`, but the tag will have it, i.e. `v0.26.0`).
88+
27. - [ ] Make sure the released libraries work and contain the artifacts you would expect
89+
28. - [ ] Aggregate all the changelog notices from the PRs and add them to the changelog file
90+
29. - [ ] Bump the versions on master from `0.9.0-SNAPSHOT` to `0.10.0-SNAPSHOT`, `0.6.0.dev0` to `0.7.0.dev0`
91+
30. - [ ] Apply changes to the minor_release and patch_release issue templates if they need any
92+
31. - [ ] Open a PR on master with the changes in steps 29, 30, and 31. See [example PR here](https://github.com/bitcoindevkit/bdk-ffi/pull/317). Get a review and merge the PR.
93+
32. - [ ] Make release on GitHub (set as pre-release and generate auto release notes between the previous tag and the new one)
94+
33. - [ ] Post in the announcement channel
95+
34. - [ ] Tweet about the library

0 commit comments

Comments
 (0)