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.0 #910

Closed
19 of 29 tasks
notmandatory opened this issue Mar 20, 2023 · 1 comment
Closed
19 of 29 tasks

Release 1.0.0-alpha.0 #910

notmandatory opened this issue Mar 20, 2023 · 1 comment
Assignees
Labels
release Release related issue or PR
Milestone

Comments

@notmandatory
Copy link
Member

notmandatory commented Mar 20, 2023

Create a new minor release

This is the checklist for making a bdk release. I'll have to adjust a bit since we're now using a workspace, but the idea is still to bump the version and publish all packages modified since the last release. In this case we don't have a last release so I'm bumping the minor versions on all crates/* packages since I don't know what commit their current versions correspond to. I've also removed specific versions from the example-crates and nursery since those don't get published and should always work with the latest dev versions of the packages in crates/.

Summary

The first "alpha" release of the new BDK 1.0 refactoring work. This is still a WIP and only meant to be used for testing and experimentation with downstream projects.

Also bumping below workspace crate versions:

bdk_chain to 0.4.0
bdk_electrum to 0.2.0
bdk_esplora to 0.2.0
bdk_file_store to 0.1.0

Commit

<--latest commit ID to include in this release-->

Changelog (I'm not updating the CHANGELOG file, just putting here for the record)

Checklist

Release numbering must follow Semantic Versioning. These steps assume the current master
branch development version is 1.0.0-alpha.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_1.0.0-alpha.0.
  • Bump all packages in the bump_dev_1.0.0-alpha.0 branch to the next development MINOR+1 version.
    • Change the Cargo.toml version value to MAJOR.MINOR+1.0.
    • Update the CHANGELOG.md file.
    • 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 and release candidate tag:

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

Skipping below steps because we don't need release candidates for our alpha.X releases.

  • 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.

Also skipping these steps since we won't be making bugfix releases for alpha.X releases.

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

Skip the first step since we didn't create an release candidates.

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/1.0.0-alpha branch.
    • The tag name should be v1.0.0-alpha.0
    • The first line of the tag message should be "Release v1.0.0-alpha.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.
  • Publish all the updated crates to crates.io.
    • bdk_chain
    • bdk_file_store
    • bdk_electrum
    • bdk_esplora
    • 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 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.
  • 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.
  • Celebrate 🎉
@notmandatory notmandatory added the release Release related issue or PR label Mar 20, 2023
@notmandatory notmandatory added this to the 1.0.0-alpha.0 milestone Mar 20, 2023
@notmandatory notmandatory self-assigned this Mar 20, 2023
@notmandatory
Copy link
Member Author

all crates published: https://github.com/bitcoindevkit/bdk/releases/tag/v1.0.0-alpha.0

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

1 participant