Open
Description
Part 1: Bump 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.
Part 2: Prepare Libraries for Release Branch
Android
-
- Delete the
target
directory in bdk-ffi and allbuild
directories (in root andlib
) in the bdk-android directory to make sure you're building the library from scratch.
- Delete the
-
- 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 tests
cd ./bdk-android/
just clean
just build-macos
just test
-
- Update the readme if necessary.
JVM
-
- Delete the
target
directory in bdk-ffi and allbuild
directories (in root andlib
) in bdk-jvm directory to make sure you're building the library from scratch.
- Delete the
-
- Build the library and run all offline and live tests, and adjust them if necessary.
cd ./bdk-jvm/
just clean
just build
just test
-
- Update the readme if necessary.
Swift
-
- Delete the
target
directory in bdk-ffi.
- Delete the
-
- Run all offline and live tests and adjust them if necessary.
cd ./bdk-swift/
just clean
just build
just test
-
- Update the readme if necessary.
Python
-
- Delete the
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/
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
-
- Run all offline and live tests and adjust them if necessary.
pip3 install ./dist/bdkpython-<yourversion>-py3-none-any.whl --force-reinstall
python -m unittest --verbose
-
- Update the readme and
setup.py
if necessary.
- Update the readme and
Part 3: Release Workflow
-
- Update the Android, JVM, Python, and Swift libraries as per the specific libraries' workflows sections above. Open a single PR on
master
for all of these changes calledPrepare 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 sections above. Open a single PR on
-
- Create a new branch off of
master
calledrelease/<feature version>
, e.g.release/1.2
- 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 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 on the release branch.
-
- 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 repository, and trigger the using
master
. 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
). Note also that for all 3 other libraries on the bdk-ffi repo, you should trigger the release workflow using the tag (not a branch).
- Trigger manual releases for all 4 libraries (for Swift, go on the bdk-swift repository, and trigger the using
-
- 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. PR that.
-
- Bump the versions on master from
1.1.0-SNAPSHOT
to1.2.0-SNAPSHOT
(Android + JVM),1.1.0.dev0
to1.2.0.dev0
(Python), and1.1.0-dev
to1.2.0-alpha.0
(Rust).
- Bump the versions on master from
-
- Apply changes to the release issue template if needed.
-
- Make release on GitHub (generate auto release notes between the previous tag and the new one).
-
- Build API docs for Android and JVM locally and PR the websites to the bitcoindevkit.org repo.
-
- Post in the announcement channel.
-
- Tweet about the new release!
Metadata
Metadata
Assignees
Type
Projects
Status