Skip to content

Release bdk_chain 0.23.0 #1969

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

Closed
39 tasks done
ValuedMammal opened this issue May 26, 2025 · 0 comments · Fixed by #1970
Closed
39 tasks done

Release bdk_chain 0.23.0 #1969

ValuedMammal opened this issue May 26, 2025 · 0 comments · Fixed by #1970
Assignees
Labels
release Release related issue or PR
Milestone

Comments

@ValuedMammal
Copy link
Collaborator

ValuedMammal commented May 26, 2025

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. 🎉
@ValuedMammal ValuedMammal self-assigned this May 26, 2025
@ValuedMammal ValuedMammal added the release Release related issue or PR label May 26, 2025
@notmandatory notmandatory moved this to In Progress in BDK Chain May 26, 2025
@notmandatory notmandatory added this to the Wallet 2.0.0 milestone May 26, 2025
@github-project-automation github-project-automation bot moved this from In Progress to Done in BDK Chain May 27, 2025
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
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants