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: bump versions and create changelog entry for v1.0.0-beta.10 #4430

Merged
merged 7 commits into from
May 19, 2022

Conversation

oxarbitrage
Copy link
Contributor

@oxarbitrage oxarbitrage commented May 19, 2022


name: Release Checklist Template
about: Checklist of versioning to create a taggable commit for Zebra
title: ''
labels:
assignees: ''


Versioning

Which Crates to Increment

To check if any of the top-level crates need version increments, go to the zebra GitHub code page: https://github.com/ZcashFoundation/zebra and use the last modified dates of each crate. Alternatively you can use the github compare tool and check the main branch against the last tag (Example). git diff --stat <previous-release-tag> origin/main is also useful to see what's changed.

  • Increment the crates that have new commits since the last version update
  • Increment any crates that depend on crates that have changed
  • Keep a list of the crates that haven't been incremented, to include in the PR

How to Increment Versions

Zebra follows semantic versioning.

Semantic versions look like: MAJOR.MINOR.PATCH[-TAG.PRE-RELEASE]

Pre-Release Crates

Pre-Release versions have a TAG like "alpha" or "beta". For example: 1.0.0-alpha.0

  1. Increment the PRE-RELEASE version for the crate.

Unstable Crates

Unstable versions have a MAJOR version of zero. For example: 0.1.0

  1. Follow stable crate versioning, but increment the MINOR version for breaking changes

Stable Crates

For example: 1.0.0

Increment the first version component in this list, and reset the other components to zero:

  1. MAJOR versions for breaking public API changes and removals
    • check for types from dependencies that appear in the public API
  2. MINOR versions for new features
  3. PATCH versions for bug fixes
    • includes dependency updates that don't impact the public API

Version Locations

Once you know which versions you want to increment, you can find them in the:

Version Tooling

You can use fastmod to interactively find and replace versions.

For example, you can do something like:

fastmod --extensions rs,toml,md --fixed-strings '1.0.0-alpha.12' '1.0.0-alpha.13'
fastmod --extensions rs,toml,md --fixed-strings '0.2.9' '0.2.10' tower-batch
fastmod --extensions rs,toml,md --fixed-strings '0.2.8' '0.2.9' tower-fallback

Reviewing Version Bumps

Check for missed changes by going to:
https://github.com/ZcashFoundation/zebra/tree/<commit-hash>/
Where <commit-hash> is the hash of the last commit in the version bump PR.

If any Zebra or Tower crates have commit messages that are not a version bump, we have missed an update.

Also check for crates that depend on crates that have changed. They should get a version bump as well.

README

As we resolve various outstanding known issues and implement new functionality with each release, we should double check the README for any necessary updates.

We should check and update if necessary:

  • The "Known Issues" section

to ensure that any items that are resolved in the latest release are no longer listed in the README.

Change Log

Important: Any merge into main deletes any edits to the draft changelog. Once you are ready to tag a release, copy the draft changelog into CHANGELOG.md.

We follow the Keep a Changelog format.

We use the Release Drafter workflow to automatically create a draft changelog.

To create the final change log:

  • Copy the draft changelog into CHANGELOG.md
  • Delete any trivial changes. Keep the list of those, to include in the PR
  • Combine duplicate changes
  • Edit change descriptions so they are consistent, and make sense to non-developers
  • Check the category for each change
    • prefer the "Fix" category if you're not sure

Change Categories

From "Keep a Changelog":

  • Added for new features.
  • Changed for changes in existing functionality.
  • Deprecated for soon-to-be removed features.
  • Removed for now removed features.
  • Fixed for any bug fixes.
  • Security in case of vulnerabilities.

Create the Release

Create the Release PR

After you have the version increments and the updated changelog:

  • Push the version increments and the updated changelog into a branch
    (name suggestion, example: v1.0.0-alpha.0-release)
  • Create a release PR by adding &template=release-checklist.md to the
    comparing url (Example).
    - [ ] Add the list of deleted changelog entries as a comment to make reviewing easier.
    - [ ] Also add the list of not-bumped crates as a comment (can use the same comment as the previous one).
  • While the PR is being reviewed, turn on Merge Freeze to stop other PRs merging

Create the Release

  • Once the release PR has been approved and merged, create a new release
    using the draft release as a base, by clicking the Edit icon
    in the draft release.
  • Set the release title to Zebra followed by the version tag, for example:
    Zebra 1.0.0-alpha.0
  • Copy the final changelog of this release to the release description
    (starting just after the title ## [Zebra ...)
  • Set the tag name to the version tag, for example: v1.0.0-alpha.0
  • Set the release to target the main branch
  • Mark the release as 'pre-release' (until we are no longer alpha/beta)
  • Publish the release

Final Testing

  • After tagging the release, test that the exact cargo install command in
    README.md works (--git behaves a bit differently to --path)
  • Turn off Merge Freeze to start merging PRs again

If the build fails after tagging:

  1. fix the build
  2. increment versions again, following these instructions from the start
  3. update README.md with a new git tag
  4. update CHANGELOG.md with details about the fix
  5. tag a new release

@oxarbitrage oxarbitrage requested review from a team as code owners May 19, 2022 15:25
@oxarbitrage oxarbitrage requested review from conradoplg, upbqdn and teor2345 and removed request for a team May 19, 2022 15:25
@oxarbitrage
Copy link
Contributor Author

Creates bumped:

  • tower-batch
  • tower-fallback
  • zebra-chain
  • zebra-consensus
  • zebra-network
  • zebra-rpc
  • zebra-script
  • zebra-state
  • zebra-test
  • zebra-utils
  • zebrad
  • zebra-node-services - This one was not updated since the last release but it was bumped because zebrad depends on it.

Changelog entries:

All entries in the draft changelog are included in the pushed CHANGELOG.md of this pull request.

@codecov
Copy link

codecov bot commented May 19, 2022

Codecov Report

Merging #4430 (df46d5d) into main (5c62dd6) will decrease coverage by 0.11%.
The diff coverage is 76.99%.

@@            Coverage Diff             @@
##             main    #4430      +/-   ##
==========================================
- Coverage   78.80%   78.69%   -0.12%     
==========================================
  Files         296      304       +8     
  Lines       33822    37226    +3404     
==========================================
+ Hits        26655    29296    +2641     
- Misses       7167     7930     +763     

upbqdn
upbqdn previously approved these changes May 19, 2022
Copy link
Member

@upbqdn upbqdn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One nit, otherwise looks good.

CHANGELOG.md Outdated Show resolved Hide resolved
Co-authored-by: Marek <mail@marek.onl>
Copy link
Collaborator

@conradoplg conradoplg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One small thing to fix

CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
Copy link
Collaborator

@conradoplg conradoplg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Waiting for @dconnolly

Copy link
Contributor

@dconnolly dconnolly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉 L G T M 🎉

🦓 🦓 🦓 🦓 🦓

@conradoplg conradoplg changed the title Bump versions and create changelog entry for v1.0.0-beta.10 release: bump versions and create changelog entry for v1.0.0-beta.10 May 19, 2022
mergify bot added a commit that referenced this pull request May 19, 2022
@mergify mergify bot merged commit 8150a72 into main May 19, 2022
@mergify mergify bot deleted the v1.0.0-beta.10 branch May 19, 2022 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants