-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Add a two-week delay to Wasmtime's release process #3955
Add a two-week delay to Wasmtime's release process #3955
Conversation
This commit is a proposal to update Wasmtime's release process with a two-week delay from branching a release until it's actually officially released. We've had two issues lately that came up which led to this proposal: * In bytecodealliance#3915 it was realized that changes just before the 0.35.0 release weren't enough for an embedding use case, but the PR didn't meet the expectations for a full patch release. * At Fastly we were about to start rolling out a new version of Wasmtime when over the weekend the fuzz bug bytecodealliance#3951 was found. This led to the desire internally to have a "must have been fuzzed for this long" period of time for Wasmtime changes which we felt were better reflected in the release process itself rather than something about Fastly's own integration with Wasmtime. This commit updates the automation for releases to unconditionally create a `release-X.Y.Z` branch on the 5th of every month. The actual release from this branch is then performed on the 20th of every month, roughly two weeks later. This should provide a period of time to ensure that all changes in a release are fuzzed for at least two weeks and avoid any further surprises. This should also help with any last-minute changes made just before a release if they need tweaking since backporting to a not-yet-released branch is much easier. Overall there are some new properties about Wasmtime with this proposal as well: * The `main` branch will always have a section in `RELEASES.md` which is listed as "Unreleased" for us to fill out. * The `main` branch will always be a version ahead of the latest release. For example it will be bump pre-emptively as part of the release process on the 5th where if `release-2.0.0` was created then the `main` branch will have 3.0.0 Wasmtime. * Dates for major versions are automatically updated in the `RELEASES.md` notes. The associated documentation for our release process is updated and the various scripts should all be updated now as well with this commit.
Some examples of PRs:
Note that I've included a major version bump to 0.36.0 in this PR since that's the next version of Wasmtime, and that'll be necessary to bootstrap this process. That's because |
Subscribe to Label Action
This issue or pull request has been labeled: "cranelift", "cranelift:meta", "cranelift:module", "cranelift:wasm", "isle", "wasmtime:docs"
Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
I added some more notes here on performing a security release, specifically indicating that we should open a version-bump PR ahead-of-time as we announce the intent to make patch releases. This gives us some extra runway to fix any issues with CI that arise, for example the backports included in #3984. |
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.
Looks good overall; the advanced sed magic feels a little brittle but given that we will review all the PRs manually before merging, let's see how it works I guess (props for automating even the little nits like editing the date on main
though!).
locally maintain and develop patches for any older releases being backported | ||
to. Note that from the major release process there should already be a | ||
branch for all older releases. | ||
2. **Send a PR for the version bump when an email goes out announcing there will |
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.
for maximum clarity it might be good to say here that the PR should not include the security patch at this point (that comes below)
This commit is a proposal to update Wasmtime's release process with a
two-week delay from branching a release until it's actually officially
released. We've had two issues lately that came up which led to this proposal:
In fix(wasi): enable all
WasiFile
s to be pollable (#3913) #3915 it was realized that changes just before the 0.35.0 releaseweren't enough for an embedding use case, but the PR didn't meet the
expectations for a full patch release.
At Fastly we were about to start rolling out a new version of Wasmtime
when over the weekend the fuzz bug Register allocation panic with simd comparison #3951 was found. This led to the
desire internally to have a "must have been fuzzed for this long"
period of time for Wasmtime changes which we felt were better
reflected in the release process itself rather than something about
Fastly's own integration with Wasmtime.
This commit updates the automation for releases to unconditionally
create a
release-X.Y.Z
branch on the 5th of every month. The actualrelease from this branch is then performed on the 20th of every month,
roughly two weeks later. This should provide a period of time to ensure
that all changes in a release are fuzzed for at least two weeks and
avoid any further surprises. This should also help with any last-minute
changes made just before a release if they need tweaking since
backporting to a not-yet-released branch is much easier.
Overall there are some new properties about Wasmtime with this proposal
as well:
main
branch will always have a section inRELEASES.md
which islisted as "Unreleased" for us to fill out.
main
branch will always be a version ahead of the latestrelease. For example it will be bump pre-emptively as part of the
release process on the 5th where if
release-2.0.0
was created thenthe
main
branch will have 3.0.0 Wasmtime.RELEASES.md
notes.The associated documentation for our release process is updated and the
various scripts should all be updated now as well with this commit.