-
Notifications
You must be signed in to change notification settings - Fork 419
Closed
Description
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
Changelog
- feat!(chain): implement
first_seentracking by @uvuvuwu in feat!(chain): implementfirst_seentracking #1950 - fix(docs):
merge_chainsoutdated documentation by @oleonardolima in fix(docs):merge_chainsoutdated documentation #1806 - chore: Update rust-version to 1.86.0 by @ValuedMammal in chore: Update rust-version to 1.86.0 #1955
- Add zizmor github actions security analysis workflow by @notmandatory in Add zizmor github actions security analysis workflow #1813
- chore: create and apply rustfmt.toml by @luisschwab in chore: create and apply rustfmt.toml #1946
- Add
is_emptymethods toTxUpdateand{}_Responsetypes by @evanlinjin in Addis_emptymethods toTxUpdateand{}_Responsetypes #1961 - fix(chain): persist
first_seenby @LagginTimes in fix(chain): persistfirst_seen#1966 - Persist spks derived from KeychainTxOutIndex by @evanlinjin in Persist spks derived from
KeychainTxOutIndex#1963
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
masterbranch.git switch master - Make sure that your local
masteris 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-checkscan also help with this.cargo semver-checks --baseline-rev chain-0.22.0 - Bump the
release_0_23_0branch to the next version.- Bump the modified crate versions in the
Cargo.tomlfiles [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.mdfiles, 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
- Bump the modified crate versions in the
- Create PR and merge the
release_0_23_0branch tomaster.- Title PR "Release
bdk_chainv0.23.0". chore: bumpbdk_chainto 0.23.0 #1970
- Title PR "Release
- Wait for CI to finish one last time.
Tag and publish the new release:
- Add a tag to the
HEADcommit of themasterbranch.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
--signflag.
- 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/bdkrepo.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.
- Set the title to
- 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 PRRelease related issue or PR
Type
Projects
Status
Done