From b8b60dda876a0128b49c0be1669d3f17b3716784 Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Mon, 17 Apr 2023 14:34:03 -0400 Subject: [PATCH] Prepare language bindings libraries for 0.28 release --- .github/ISSUE_TEMPLATE/patch_release.md | 129 ++++++++++++------------ bdk-android/README.md | 4 +- bdk-jvm/README.md | 4 +- 3 files changed, 69 insertions(+), 68 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/patch_release.md b/.github/ISSUE_TEMPLATE/patch_release.md index 5c2db88..d80a477 100644 --- a/.github/ISSUE_TEMPLATE/patch_release.md +++ b/.github/ISSUE_TEMPLATE/patch_release.md @@ -6,78 +6,79 @@ labels: 'release' assignees: '' --- -## Create a new patch release -### _Main Workflow_ +# Creating a new patch release + +## Bumping BDK Rust Version 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. 2. - [ ] Once the new bdk release is out, update the PR to replace the release candidate with the full release and merge. -3. - [ ] Update the Android, JVM, Python, and Swift libraries as per the ["**_Sub-Workflows_**" section below](#Sub-Workflows). Open a single PR on master for all of these changes called `Prepare language bindings libraries for 0.X release` -18. - [ ] Create a new branch off of `master` called `release/version` -19. - [ ] Checkout that branch and open a PR to update the Android, JVM, and Python libraries' versions -- [ ] Update bdk-android version from `SNAPSHOT` version to release version -- [ ] Update bdk-jvm version from `SNAPSHOT` version to release version -- [ ] Update bdk-python version from `.dev` version to release version -20. - [ ] Merge the PR updating all of the languages to their release versions -21. - [ ] Create the tag 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) and push it to GitHub. + +### 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. - [ ] Build the library and run the tests, and adjust if necessary. +```sh +# start an emulator prior to running the tests +cd ./bdk-android/ +./gradlew buildAndroidLib +./gradlew connectedAndroidTest +``` +6. - [ ] Update the readme if necessary +#### _JVM_ +7. - [ ] Update the API docs to reflect the changes in the API +8. - [ ] Delete the `target` directory in bdk-ffi and all previous artifacts to make sure you're building the library from scratch +9. - [ ] Build the library and run the tests, and adjust if necessary +```sh +cd ./bdk-jvm/ +./gradlew buildJvmLib +./gradlew test +``` +10. - [ ] Update the readme if necessary +#### _Swift_ +11. - [ ] Run the tests and adjust if necessary +```sh +./bdk-swift/build-local-swift.sh +cd ./bdk-swift/ +swift test +``` +12. - [ ] Update the readme if necessary +#### _Python_ +13. - [ ] Delete the `.tox`, `dist`, `build`, and `bdkpython.egg-info` and rust `target` directories to make sure you are building the library from scratch without any caches +14. - [ ] Build the library +```shell +cd ./bdk-python/ +pip3 install --requirement requirements.txt +bash ./generate.sh +python3 setup.py --verbose bdist_wheel +``` +15. - [ ] Run the tests and adjust if necessary +```shell +pip3 install ./dist/bdkpython--py3-none-any.whl --force-reinstall +python -m unittest --verbose tests/test_bdk.py +``` +16. - [ ] Update the readme and `setup.py` if necessary + +### Release Workflow +17. - [ ] 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` +- [ ] Create a new branch off of `master` called `release/version` +18. - [ ] Checkout that branch and open a PR to update the Android, JVM, and Python libraries' versions + - [ ] Update bdk-android version from `SNAPSHOT` version to release version + - [ ] Update bdk-jvm version from `SNAPSHOT` version to release version + - [ ] Update bdk-python version from `.dev` version to release version +19. - [ ] Merge the PR updating all of the languages to their release versions +20. - [ ] Create the tag 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) and push it to GitHub. ```sh git tag v0.6.0 --sign --edit git push upstream v0.6.0 ``` -22. - [ ] Make release on GitHub (set as pre-release and generate auto release notes between the previous tag and the new one) -23. - [ ] Trigger manual releases for all 4 libraries (for Swift, simply add the version number in the text field when running the workflow manually. Note that the version number must not contain the `v`, i.e. `0.26.0`) -24. - [ ] Bump the versions on master from `0.9.0-SNAPSHOT` to `0.10.0-SNAPSHOT`, `0.6.0.dev0` to `0.7.0.dev0` -25. - [ ] Build and publish API docs for JVM, Android, and Java on the website +21. - [ ] Make release on GitHub (set as pre-release and generate auto release notes between the previous tag and the new one) +22. - [ ] Trigger manual releases for all 4 libraries (for Swift, simply add the version number in the text field when running the workflow manually. Note that the version number must not contain the `v`, i.e. `0.26.0`) +23. - [ ] Bump the versions on master from `0.9.0-SNAPSHOT` to `0.10.0-SNAPSHOT`, `0.6.0.dev0` to `0.7.0.dev0` +24. - [ ] Build and publish API docs for JVM, Android, and Java on the website ```bash! ./gradlew dokkaHtml # bdk-jvm (Dokka) ./gradlew dokkaJavadoc # bdk-jvm (java-style documentation) ./gradlew dokkaHtml # bdk-android (Dokka) ``` -26. - [ ] Tweet about the library -27. - [ ] Post in the announcement channel - -### _Sub Workflows_ -#### _Android_ -4. - [ ] Update the API docs to reflect the changes in the API -5. - [ ] Delete the `target` directory in bdk-ffi and all previous artifacts to make sure you're building the library from scratch -6. - [ ] Build the library and run the tests, and adjust if necessary. -```sh -# start an emulator prior to running the tests -cd bdk-android -./gradlew buildAndroidLib -./gradlew connectedAndroidTest -``` -7. - [ ] 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 previous artifacts to make sure you're building the library from scratch -10. - [ ] Build the library and run the tests, and adjust if necessary -```sh -cd bdk-jvm -./gradlew buildJvmLib -./gradlew test -``` -11. - [ ] Update the readme if necessary - -#### _Swift_ -12. - [ ] Run the tests and adjust if necessary -```sh -./bdk-swift/build-local-swift.sh -cd bdk-swift -swift test -``` -13. - [ ] Update the readme if necessary - -#### _Python_ -14. - [ ] Delete the `.tox`, `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 -pip3 install --requirement requirements.txt -bash ./generate.sh -python3 setup.py --verbose bdist_wheel -``` -16. - [ ] Run the tests and adjust if necessary -```shell -pip3 install ./dist/bdkpython--py3-none-any.whl -python -m unittest --verbose tests/test_bdk.py -``` -17. - [ ] Update the readme and `setup.py` if necessary +25. - [ ] Tweet about the library +26. - [ ] Post in the announcement channel diff --git a/bdk-android/README.md b/bdk-android/README.md index 788e2f8..b27d849 100644 --- a/bdk-android/README.md +++ b/bdk-android/README.md @@ -19,8 +19,8 @@ import org.bitcoindevkit.* // ... -val externalDescriptor = "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)" -val internalDescriptor = "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)" +val externalDescriptor = Descriptor("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)", Network.TESTNET) +val internalDescriptor = Descriptor("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)", Network.TESTNET) val databaseConfig = DatabaseConfig.Memory diff --git a/bdk-jvm/README.md b/bdk-jvm/README.md index 0eab282..a9a7e36 100644 --- a/bdk-jvm/README.md +++ b/bdk-jvm/README.md @@ -19,8 +19,8 @@ import org.bitcoindevkit.* // ... -val externalDescriptor = "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)" -val internalDescriptor = "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)" +val externalDescriptor = Descriptor("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)", Network.TESTNET) +val internalDescriptor = Descriptor("wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)", Network.TESTNET) val databaseConfig = DatabaseConfig.Memory