4.5 KiB
4.5 KiB
name | about | title | labels | assignees |
---|---|---|---|---|
Minor Release | Create a new minor release [for release managers only] | Release MAJOR.MINOR+1.0 | release |
Create a new minor release
Bumping BDK Rust Version
-
- 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.
- Open a PR with an update to
-
- Once the new bdk release is out, update the PR to replace the release candidate with the full release and merge.
Specific Libraries' Workflows
Android
-
- Update the API docs to reflect the changes in the API
-
- Delete the
target
directory in bdk-ffi and all previous artifacts to make sure you're building the library from scratch.
- Delete the
-
- Build the library and run the tests, and adjust if necessary.
# start an emulator prior to running the tests
cd ./bdk-android/
./gradlew buildAndroidLib
./gradlew connectedAndroidTest
-
- Update the readme if necessary
JVM
-
- Update the API docs to reflect the changes in the API
-
- Delete the
target
directory in bdk-ffi and all previous artifacts to make sure you're building the library from scratch
- Delete the
-
- Build the library and run the tests, and adjust if necessary
cd ./bdk-jvm/
./gradlew buildJvmLib
./gradlew test
-
- Update the readme if necessary
Swift
-
- Run the tests and adjust if necessary
./bdk-swift/build-local-swift.sh
cd ./bdk-swift/
swift test
-
- Update the readme if necessary
Python
-
- Delete the
.tox
,dist
,build
, andbdkpython.egg-info
and rusttarget
directories to make sure you are building the library from scratch without any caches
- Delete the
-
- Build the library
cd ./bdk-python/
pip3 install --requirement requirements.txt
bash ./scripts/generate-macos-arm64.sh # run the script for your particular platform
python3 setup.py --verbose bdist_wheel
-
- Run the tests and adjust if necessary
pip3 install ./dist/bdkpython-<yourversion>-py3-none-any.whl --force-reinstall
python -m unittest --verbose tests/test_bdk.py
-
- Update the readme and
setup.py
if necessary
- Update the readme and
Release Workflow
-
- 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.
- 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
-
- Create a new branch off of
master
calledrelease/version
- Create a new branch off of
-
- Update bdk-android version from
SNAPSHOT
version to release version
- Update bdk-android version from
-
- Update bdk-jvm version from
SNAPSHOT
version to release version
- Update bdk-jvm version from
-
- Update bdk-python version from
.dev
version to release version
- Update bdk-python version from
-
- 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.
-
- Get a review and ACK and merge the PR updating all the languages to their release versions
-
- 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.
git tag v0.6.0 --sign --edit
git push upstream v0.6.0
-
- Trigger manual releases for all 4 libraries (for Swift, trigger the release on
master
and simply add the version number in the text field when running the workflow manually. Note that the version number must not contain thev
, i.e.0.26.0
)
- Trigger manual releases for all 4 libraries (for Swift, trigger the release on
-
- Make sure the released libraries work and contain the artifacts you would expect
-
- Aggregate all the changelog notices from the PRs and add them to the changelog file
-
- Bump the versions on master from
0.9.0-SNAPSHOT
to0.10.0-SNAPSHOT
,0.6.0.dev0
to0.7.0.dev0
- Bump the versions on master from
-
- Apply changes to the minor_release and patch_release issue templates if they need any
-
- Open a PR on master with the changes in steps 29, 30, and 31. See example PR here. Get a review and merge the PR.
-
- Make release on GitHub (set as pre-release and generate auto release notes between the previous tag and the new one)
-
- Build and publish API docs for JVM, Android, and Java on the website
./gradlew dokkaHtml # bdk-jvm (Dokka)
./gradlew dokkaJavadoc # bdk-jvm (java-style documentation)
./gradlew dokkaHtml # bdk-android (Dokka)
-
- Post in the announcement channel
-
- Tweet about the library