-
Notifications
You must be signed in to change notification settings - Fork 46
Description
Summary
This release of bdk_wallet v2.1.0 introduces two significant features: comprehensive support for BIP 389 two-path multipath descriptors with automatic receive/change separation through new Wallet::create_multipath() and CreateParams::new_multipath() methods, and enhanced transaction building capabilities with TxBuilder::exclude_unconfirmed and TxBuilder::exclude_below_confirmations for filtering UTXOs by confirmation status. The release also includes important fixes for coin selection preferences and script pubkey cache recovery.
Commit
Changelog
## [wallet-2.1.0]
### Added
- feat: add justfile #268
- feat(tx_builder): add `TxBuilder::exclude_unconfirmed` and `TxBuilder::exclude_below_confirmations` #258
- feat(wallet): `Wallet::create_multipath()` method for creating wallets from BIP 389 multipath descriptors #275
- feat(wallet): `CreateParams::new_multipath()` for multipath descriptor parameter creation #275
- feat(wallet): Support for 2-path multipath descriptors with automatic receive/change separation #275
- feat(wallet): Enhanced validation for multipath descriptors with descriptive error messages #275
### Fixed
- fix(coin_selection): prefer `Utxo::Local` over `Utxo::Foreign` in `OldestFirstCoinSelection` #265
- fix(tx_builder): preserve insertion order with `TxOrdering::Untouched` #262
- fix(wallet): Recovering from spk-cache now works properly #288
### Changed
- ci: automated update to rustc 1.87.0 #242
- deps: bump `bitcoin` to 0.32.6 #266
- doc(tx_builder): add info about manually selected UTXOs priority #262
- test: refactor and move wallet tests #199
- chore(clippy): fix uninlined format args #287
- docs(wallet): expand docs for `apply_evicted_txs` #270
- docs(wallet): add sync operation to bdk_wallet examples #274Checklist
Release numbering must follow Semantic Versioning. These steps assume the current master
branch development version is 2.1.0.
On the day of the feature freeze
Change the master branch to the next MINOR+1 version:
- Switch to the
masterbranch. - Create a new PR branch called
release/2.1.0. - Bump the
release/2.1.0branch to the next development 2.1.0 version.- Change the
Cargo.tomlversion value to2.1.0. - Update the
CHANGELOG.mdfile. - The commit message should be "chore(release): update to
2.1.0".
- Change the
- Create PR and merge the
release/2.1.0branch tomaster.- Title PR "Release 2.1.0".
Create a new release branch and release candidate tag:
- Double check that your local
masteris up-to-date with the upstream repo. - Create a new branch called
release/2.1.0frommaster. - Bump the
release/2.1.0branch to2.1.0version.- Change the
Cargo.tomlversion value to2.1.0. - The commit message should be "Bump version to 2.1.0".
- Change the
- Add a tag to the
HEADcommit in therelease/2.1.0branch.- The tag name should be
wallet-2.1.0 - Use message "Release 2.1.0".
- Make sure the tag is signed, for extra safety use the explicit
--signflag.
- The tag name should be
- Push the
release/2.1.0branch and new tag to thebitcoindevkit/bdkrepo.- Use
git push --tagsoption to push the newwallet-2.1.0tag.
- Use
If any issues need to be fixed before the 2.1.0 version is released:
- Merge fix PRs to the
masterbranch. - Git cherry-pick fix commits to the
release/2.1.0branch. - Verify fixes in
release/2.1.0branch. - Bump the
release/2.1.0branch to2.1.0version.- Change the
Cargo.tomlversion value to2.1.0. - The commit message should be "Bump version to 2.1.0".
- Change the
- Add a tag to the
HEADcommit in the2.1.0branch.- The tag name should be
wallet-2.1.0, where x is the current release candidate number. - Use tag message "Release 2.1.0".
- Make sure the tag is signed, for extra safety use the explicit
--signflag.
- The tag name should be
- Push the new tag to the
bitcoindevkit/bdkrepo.- Use
git push --tagsoption to push the newwallet-2.1.0tag.
- Use
On the day of the release
Tag and publish new release:
- Bump the
release/2.1.0branch to2.1.0version.- Change the
Cargo.tomlversion value to2.1.0. - The commit message should be "Bump version to 2.1.0".
- Change the
- Add a tag to the
HEADcommit in therelease/2.1.0branch.- The tag name should be
wallet-2.1.0 - The first line of the tag message should be "Release 2.1.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, 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 2.1.0. - 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