-
Notifications
You must be signed in to change notification settings - Fork 107
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-rc.9 #6821
Release 1.0.0-rc.9 #6821
Conversation
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #6821 +/- ##
==========================================
+ Coverage 77.67% 77.75% +0.07%
==========================================
Files 310 310
Lines 41418 41416 -2
==========================================
+ Hits 32173 32203 +30
+ Misses 9245 9213 -32 |
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as duplicate.
This comment was marked as duplicate.
Yeah I just re-ran |
Done in 2184089 |
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.
I think I was wrong about the rust-version
Co-authored-by: teor <[email protected]>
|
Original Release Drafter draft:
|
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.
I think we missed a few PRs from the last week, was the draft changelog out of date?
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.
This looks good.
Seems like we forgot this step? I just did it now. |
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 matches the changes in the release: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
README.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
For performance and security, we want to update the Zebra checkpoints in every release.
You can copy the latest checkpoints from CI by following the zebra-checkpoints README.
Missed Dependency Updates
Sometimes
dependabot
misses some dependency updates, or we accidentally turned them off.Here's how we make sure we got everything:
cargo update
on the latestmain
branch, and keep the outputcargo update
to that PR as a commentChange 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.Release support constants
Needed for the end of support feature. Please update the following constants in this file:
ESTIMATED_RELEASE_HEIGHT
(required) - Replace with the estimated height you estimate the release will be tagged.- Find where the Zcash blockchain tip is now by using a Zcash explorer or other tool.
- Consider there are aprox
1152
blocks per day (with the current Zcash75
seconds spacing).- So for example if you think the release will be tagged somewhere in the next 3 days you can add
1152 * 3
to the current tip height and use that value here.EOS_PANIC_AFTER
(optional) - Replace if you want the release to be valid for a different numbers of days into the future. The default here is 120 days.Create the Release
Create the Release PR
After you have the version increments, the updated checkpoints, any missed dependency updates,
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).batched
queue using Mergify.Critical
priority, so they go in theurgent
Mergify queue.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>
,and put the output in a comment on the PR
batched
queue using Mergify.Telling Zebra Users
#arborist
and#communications
Slack channelsIf 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