-
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
v1.0.0-beta.14-release #5006
v1.0.0-beta.14-release #5006
Conversation
I bumped all crates, and I didn't omit any PRs. |
Note for reviewers: Teor updated the checkpoints two days ago, so it wasn't worth updating them again. |
Codecov Report
@@ Coverage Diff @@
## main #5006 +/- ##
==========================================
+ Coverage 79.04% 79.10% +0.05%
==========================================
Files 310 310
Lines 38883 38883
==========================================
+ Hits 30736 30758 +22
+ Misses 8147 8125 -22 |
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.
Thanks for this!
We probably want to highlight some breaking changes at the top of the release notes, let me know if you want help writing them.
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.
Co-authored-by: teor <[email protected]>
Co-authored-by: teor <[email protected]>
I tried to write the summary in a concise way, but I'm not sure about the phrasing. Please feel free to refactor it. |
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.
Thank you :)
Great job. Sorry about omitting those PRs, I don't know how I managed to delete them from the original list. |
I wouldn't worry about it too much, it's ok to leave out some minor PRs. We did some unofficial test releases to test continuous deployment, that might have made release drafter delete some things. |
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'm happy for anyone to approve once we've re-worded the breaking changes so they repeat the information that users need.
Co-authored-by: teor <[email protected]>
I committed the changes in 14fd552. Thanks for the rewording, I think it's much more user-friendly. |
I'm going to cheat and bump this to "critical" priority, so it starts merging in 2 minutes rather than 20. |
Versioning
Which Crates to Increment
To check if any of the top-level crates need version increments:
Alternatively you can:
main
branch against the last tag (Example)git diff --stat <previous-release-tag> origin/main
Once you know which crates have changed:
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
PRE-RELEASE
version for the crate.Unstable Crates
Unstable versions have a
MAJOR
version of zero. For example:0.1.0
MINOR
version for breaking changesStable Crates
For example:
1.0.0
Increment the first version component in this list, and reset the other components to zero:
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.
Version Locations
Once you know which versions you want to increment, you can find them in the:
Cargo.toml
sCargo.toml
szebra-network
protocol user agent: https://github.com/ZcashFoundation/zebra/blob/main/zebra-network/src/constants.rsREADME.md
book/src/user/install.md
Cargo.lock
: automatically generated bycargo build
Version 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
.README
We should update the README to:
Check for changes in the
Dockerfile
since the last tag:git diff <previous-release-tag> docker/Dockerfile
.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 follow the Keep a Changelog format.
We use the Release Drafter workflow to automatically create a draft changelog.
To create the final change log:
CHANGELOG.md
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:
(name suggestion, example:
v1.0.0-alpha.0-release
)&template=release-checklist.md
to thecomparing url (Example).
Do not unfreeze the whole repository.
Create the Release
create a new release using the draft release as a base,
by clicking the Edit icon in the draft release
for example:
v1.0.0-alpha.0
main
branchZebra
followed by the version tag,for example:
Zebra 1.0.0-alpha.0
(starting just after the title
## [Zebra ...
)Final Testing
cargo install
command inREADME.md
works(
--git
behaves a bit differently to--path
)If the build fails after tagging:
README.md
with a new git tagCHANGELOG.md
with details about the fix