bdk-ffi/.github/ISSUE_TEMPLATE/patch_release.md
2023-02-22 14:27:03 -05:00

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.
    • 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
    • Create a new branch off of master called release/version
    • 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)
    • Bump the versions on master from 0.9.0-SNAPSHOT to 0.10.0-SNAPSHOT, 0.6.0.dev0 to 0.7.0.dev0
    • 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
    • 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
    • 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, and bdkpython.egg-info and rust target directories to make sure you are building the library from scratch without any caches
    • 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