Skip to content

Release bdk_chain 0.23.0 #1969

@ValuedMammal

Description

@ValuedMammal

Summary

This release of bdk_chain v.0.23.0 introduces a new option to persist and cache derived script pubkeys, improving performance on KeychainTxOutIndex startup, the tx_graph module now tracks and persists the first_seen timestamp for transactions which is useful for transaction ordering. The bdk_core crate added convenient is_empty methods to types TxUpdate, {Sync,Scan}Response, making it easier to check for no-op updates.

Commit

542f967

Changelog

Checklist

Release numbering must follow Semantic Versioning. These steps assume the current master development version is 0.23.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_23_0.
  • Create a new Draft release page and release notes comparing the HEAD commit with the previous tag chain-0.22.0
  • 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.22.0
  • Bump the release_0_23_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.23.0
      
      bdk_core to 0.6.0
      bdk_bitcoind_rpc to 0.20.0
      bdk_electrum to 0.23.0
      bdk_esplora to 0.22.0
      bdk_file_store to 0.21.0
      bdk_testenv to 0.13.0
      
  • Create PR and merge the release_0_23_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.23.0
    • The title of the tag message should be "Release chain-0.23.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.23.0
  • Add similar tags for other crates that changed versions [update this list with only changed crates].
    • core-0.6.0
    • chain-0.23.0
    • bitcoind_rpc-0.20.0
    • electrum-0.23.0
    • esplora-0.22.0
    • file_store-0.21.0
    • testenv-0.13.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.23.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

Assignees

Labels

releaseRelease related issue or PR

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions