3.7 KiB
3.7 KiB
name | about | title | labels | assignees |
---|---|---|---|---|
Patch Release | Create a new patch release [for release managers only] | Release MAJOR.MINOR.PATCH+1 | release |
Create a new patch release
Main Workflow
-
- 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.
-
- Update the Android, JVM, Python, and Swift libraries as per the "Sub-Workflows" section below. Open a single PR on master for all of these changes called
Prepare language bindings libraries for 0.X release
- Update the Android, JVM, Python, and Swift libraries as per the "Sub-Workflows" section below. 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
-
- 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
-
- Merge the PR updating all of the languages to their release versions
-
- 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.
git tag v0.6.0 --sign --edit
git push upstream v0.6.0
-
- Make release on GitHub (set as pre-release and generate auto release notes between the previous tag and the new one)
-
- 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
)
- 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
-
- 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
-
- 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)
-
- Tweet about the library
-
- Post in the announcement channel
Sub 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
pip3 install --requirement requirements.txt
bash ./generate.sh
python3 setup.py --verbose bdist_wheel
-
- Run the tests and adjust if necessary
pip3 install ./dist/bdkpython-<yourversion>-py3-none-any.whl
python -m unittest --verbose tests/test_bdk.py
-
- Update the readme and
setup.py
if necessary
- Update the readme and