-
Notifications
You must be signed in to change notification settings - Fork 412
Description
Summary
This release of bdk_chain v0.23.1 fixes a bug in bdk_bitcoind_rpc mempool transaction detection and emission, adds TxGraph::get_last_evicted for better transaction eviction tracking, and optimizes bdk-electrum sync/full_scan performance by batching and caching merkle-proof, script history, and header requests. It also improves reliability by removing unwrap() and expect() from bdk-electrum, updating KeychainTxOutIndex::apply_changeset to restore spk_cache before last_revealed, and adding validation to disallow unconfirmed coinbase transactions. Additionally, bdk-esplora returns an error if no point of agreement is found in chain_update, instead of panicking. Additionally, it now includes comprehensive clippy fixes and updated test coverage.
Also released:
- bdk_core
v0.6.1 - bdk_testenv
v0.13.1 - bdk_filestore
v0.21.1 - bitcoind_rpc
v0.21.0 - bdk_electrum
v0.23.1 - bdk_esplora
v0.22.1
Commit
Changelog
- ci: replace grcov by cargo-llvm-cov ci: replace grcov by cargo-llvm-cov #1986
- ci: fix
socket2pin ci: fixsocket2pin #2001 - Detect new mempool txs Detect new mempool txs #1988
- fix(ci): pin
[email protected]to0.5.10on MSRV fix(ci): pin[email protected]to0.5.10on MSRV #1999 - ci: pin
webpki-rootsfor MSRV compatibility ci: pinwebpki-rootsfor MSRV compatibility #1996 - Add
TxGraph::get_last_evictedAddTxGraph::get_last_evicted#1977 - refactor(electrum): remove
unwrap()s andexpect()s refactor(electrum): removeunwrap()s andexpect()s #1981 - keychain_txout:
apply_changesetrestores spk cache before last revealed keychain_txout:apply_changesetrestores spk cache before last revealed #1993 - Disallow unconfirmed coinbase Disallow unconfirmed coinbase #1976
- How can we be happy if clippy is not? How can we be happy if clippy is not? #1990
- feat: add
justfilefeat: addjustfile#1979 - esplora:
chain_updateerrors if no point of connection esplora:chain_updateerrors if no point of connection #1971 - bench: Add
reindex_tx_graphbenchmark bench: Addreindex_tx_graphbenchmark #1968 - test for excluded bounds in outputs_in_range test for excluded bounds in outputs_in_range #1897
- feat(electrum): optimize merkle proof validation with batching feat(electrum): optimize merkle proof validation with batching #1957
- ci: automated update to rustc 1.87.0 ci: automated update to rustc 1.87.0 #1978
- ci: pin
tracing-coreto0.1.33for msrv ci: pintracing-coreto0.1.33for msrv #1972
Checklist
Release numbering must follow Semantic Versioning. These steps assume the current master
branch development version is 0.23.1-alpha.
On the day of the patch release
Change the master branch to the new 0.23.1 version:
- Switch to the
masterbranch. - Create a new PR branch called
release/bdk-chain-0.23.1. - Bump the
release/bdk-chain-0.23.1branch to the next development 0.23.1 version.- Change the
Cargo.tomlversion value to0.23.1. - Update the
CHANGELOG.mdfile. - The commit message should be "Bump version to 0.23.1".
- Change the
- Create PR and merge the
release/bdk-chain-0.23.1branch tomaster.- Title PR "chore: bump
bdk_chainto0.23.1".
- Title PR "chore: bump
Cherry-pick, tag and publish new 0.23.1 release:
- Merge fix PRs to the
masterbranch. - Git cherry-pick fix commits to the
release/bdk-chain-0.23.1branch to be patched. - Verify fixes in
release/bdk-chain-0.23.1branch. - Bump the
release/bdk-chain-0.23.1branch to0.23.1version.- Change the
Cargo.tomlversion value to0.23.1. - The commit message should be "chore(release): bump version to 0.23.1".
- Change the
- Add a tag to the
HEADcommit in therelease/bdk-chain-0.23.1branch.- The tag name should be
v0.23.1 - The first line of the tag message should be "Release 0.23.1".
- In the body of the tag message put a copy of the Summary and Changelog for the release.
- Make sure the tag is signed, for extra safety use the explicit
--signflag.
- The tag name should be
- Wait for the CI to finish one last time.
- Push the new tag to the
bitcoindevkit/bdkrepo. - Publish all the updated crates to crates.io.
- Create the release on GitHub.
- Go to "tags", click on the dots on the right and select "Create Release".
- Set the title to
Release chain-0.23.1. - In the release notes body put the Summary and Changelog.
- Use the "+ Auto-generate release notes" button to add details from included PRs.
- Until we reach a
1.0.0release check the "Pre-release" box.
- Make sure the new release shows up on crates.io and that the docs are built correctly on docs.rs.
- Announce the release, using the Summary, on Discord, Twitter and Mastodon.
- Celebrate 🎉
Metadata
Metadata
Assignees
Labels
Type
Projects
Status