Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 1.0.0-alpha.13 #1471

Closed
30 of 31 tasks
notmandatory opened this issue Jun 13, 2024 · 0 comments · Fixed by #1472
Closed
30 of 31 tasks

Release 1.0.0-alpha.13 #1471

notmandatory opened this issue Jun 13, 2024 · 0 comments · Fixed by #1472
Assignees
Labels
release Release related issue or PR
Milestone

Comments

@notmandatory
Copy link
Member

notmandatory commented Jun 13, 2024

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 🎉
@notmandatory notmandatory added the release Release related issue or PR label Jun 13, 2024
@notmandatory notmandatory added this to the 1.0.0-alpha milestone Jun 13, 2024
@notmandatory notmandatory self-assigned this Jun 13, 2024
@notmandatory notmandatory added this to BDK Jun 13, 2024
@notmandatory notmandatory moved this to In Progress in BDK Jun 13, 2024
@notmandatory notmandatory moved this from In Progress to Needs Review in BDK Jun 14, 2024
@notmandatory notmandatory moved this from Needs Review to In Progress in BDK Jun 14, 2024
@notmandatory notmandatory moved this from In Progress to Needs Review in BDK Jun 15, 2024
@github-project-automation github-project-automation bot moved this from Needs Review to Done in BDK Jun 15, 2024
@notmandatory notmandatory moved this from Done to In Progress in BDK Jun 15, 2024
@notmandatory notmandatory moved this from In Progress to Done in BDK Jun 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Release related issue or PR
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

1 participant