Skip to content

Release 0.11.0 #223

Closed
Closed
@thunderbiscuit

Description

@thunderbiscuit

Summary

This release updates BDK to 0.24 and has a number of breaking changes and new APIs. See changelog for all the details.

Commit

3f81346.

Changelog

  • Update BDK to latest version 0.24.0 Bump bdk version to 0.24.0 #221
  • APIs changed
    • The constructor on the DescriptorSecretKey type now takes a Mnemonic instead of a String.
  • APIs added
    • Added Mnemonic struct Added Mnemonic Interface #219 with following methods:
      • new(word_count: WordCount) generates and returns Mnemonic with random entropy
      • from_string(mnemonic: String) converts string Mnemonic to Mnemonic type with error
      • from_entropy(entropy: Vec<u8>) generates and returns Mnemonic with given entropy
      • as_string() view Mnemonic as string
  • APIs removed Added Mnemonic Interface #219
    • generate_mnemonic(word_count: WordCount)

Checklist

Release numbering must follow Semantic Versioning. These steps assume the current master
branch development version is 0.10.0.

On the day of the feature freeze

Change the master branch to the next MINOR+1 version:

  • Switch to the master branch.
  • Create a new PR branch called bump_dev_MAJOR_MINOR+1, eg. bump_dev_0_22.
  • Bump the bump_dev_MAJOR_MINOR+1 branch to the next development MINOR+1 version.
    • Change the Cargo.toml version value to MAJOR.MINOR+1.0.
    • The commit message should be "Bump version to MAJOR.MINOR+1.0".
  • Create PR and merge the bump_dev_MAJOR_MINOR+1 branch to master.
    • Title PR "Bump version to MAJOR.MINOR+1.0".

Create a new release branch:

  • Double check that your local master is up-to-date with the upstream repo.
  • Create a new branch called release/MAJOR.MINOR+1 from master.

Add a release candidate tag, this is optional and only needed for major bdk-ffi changes that
require a longer testing cycle:

  • Bump the release/MAJOR.MINOR+1 branch to MAJOR.MINOR+1.0-rc.1 version.
    • Change the Cargo.toml version value to MAJOR.MINOR+1.0-rc.1.
    • The commit message should be "Bump version to MAJOR.MINOR+1.0-rc.1".
  • Add a tag to the HEAD commit in the release/MAJOR.MINOR+1 branch.
    • The tag name should be vMAJOR.MINOR+1.0-rc.1
    • Use message "Release MAJOR.MINOR+1.0 rc.1".
    • Make sure the tag is signed, for extra safety use the explicit --sign flag.
  • Push the release/MAJOR.MINOR branch and new tag to the bitcoindevkit/bdk repo.
    • Use git push --tags option to push the new vMAJOR.MINOR+1.0-rc.1 tag.

If any issues need to be fixed before the MAJOR.MINOR+1.0 version is released:

  • Merge fix PRs to the master branch.
  • Git cherry-pick fix commits to the release/MAJOR.MINOR+1 branch.
  • Verify fixes in release/MAJOR.MINOR+1 branch.
  • Bump the release/MAJOR.MINOR+1 branch to MAJOR.MINOR+1.0-rc.x+1 version.
    • Change the Cargo.toml version value to MAJOR.MINOR+1.0-rc.x+1.
    • The commit message should be "Bump version to MAJOR.MINOR+1.0-rc.x+1".
  • Add a tag to the HEAD commit in the release/MAJOR.MINOR+1 branch.
    • The tag name should be vMAJOR.MINOR+1.0-rc.x+1, where x is the current release candidate number.
    • Use tag message "Release MAJOR.MINOR+1.0 rc.x+1".
    • Make sure the tag is signed, for extra safety use the explicit --sign flag.
  • Push the new tag to the bitcoindevkit/bdk repo.
    • Use git push --tags option to push the new vMAJOR.MINOR+1.0-rc.x+1 tag.

On the day of the release

Tag and publish new release:

  • Bump the release/MAJOR.MINOR+1 branch to MAJOR.MINOR+1.0 version.
    • Change the Cargo.toml version value to MAJOR.MINOR+1.0.
    • The commit message should be "Bump version to MAJOR.MINOR+1.0".
  • Add a tag to the HEAD commit in the release/MAJOR.MINOR+1 branch.
    • The tag name should be vMAJOR.MINOR+1.0
    • The first line of the tag message should be "Release MAJOR.MINOR+1.0".
    • 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.
  • Create the release on GitHub.
    • Go to "tags", click on the dots on the right and select "Create Release".
    • Set the title to Release MAJOR.MINOR+1.0.
    • 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.
  • After downstream language repos are also updated announce the release, using the Summary,
    on Discord, Twitter and Mastodon.
  • Celebrate 🎉

Metadata

Metadata

Labels

releaseRelease related issue or PR

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions