Skip to content

Release 1.0.0-alpha.9ย #1399

@notmandatory

Description

@notmandatory

Create a new minor release

Summary

This regular bi-weekly alpha release updates dependencies rust-bitcoin to v0.31.0 and rust-miniscript to v11.0.0 and replaces the deprecated rust-miniscript function max_satisfaction_weight with max_weight_to_satisfy. It also adds chain module improvements needed to simplify syncing with electrum and esplora blockchain clients.

Commit

ee21ffe

Changelog

Fixed

Changed

  • Update dependencies: rust-bitcoin to v0.31.0 and rust-miniscript to v11.0.0. Upgrade bitcoin/miniscript dependenciesย #1177
  • Changed TxGraph to store transactions as Arc. This allows chain-sources to cheaply keep a copy of already-fetched transactions. Wrap transactions as Arc<Transaction> in TxGraphย #1373
  • Add get and range methods to CheckPoint feat(chain): add get and range methods to CheckPointย #1369
    • Added get and range methods to CheckPoint (and in turn, LocalChain). This simulates an API where we have implemented a skip list of checkpoints (to implement in the future). This is a better API because we can query for any height or height range with just a checkpoint tip instead of relying on a separate checkpoint index (which needs to live in LocalChain).
    • Changed LocalChain to have a faster Eq implementation. We now maintain an xor value of all checkpoint block hashes. We compare this xor value to determine whether two chains are equal.
    • Added PartialEq implementation for CheckPoint and local_chain::Update.
  • Methods into_tx_graph and into_confirmation_time_tx_graph for RelevantTxids are changed to no longer accept a seen_at parameter. Fix last seen unconfirmedย #1385
    • Added method update_last_seen_unconfirmed for TxGraph.
  • Added proptest for CheckPoint::range. Introduce proptesting, starting with CheckPoint::rangeย #1397

Checklist

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

On the day of the feature freeze

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

  • Switch to the master branch.
  • Create a new PR branch called bump_dev_1.0.0_alpha.8.
  • Bump the bump_dev_1.0.0_alpha.9 branch to the next development MINOR+1 version.
    • Bump the modified crates versions in their Cargo.toml files.
      • bdk
      • bdk_bitcoind_rpc
      • bdk_electrum
      • bdk_esplora
      • bdk_file_store
      • bdk_testenv
    • The commit message should be:
      Bump bdk version to 1.0.0-alpha.9
      
      bdk_chain to 0.12.0
      bdk_bitcoind_rpc to 0.8.0
      bdk_electrum to 0.11.0
      bdk_esplora to 0.11.0
      bdk_file_store to 0.9.0
      bdk_testenv to 0.2.0
      
  • Create PR and merge the bump_dev_1.0.0-alpha.9 branch to master. Bump bdk version to 1.0.0-alpha.9ย #1404
    • Title PR "Bump bdk version to 1.0.0-alpha.9".

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.9
    • The first line of the tag message should be "Release 1.0.0-alpha.9".
    • 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.
    • bdk_chain
    • bdk_testenv
    • bdk_bitcoind_rpc
    • bdk_electrum
    • bdk_esplora
    • bdk_file_store
    • bdk
  • 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.9.
    • 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