Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 1.0.0-beta5 #606

Closed
reez opened this issue Oct 11, 2024 · 1 comment
Closed

Release 1.0.0-beta5 #606

reez opened this issue Oct 11, 2024 · 1 comment
Labels
release Release related issue or PR

Comments

@reez
Copy link
Collaborator

reez commented Oct 11, 2024

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.
    • 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 tests
cd ./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
    • Run the tests and adjust 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 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
@reez reez added the release Release related issue or PR label Oct 11, 2024
@reez
Copy link
Collaborator Author

reez commented Oct 17, 2024

completed

@reez reez closed this as completed Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Release related issue or PR
Projects
None yet
Development

No branches or pull requests

1 participant