- 
                Notifications
    You must be signed in to change notification settings 
- Fork 412
Description
Summary
This is the final "beta" test release before a final bdk_wallet 1.0.0 version. Changes include small bug fixes and API improvements plus an improved algorithm for determining which transactions are in the current best "canonical" block chain. The new canonicalization algorithm processes the transaction graph in linear time versus the prior quadratic time algorithm.
Commit
Changelog
- Move transaction testing utilities from crates/chain/tests/commontotestenvcrate Refactor: Move transaction testing utilities fromcrates/chain/tests/commontotestenvcrate #1612
- Remove bdk_chain::ConfirmationTime. Use ChainPosition in its place. feat(chain,wallet)!: rm ConfirmationTime#1643
- Fix building change signers in load_with_paramsfix(wallet): fix building change signers inload_with_params#1662
- Remove bdk_chain method KeychainTxOutIndex::inner refactor(chain)!: remove innermethod from KeychainTxOutIndex #1652
- Document bdk_file_store is a development/testing database chore(file_store): Document that it's a dev database #1661
- Fix incorrect links in docs to wallet examples docs: fix incorrect links to wallet examples #1668
- Add bdk_wallet "test-utils" feature flag that exposes common helpers for testing and development fix(wallet)!: Improve test utilities #1658
- Removed methods Wallet::insert_tx, Wallet::insert_checkpoint, Wallet::unbroadcast_transactions fix(wallet)!: Improve test utilities #1658
- Fix type constraint on list canonical tx Type constraint on list canonical tx #1724
- Fix testenv docs.rs docs fix(testenv): disable downloads (bitcoind and electrsd) for docs.rs b… #1722
- Use bitcoin::constants::COINBASE_MATURITYUsebitcoin::constants::COINBASE_MATURITY#1727
- Rename bdk_core::spk_client's SyncResult to SyncResponse chore(core)!: rename SyncResulttoSyncResponse#1732
- Fix core checkpoint Drop stack overflow fix(core): Fix checkpoint Drop stack overflow #1731
- Change Utxo::Foreign::sequence type to not be optional types: Make Utxo::Foreign::sequence not optional #1681
- Check time when persisting in rusqliteimpl Check time when persisting inrusqliteimpl #1730
- Bump hashbrown dependency version to v0.14.5 chore(deps): bump hashbrown to v0.14.5 #1721
- Add usage of debug_assert!() to LocalChain::apply_update chore(chain)!: use debug_assert!onapply_update#1734
- Allow Sqlite to persist anchor without tx Sqlite - allow persisting anchor without tx #1736
- Change ChainPosition to represent transitive anchors and unconfirmed-without-last-seen values feat(chain,wallet)!: Transitive ChainPosition#1733
- Updated electrum-client dependency to 0.22.0 deps(electrum): bump electrum-clientto 0.22.0 #1751
- Change TxBuilder to be Send safe and not implement the Clone trait fix(tx_builder)!: make TxBuilder Send safe, remove Clone trait #1737
- Update esplora-client dependency to 0.11.0 deps(esplora): bump esplora-clientto 0.11.0 #1746
- Fix fetch_prev_txout to no longer queries coinbase transactions fix(electrum): prevent fetch_prev_txoutfrom querying coinbase transactions #1756
- Remove serde json dependency from chain crate Remove serde json dependency from chain crate #1752
- Introduce O(n)canonicalization algorithm IntroduceO(n)canonicalization algorithm #1670
- Add chain O(n) canonicalization algorithm see: /crates/chain/src/canonical_iter.rs Introduce O(n)canonicalization algorithm #1670
- Add chain indexing fields in TxGraph; txs_by_anchor_height and txs_by_last_seen Introduce O(n)canonicalization algorithm #1670
- Removed chain TxGraph methods: try_get_chain_position and get_chain_position Introduce O(n)canonicalization algorithm #1670
- Change coin_selection and DescriptorExt::dust_value to use Amount type Change coin_selection and DescriptorExt::dust_value to use Amount type #1763
Checklist
Release numbering must follow Semantic Versioning. These steps assume the current master branch development version is v1.0.0-beta.5.
On the day of the feature freeze
Change the master branch to the next MINOR+1 version:
- Ensure all alpha milestone issues and PRs closed, archive them on the project board.
-  Switch to the masterbranch.
-  Create a new PR branch called release/bump_dev_1.0.0_beta.6.
-  Create a "draft" release page and release notes comparing master commmit with prior tag v1.0.0-beta.5
-  Determine which crates need a major release bump and which only need a patch release by looking at the git log. cargo-semver-checkscan also help with this
 cargo semver-checks --baseline-rev <last-tag>
-  Bump the bump_dev_1.0.0_beta.6branch to the next development version.- 
Bump the modified crates versions in their 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
- bdk_wallet
 
- 
The commit message should be: [update this list with only changed crates] Bump bdk_wallet version to 1.0.0-beta.6 bdk_core to 0.4.0 bdk_chain to 0.21.0 bdk_bitcoind_rpc to 0.17.0 bdk_electrum to 0.20.0 bdk_esplora to 0.20.0 bdk_file_store to 0.18.0 bdk_testenv to 0.11.0
 
- 
-  Create PR and merge the release/bump_dev_1.0.0_beta.6branch tomaster. Bump bdk_wallet version to 1.0.0-beta.6 #1772- Title PR "Bump bdk_wallet version to 1.0.0-beta.6".
 
On the day of the release
Tag and publish new release:
-  Add a tag to the HEADcommit in themasterbranch.- git tag v1.0.0-beta.6 --sign -e
- The tag name should be v1.0.0-beta.6
- The first line of the tag message should be "Release 1.0.0-beta.6".
- 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.
 
-  Verify the new tag with git tag -v v1.0.0-beta.6
- Wait for the CI to finish one last time.
-  Push the new tag to the bitcoindevkit/bdkrepo.- git push upstream --tag v1.0.0-beta.6
 
-  Publish all the updated crates to crates.io. [update this list with only changed crates]
- cargo publish -p <crate name>
- bdk_core
- bdk_chain
- bdk_testenv
- bdk_bitcoind_rpc
- bdk_electrum
- bdk_esplora
- bdk_file_store
- bdk_wallet
 
-  Create the release on GitHub.
- Go to "tags", click on the dots on the right and select "Create Release".
- Set the title to Release 1.0.0-beta.6.
- 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 final 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 Nostr.
- Celebrate 🎉
Metadata
Metadata
Assignees
Labels
Type
Projects
Status