-
Notifications
You must be signed in to change notification settings - Fork 310
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 v1.0.0 🎉 #4991
Comments
This reverts commit 64c32ef, which constitutes the squash-merge of PR #4980. We're backing this change out strictly to simplify release engineering: we want the `main` branch to remain fully compatible with the `0.81.x` series, and we'll continue QA of significant version changes in a parallel release branch, `release/v0.82.x`. I'll handle preparing the latter shortly. See related discussion in #4988 & #4991.
) ## Describe your changes This reverts commit 64c32ef, which constitutes the squash-merge of PR #4980. We're backing this change out strictly to simplify release engineering: we want the `main` branch to remain fully compatible with the `0.81.x` series, and we'll continue QA of significant version changes in a parallel release branch, `release/v0.82.x`. I'll handle preparing the latter shortly. ## Issue ticket number and link See related discussion in #4988 & #4991. ## Testing and review This is a programmatic change, in that I simply ran `git revert 64c32ef`, wrote some notes into the commit message, and pushed it up. I also made sure to rerun `just proto` to regenerate the protos, and confirmed there are no changes. That's good, that's precisely what we wanted to see. Preferably this change would land before #4992, since #4992 changes protos. I'll regenerate protos in 4992 on top of this once it lands on main. ## Checklist before requesting a review - [x] I have added guiding text to explain how a reviewer should test these changes. - [x] If this code contains consensus-breaking changes, I have added the "consensus-breaking" label. Otherwise, I declare my belief that there are not consensus-breaking changes, for the following reason: > This commit is expressly intended to preserve protocol compatibility with 0.81.x. Future work on QA to ensure compat with 0.82 will happen in a separate branch.
We've discussed internally, and decided to publish the workspace crates as |
The tag for |
@conorsch we just sorted everything out on cargo-dist's end, so you should be good to go. Thanks again for letting us know about it! 🙂 |
Thanks, @duckinator, for the extremely prompt support—and for a fantastic project in cargo-dist! After rerunning the workflow, we have a final release object for v1.0.0: https://github.com/penumbra-zone/penumbra/releases/tag/v1.0.0 |
Tooling Release
We plan to publish all of the workspace crates (#4988), to unblock external developers. As part of that work, we're updating several critical dependencies, and intend to bump crate versions to
0.82.x
to denote the changes. Despite the minor version bump, we must execute this change while maintaining full compatibility with the existing protocol, so that nodes can upgrade seamlessly.Changes to include
0.81.x
release seriesWorkflow implications
The currently active version of Penumbra protocol is
9
, with crate version0.81.0
: https://github.com/penumbra-zone/penumbra/blob/v0.81.0/COMPATIBILITY.md The most recent tagged release was v0.81.0, although we intend to continue to update this release series (#4988). In order to maintain velocity on0.81.x
while preparing changes for0.82.x
in parallel, I propose the following:pindexer
0.81.1
as described in Release v0.81.1, via point-release #4988release/v0.82.x
, based on the0.81.1
tag, and resubmit Release v0.81.1, via point-release #4988 & feat: publish workspace crates #4986 into it.The proposal above essential re-implements the steps initially taken by @erwanor (and @SuperFluffy) in #4973 & #4975. However, given the breakage we discovered post-merge, it's valuable to recreate the
release/v0.82.x
branch based on the refactored changesets in those PRs.The
release/v0.82.x
branch will quickly get out of sync with themain
as changes are made towards the0.81.x
series. Once we start creating tags on therelease/v0.82.x
, we cannot rebase it, without breaking those tags. Therefore we'll need to cherry-pick frequently if we want to make changes across both release series. We'll try to minimize the amount of time we're maintaining both branches.Post-QA, when the team deems the 0.82.x changes ready, we can prepare a changeset to reconcile with main, as we did with #4969.
Compatibility
Although this is a minor-release, all changes must be fully compatible for all nodes and clients. Therefore we must perform careful assurance work to ensure there are no breaking changes:
alpha
tags to crate.io, so that external developers can evaluate depending on thembeta
tag for use in upgrading PL testnetbeta
tag, performing serial upgrades, so that we can observe nodes on both0.81.x
and0.82.x
versions interacting, to confirm that consensus is maintainedOngoing work will continue to target main.
The text was updated successfully, but these errors were encountered: