-
Notifications
You must be signed in to change notification settings - Fork 108
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
v1.0.0-rc.6 release #6314
v1.0.0-rc.6 release #6314
Conversation
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #6314 +/- ##
=======================================
Coverage 77.71% 77.71%
=======================================
Files 304 304
Lines 39583 39583
=======================================
+ Hits 30761 30763 +2
+ Misses 8822 8820 -2 |
@dconnolly do you think you can merge #6295 and add it to the release ? Right now the code is merged (#6274) but not the docs so i think it will be good to have both in the same release even if it is not a big deal. Thanks. |
Approved! Will update the changelog accordingly |
All these were removed form the changelog. there could be repeated ones, the auto changelog repeated a lot in this release. i think we might need to review what it is doing and we should have a document describing what titles we need to use to have a better changelog. To be fair there were tons of dependency upgrades that had to be removed. Trivial TODO: put this in a PR comment, not the CHANGELOG
To me this are trivial too, they were in other sections. Can have duplicates.
|
We've talked about doing this a few times in meetings, maybe it would help to open a ticket so we can schedule that work in a sprint?
I thought we had something like this, but I can't find it. Maybe it's in a google doc. We could move it from the google doc or write it again when we split out the release reference from the release checklist? Or we could add a note about naming the PR to the pull request template: |
Co-authored-by: teor <[email protected]>
Co-authored-by: Deirdre Connolly <[email protected]>
Co-authored-by: teor <[email protected]>
Co-authored-by: teor <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems like we're ready to go here, thanks for working on all these changes!
@Mergifyio update |
✅ Branch has been successfully updated |
I've un-frozen the PR and updated it to the latest (Mergify should merge it automatically in-place, but if it makes a merge PR and that gets blocked by merge freeze, we can merge this PR manually.) |
I'm doing the release now |
The release seems to work well:
|
The release is done! |
Versioning
How to Increment Versions
Zebra follows semantic versioning. Semantic versions look like: MAJOR
.
MINOR.
PATCH[-
TAG.
PRE-RELEASE]The draft
zebrad
changelog will have an automatic version bump. This version is based on the labels on the PRs in the release.Check that the automatic
zebrad
version increment is correct:If we're releasing a mainnet network upgrade, it is a
major
release:major
version of all the Zebra crates.patch
version of the tower crates.If we're not releasing a mainnet network upgrade, check for features, major changes, deprecations, and removals. If this release has any, it is a
minor
release:minor
version ofzebrad
.pre-release
version of the other crates.patch
version of the tower crates.Otherwise, it is a
patch
release:patch
version ofzebrad
.pre-release
version of the other crates.patch
version of the tower crates.Zebra's Rust API is not stable or supported, so we keep all the crates on the same beta
pre-release
version.Version Locations
Once you know which versions you want to increment, you can find them in the:
zebrad (rc):
Cargo.toml
zebra-network
protocol user agent: https://github.com/ZcashFoundation/zebra/blob/main/zebra-network/src/constants.rsREADME.md
book/src/user/docker.md
crates (beta):
Cargo.toml
stower (patch):
Cargo.toml
sauto-generated:
Cargo.lock
: runcargo build
after updating all theCargo.toml
sVersion Tooling
You can use
fastmod
to interactively find and replace versions.For example, you can do something like:
If you use
fastmod
, don't update versions inCHANGELOG.md
orzebra-dependencies-for-audit.md
.README
Update the README to:
Check for changes in the
Dockerfile
since the last tag:git diff <previous-release-tag> docker/Dockerfile
.Cargo.toml
sYou can use a command like:
Checkpoints
With every release and for performance reasons, we want to update the Zebra checkpoints. More information on how to do this can be found in the zebra-checkpoints README.
To do this you will need a synchronized
zcashd
node. You can request help from other zebra team members to submit this PR if you can't make it yourself at the moment of the release.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 use the Release Drafter workflow to automatically create a draft changelog. We follow the Keep a Changelog format.
To create the final change log:
CHANGELOG.md
(there can be multiple draft releases)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, the updated checkpoints and the updated changelog:
(for example:
bump-v1.0.0-rc.0
- this needs to be different to the tag name)&template=release-checklist.md
to the comparing url (Example).Do not unfreeze the whole repository.
main
branch using@mergifyio update
. Then Mergify should merge it in-place.If it makes a merge PR instead, that PR will get cancelled by the merge freeze. So just merge the changelog PR manually.
Create the Release
for example:
v1.0.0-rc.0
main
branchZebra
followed by the version tag,for example:
Zebra 1.0.0-rc.0
starting just after the title
## [Zebra ...
of the current version being released,and ending just before the title of the previous release.
Binary Testing
main
, and the quick tests have passed.(You can ignore the full sync and
lightwalletd
tests, because they take about a day to run.)docker run --tty --interactive zfnd/zebra:1.0.0-rc.<version>
Blog Post
If the release contains new features (
major
orminor
), or high-priority bug fixes:Release Failures
If building or running fails after tagging:
CHANGELOG.md
with details about the fix