From 17087ce8286e0741093fb2fb28a7af14feb528a3 Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Fri, 19 Apr 2024 11:12:42 -0400 Subject: [PATCH] docs: update release workflow --- .github/ISSUE_TEMPLATE/release.md | 80 ++++++++++++++++--------------- 1 file changed, 41 insertions(+), 39 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/release.md b/.github/ISSUE_TEMPLATE/release.md index 5c3a375d..357a605c 100644 --- a/.github/ISSUE_TEMPLATE/release.md +++ b/.github/ISSUE_TEMPLATE/release.md @@ -14,74 +14,76 @@ assignees: '' ### Specific Libraries' Workflows #### _Android_ 3. - [ ] Update the API docs to reflect the changes in the API -4. - [ ] Delete the `target` directory in bdk-ffi and all previous artifacts to make sure you're building the library from scratch. -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. -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). +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. +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). ```shell # start an emulator prior to running the tests cd ./bdk-android/ -./gradlew buildAndroidLib -./gradlew connectedAndroidTest +just clean +just build +just test ``` -7. - [ ] Update the readme if necessary +6. - [ ] Update the readme if necessary #### _JVM_ -8. - [ ] Update the API docs to reflect the changes in the API -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. -10. - [ ] Build the library and run the tests, and adjust if necessary +7. - [ ] Update the API docs to reflect the changes in the API +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. +9. - [ ] Build the library and run the tests, and adjust if necessary ```shell cd ./bdk-jvm/ -./gradlew buildJvmLib -./gradlew test +just clean +just build +just test ``` -11. - [ ] Update the readme if necessary +10. - [ ] Update the readme if necessary #### _Swift_ -12. - [ ] Delete the `target` directory in bdk-ffi -13. - [ ] Run the tests and adjust if necessary - +11. - [ ] Delete the `target` directory in bdk-ffi +12. - [ ] Run the tests and adjust if necessary ```shell -./bdk-swift/build-local-swift.sh cd ./bdk-swift/ -swift test +just clean +just build +just test ``` -14. - [ ] Update the readme if necessary +13. - [ ] Update the readme if necessary #### _Python_ -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 -16. - [ ] Build the library +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 +15. - [ ] Build the library ```shell cd ./bdk-python/ +just clean pip3 install --requirement requirements.txt bash ./scripts/generate-macos-arm64.sh # run the script for your particular platform python3 setup.py --verbose bdist_wheel ``` -17. - [ ] Run the tests and adjust if necessary +16. - [ ] Run the tests and adjust if necessary ```shell pip3 install ./dist/bdkpython--py3-none-any.whl --force-reinstall python -m unittest --verbose ``` -18. - [ ] Update the readme and `setup.py` if necessary +17. - [ ] Update the readme and `setup.py` if necessary ### Release Workflow -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). -20.. - [ ] Create a new branch off of `master` called `release/`, e.g. `release/0.31` -21. - [ ] Update bdk-android version from `SNAPSHOT` version to release version -22. - [ ] Update bdk-jvm version from `SNAPSHOT` version to release version -23. - [ ] Update bdk-python version from `.dev` version to release version -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). -25. - [ ] Get a review and ACK and merge the PR updating all the languages to their release versions -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. +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). +19. - [ ] Create a new branch off of `master` called `release/`, e.g. `release/0.31` +20. - [ ] Update bdk-android version from `SNAPSHOT` version to release version +21. - [ ] Update bdk-jvm version from `SNAPSHOT` version to release version +22. - [ ] Update bdk-python version from `.dev` version to release version +23. - [ ] 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). +24. - [ ] Get a review and ACK and merge the PR updating all the languages to their release versions +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. ```shell git tag v0.6.0 --sign --edit git push upstream v0.6.0 ``` -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`). -28. - [ ] Make sure the released libraries work and contain the artifacts you would expect -29. - [ ] Aggregate all the changelog notices from the PRs and add them to the changelog file -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` -31. - [ ] Apply changes to the minor_release and patch_release issue templates if they need any -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. -33. - [ ] Make release on GitHub (set as pre-release and generate auto release notes between the previous tag and the new one) -34. - [ ] Post in the announcement channel -35. - [ ] Tweet about the library +1. - [ ] 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`). +2. - [ ] Make sure the released libraries work and contain the artifacts you would expect +3. - [ ] Aggregate all the changelog notices from the PRs and add them to the changelog file +4. - [ ] Bump the versions on master from `0.9.0-SNAPSHOT` to `0.10.0-SNAPSHOT`, `0.6.0.dev0` to `0.7.0.dev0` +5. - [ ] Apply changes to the minor_release and patch_release issue templates if they need any +6. - [ ] 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. +7. - [ ] Make release on GitHub (set as pre-release and generate auto release notes between the previous tag and the new one) +8. - [ ] Post in the announcement channel +9. - [ ] Tweet about the library