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.10 #1418

Closed
28 tasks done
notmandatory opened this issue May 1, 2024 · 1 comment
Closed
28 tasks done

Release 1.0.0-alpha.10 #1418

notmandatory opened this issue May 1, 2024 · 1 comment
Assignees
Labels
release Release related issue or PR
Milestone

Comments

@notmandatory
Copy link
Member

notmandatory commented May 1, 2024

Create a new minor release

Summary

This incremental bi-weekly release improves the address API, simplifies the Esplora API, and introduced new structures for spk-based scanning that will enable easier syncing with electrum/esplora. It also introduces a new bdk-persist crate, removes the generic T from the Wallet, and makes KeychainTxOutIndex more range based.

Commit

fbe1782

Changelog

Fixed

Changed

  • KeychainTxOutIndex methods modified to take ranges of keychains instead. [chain] Make KeychainTxOutIndex more range based #1324
  • Remove the generic from wallet fix(wallet): remove the generic from wallet #1387
    • Changed PersistenceBackend errors to depend on the anyhow crate
    • Remove the generic T from Wallet
  • Improve address API [wallet] Improve address API #1402
    • Added Wallet methods:
      • peek_address
      • reveal_next_address
      • next_unused_address
      • reveal_addresses_to
      • list_unused_addresses
      • mark_used
      • unmark_used
    • Removed Wallet methods:
      • get_address
      • get_internal_address
      • try_get_address
      • try_get_internal_address
  • Simplified EsploraExt API Simplified EsploraExt API #1380
    • Changed EsploraExt API so that sync only requires one round of fetching data. The local_chain_update method is removed and the local_tip parameter is added to the full_scan and sync methods.
    • Removed TxGraph::missing_heights and tx_graph::ChangeSet::missing_heights_from methods.
    • Introduced CheckPoint::insert which allows convenient checkpoint-insertion. This is intended for use by chain-sources when crafting an update.
    • Refactored merge_chains to also return the resultant CheckPoint tip.
    • Optimized the update LocalChain logic - use the update CheckPoint as the new CheckPoint tip when possible.
  • Introduce bdk-persist crate Add new crate bdk-persist #1412
  • Introduce universal sync/full-scan structures for spk-based syncing Introduce universal sync/full-scan structures for spk-based syncing #1413
    • Add universal structures for initiating/receiving sync/full-scan requests/results for spk-based syncing.
    • Updated bdk_esplora chain-source to make use of new universal sync/full-scan structures.

Checklist

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

On the day of the feature freeze

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

  • Switch to the master branch.
  • Create a new PR branch called bump_dev_1.0.0_alpha.10.
  • Bump the bump_dev_1.0.0_alpha.10 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
      • bdk_chain
      • bdk_bitcoind_rpc
      • bdk_electrum
      • bdk_esplora
      • bdk_file_store
      • bdk_testenv
      • bdk_persist
    • The commit message should be: [update this list with only changed crates]
      Bump bdk version to 1.0.0-alpha.10
      
      bdk_chain to 0.13.0
      bdk_bitcoind_rpc to 0.9.0
      bdk_electrum to 0.12.0
      bdk_esplora to 0.12.0
      bdk_file_store to 0.10.0
      bdk_testenv to 0.3.0
      bdk_persist to 0.2.0
      
  • Create PR and merge the bump_dev_1.0.0-alpha.10 branch to master.
    • Title PR "Bump bdk version to 1.0.0-alpha.10".

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.10
    • The first line of the tag message should be "Release 1.0.0-alpha.10".
    • 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
    • bdk_persist
  • 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.10.
    • 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 May 1, 2024
@notmandatory notmandatory added this to the 1.0.0-alpha milestone May 1, 2024
@notmandatory
Copy link
Member Author

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

No branches or pull requests

2 participants