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.9 #1399

Closed
22 of 25 tasks
notmandatory opened this issue Apr 9, 2024 · 0 comments · Fixed by #1404
Closed
22 of 25 tasks

Release 1.0.0-alpha.9 #1399

notmandatory opened this issue Apr 9, 2024 · 0 comments · Fixed by #1404
Assignees
Labels
release Release related issue or PR
Milestone

Comments

@notmandatory
Copy link
Member

notmandatory commented Apr 9, 2024

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 🎉
@notmandatory notmandatory added the release Release related issue or PR label Apr 9, 2024
@notmandatory notmandatory added this to BDK Apr 9, 2024
@notmandatory notmandatory added this to the 1.0.0-alpha milestone Apr 9, 2024
@notmandatory notmandatory self-assigned this Apr 9, 2024
@notmandatory notmandatory moved this to Todo in BDK Apr 9, 2024
@notmandatory notmandatory moved this from Todo to In Progress in BDK Apr 12, 2024
@notmandatory notmandatory moved this from In Progress to Needs Review in BDK Apr 12, 2024
@github-project-automation github-project-automation bot moved this from Needs Review to Done in BDK Apr 15, 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