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
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.
Once the new bdk release is out, update the PR to replace the release candidate with the full release and merge.
Part 2: Prepare Libraries for Release Branch
Android
Update the API docs to reflect the changes in the API
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.
Build the library and run the offline and live tests, and adjust them if necessary (note that you'll need an Android emulator running).
# start an emulator prior to running the testscd ./bdk-android/
just clean
just build
just test
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 build directories (in root, lib, and plugins) in bdk-jvm directory to make sure you're building the library from scratch.
Build the library and run the tests, and adjust if necessary
cd ./bdk-jvm/
just clean
just build
just test
Update the readme if necessary
Swift
Delete the target directory in bdk-ffi
Run the tests and adjust if necessary
cd ./bdk-swift/
just clean
just build
just test
Update the readme if necessary
Python
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
Build the library
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
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.
Part 3: Release Workflow
Create a new branch off of master called release/<feature version>, e.g. release/0.31
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
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.
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, go on the 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).
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 to 0.10.0-SNAPSHOT, 0.6.0.dev0 to 0.7.0.dev0
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)
Post in the announcement channel
Tweet about the library
The text was updated successfully, but these errors were encountered:
Part 1: Bump BDK Rust Version
Cargo.toml
to the new bdk release candidate and ensure all CI workflows run correctly. Fix errors if necessary.Part 2: Prepare Libraries for Release Branch
Android
target
directory in bdk-ffi and allbuild
directories (in root,lib
, andplugins
) in the bdk-android directory to make sure you're building the library from scratch.JVM
target
directory in bdk-ffi and allbuild
directories (in root,lib
, andplugins
) in bdk-jvm directory to make sure you're building the library from scratch.Swift
target
directory in bdk-ffiPython
dist
,build
, andbdkpython.egg-info
and rusttarget
directories to make sure you are building the library from scratch without any cachessetup.py
if necessaryPrepare language bindings libraries for 0.X release
. See example PR here.Part 3: Release Workflow
master
calledrelease/<feature version>
, e.g.release/0.31
SNAPSHOT
version to release versionSNAPSHOT
version to release version.dev
version to release versionmaster
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 thev
, i.e.0.26.0
, but the tag will have it, i.e.v0.26.0
).0.9.0-SNAPSHOT
to0.10.0-SNAPSHOT
,0.6.0.dev0
to0.7.0.dev0
The text was updated successfully, but these errors were encountered: