Skip to content

Release 1.0.0-alpha.13 #1471

@notmandatory

Description

@notmandatory

Create a new minor release

Summary

This is release includes major changes required to finalize the bdk_wallet 1.0.0 APIs, including: upgrading to rust-bitcoin 0.32 and rust-miniscript 0.12.0, constructing a Wallet now requires two descriptors (external and internal), the db field was removed from Wallet, staged changes can be persisted via a blocking or async data store.

Commit

0543801

Changelog

Fixed

Changed

  • Upgrade rust bitcoin to 0.32.0, miniscript to 0.12.0. bump(deps): upgrade rust bitcoin to 0.32.0, miniscript to 0.12.0 and others #1448
    • Use compute_txid() instead of deprecated txid().
    • Use minimal_non_dust() instead of dust_value().
    • Use signature and sighash_type fields, instead of previous sig and hash_type.
    • Use sighash::P2wpkhError, and sighash::TaprootError instead of older sighash::Error.
    • Converts from Network to NetworkKind, where expected.
    • Converts from Weight type to current used usize.
    • Use .into() to convert from AbsLockTime and RelLockTime to absolute::LockTime and relative::LockTime.
    • Remove use of deprecated ThirtyTwoByteHash trait, use Message::from_digest().
    • Update the miniscript policy and dsl macros to proper expect and handle new Threshold type, instead of the previous two parameters.
  • Add further bitcoin::Amount usage on public APIs. feat: add further bitcoin::Amount usage on public APIs #1426
    • Updated CreateTxError::FeeTooLow to use bitcoin::Amount.
    • Updated Wallet::calculate_fee(). to use bitcoin::Amount
    • Updated TxBuilder::fee_absolute(). to use bitcoin::Amount.
    • Updated CalculateFeeError::NegativeFee to use bitcoin::SignedAmount.
    • Updated TxGraph::calculate_fee(). to use bitcoin::Amount.
    • Updated PsbUtils::fee_amount() to use bitcoin::Amount.
  • Wallet::get_balance() renamed to Wallet::balance(). refactor(wallet): rename get_balance() to balance() #1455
  • Constructing a Wallet now requires two distinct descriptors. Make Wallet require a change descriptor #1390
  • Removed duplicated InsufficientFunds error member. Remove duplicated InsufficientFunds error member #1441
  • Refactor wallet and persist mods, remove bdk_persist crate. Refactor wallet and persist mod, remove bdk_persist crate #1454 and Remove persist submodule #1473
    • Removed db from Wallet, users are now responsible for persisting changes, see docs and examples.
    • Removed the bdk_persist crate.
    • Remove persist submodule from bdk_chain.
    • Change Wallet to outsource it's persistence logic by introducing Wallet::take_staged.
    • Add take convenience method to Append trait.

Checklist

Release numbering must follow Semantic Versioning. These steps assume the current master branch development version is 1.0.0-alpha.12.

On the day of the feature freeze

Change the master branch to the 1.0.0-alpha.13 version:

  • Switch to the master branch.
  • Create a new PR branch called release/bump_dev_1.0.0_alpha.13.
  • Create a "draft" release page and release notes comparing master commmit with prior tag v1.0.0-alpha.12
  • Bump the bump_dev_1.0.0_alpha.13 branch to the next development MINOR+1 version.
    • Bump the modified crates versions in their Cargo.toml files. [update this list with only changed crates]
      • bdk_chain
      • bdk_bitcoind_rpc
      • bdk_electrum
      • bdk_esplora
      • bdk_file_store
      • bdk_sqlite
      • bdk_testenv
      • bdk_wallet
      • bdk_hwi
    • The commit message should be: [update this list with only changed crates]
      Bump bdk version to 1.0.0-alpha.13
      
      bdk_chain to 0.16.0
      bdk_bitcoind_rpc to 0.12.0
      bdk_electrum to 0.15.0
      bdk_esplora to 0.15.0
      bdk_file_store to 0.13.0
      bdk_sqlite keep at 0.2.0
      bdk_testenv to 0.6.0
      bdk_hwi to 0.3.0
      
  • Create PR and merge the release/bump_dev_1.0.0-alpha.13 branch to master. Bump bdk version to 1.0.0-alpha.13 #1472
    • Title PR "Bump bdk version to 1.0.0-alpha.13".

On the day of the release

Tag and publish new release:

  • Add a tag to the HEAD commit in the master branch.
    • The tag name should be v1.0.0-alpha.13
    • The first line of the tag message should be "Release 1.0.0-alpha.13".
    • 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 --sign flag.
  • Wait for the CI to finish one last time.
  • Push the new tag to the bitcoindevkit/bdk repo.
  • Publish all the updated crates to crates.io. [update this list with only changed crates]
    • bdk_chain
    • bdk_testenv
    • bdk_bitcoind_rpc
    • bdk_electrum
    • bdk_esplora
    • bdk_file_store
    • bdk_sqlite
    • bdk_wallet
    • bdk_hwi
  • 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-alpha.13.
    • 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.0 release 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

releaseRelease related issue or PR

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions