Skip to content

Release bdk_chain v0.22.0 #1945

@ValuedMammal

Description

@ValuedMammal

Summary

This release of bdk_chain 0.22.0 includes a better syncing experience for electrum and esplora, relevant transactions that are missing can now be evicted using SyncRequestBuilder. CanonicalizationParams can be used to modify the behavior of CanonicalIter for a given query. Updated dependency on miniscript to 12.3.1 along with various fixes and improvements.

Commit

eeedb4e

Changelog

Checklist

Release numbering must follow Semantic Versioning. These steps assume the current master development version is 0.22.0-alpha.0.

On the day of the release

  • Ensure all milestone issues and PRs closed, archive them on the project board.
  • Switch to the master branch. git switch master
  • Make sure that your local master is up-to-date with upstream. git pull
  • Create a new PR branch called release_0_22_0.
  • Create a new Draft release page and release notes comparing the HEAD commit with the previous tag chain-0.21.1
  • Determine which crates need a major release bump and which need a minor/patch release by looking at the git log.
    cargo-semver-checks can also help with this. cargo semver-checks --baseline-rev chain-0.21.1
  • Bump the release_0_22_0 branch to the next version.
    • Bump the modified crate versions in the Cargo.toml files [update this list with only changed crates].
      • bdk_core
      • bdk_chain
      • bdk_bitcoind_rpc
      • bdk_electrum
      • bdk_esplora
      • bdk_file_store
      • bdk_testenv
    • For crates that changed update their CHANGELOG.md files, see keep a changelog.
    • The commit message should be: [update this list with only changed crates]
      Bump bdk_chain version to 0.22.0
      
      bdk_core to 0.5
      bdk_bitcoind_rpc to 0.19.0
      bdk_electrum to 0.22.0
      bdk_esplora to 0.21.0
      bdk_file_store to 0.20.0
      bdk_testenv to 0.12.0
      
  • Create PR and merge the release_0_22_0 branch to master.
  • Wait for CI to finish one last time.

Tag and publish the new release:

  • Add a tag to the HEAD commit of the master branch.
    • git tag <tagname> --sign --edit
    • The tag name should be chain-0.22.0
    • The title of the tag message should be "Release chain-0.22.0".
    • In the body of the tag message put a copy of the Summary and Changelog for the release.
    • Make sure the tag is signed by using the explicit --sign flag.
  • Verify the new tag git tag -v chain-0.22.0
  • Add similar tags for other crates that changed versions [update this list with only changed crates].
    • core-0.5.0
    • chain-0.22.0
    • bitcoind_rpc-0.19.0
    • electrum-0.22.0
    • esplora-0.21.0
    • file_store-0.20.0
    • testenv-0.12.0
  • Push the new tags to the bitcoindevkit/bdk repo. git push --tags
  • Publish all of the updated crates to crates.io [update this list with only changed crates].
    (Note: must publish in dependency order) cargo publish -p <package>
    • bdk_core
    • bdk_chain
    • bdk_bitcoind_rpc
    • bdk_electrum
    • bdk_esplora
    • bdk_file_store
    • bdk_testenv
  • Finish creating the release on GitHub.
    • Set the title to Release chain-0.22.0.
    • In the release notes body put the Summary and Changelog.
    • Use the "Generate release notes" button to add details from included PRs.
    • This is the latest release, check the "Set as the latest release" box.
  • Make sure the new release shows up on crates.io and that the docs are built correctly on docs.rs.
  • Announce the releases using the Summary on Discord and social media. 🎉

Metadata

Metadata

Labels

releaseRelease related issue or PR

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions