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
RFC: Proposed changes to GA release process #15586
Comments
Thanks for this @deepthi, you perfectly summarise the "issue" and your proposal match what I was thinking.
it's the main issue IMO
exactly 👍 |
Just to be clear here, the exact same commit cannot be used as we have to push more commits during the release process of the GA. However, the release PR of GA will be based on a RC commit. |
This proposal sounds good to me, however I have concerns about the 2-weeks period before the RC-1 release. If we want to be able to do bug fixes, I think we might as well release an RC-1 early (at the beginning of the 2 weeks period) and leave enough time for everyone in the community to test the RC-1. Because unless people are running their systems on Vitess' That would also allow us to not block development on |
Would we do this immediately after every bug fix, or should we accumulate bug fixes for some time before doing the next RC? |
I agree with @systay. But, doing a RC takes some time and some planning, it will be time consuming for the release team to do a new RC after each bug fix or even every other day. I think we need some sort of cadance/schedule, just an example: one or two RC per week (if needed: when there are new bug fixes). That way the release team knows what to expect during the period between the first RC and the GA release, and a day before every scheduled RC they can evaluate if a new RC is really needed. |
I would suggest this process:
|
We should define the minimum time gap between the last RC and the GA release which might risk postponing the release but keep the GA release more stable |
@harshit-gangal I think given what @systay said, we would want to wait a full week before proceeding with the GA. I think it should be fine to have a flexible release dates, but that will mean more "work" to remember notifying different parties to cross-post our blog post. |
Agree with @frouioui. We coordinate the release blog post with two other parties (CNCF and PlanetScale), so we need to have a planned date for the release. It's also important to have that for the community to make plans around releases. |
I don't quite follow what this means for the suggested process. Are you saying we will do the release even if we find bugs? I think everyone agrees we want a planned release date, the question is how to handle situations where this is hard to achieve. How do we achieve both no known bad bugs, and hit the release date? |
We can't. The new description addresses this question, and it's consistent with your suggestion. |
For me it SHOULD be the same as the latest RC |
Thank you. That is what I was trying to convey, so I've edited that line to make it clearer. The only reason I initially said "essentially" is because we do a release commit changing the displayed version name from something like |
It is unclear to me if the feature freeze applies to both branches ( |
Added text to make it clearer. |
Summary
We currently have a process where we publish one or more release candidates before doing a GA release. We do a code freeze before cutting the release branch, and again before doing the GA release.
We have had a couple of GA releases where we had to do patch releases almost immediately because of critical bugs that broke one of more pieces of major functionality. The most recent example of this is #15419. At that time, @L3o-pold pointed out that the GA release was not identical to a previous release candidate.
This is an artifact of the current release process. We publish an RC1, and then continue to merge bug fixes on to the release branch whether or not they are reported specifically with the RC1. Unless RC1 is significantly broken, we don't typically do an RC2, we go straight to GA. What goes into the GA is just the latest state of the release branch, it is not expected to be identical to a previously published release candidate.
Shortcomings
Proposal
Let's assume we have planned a GA release for date T.
Exceptions:
If there is a critical bug report after RC2, we MAY need to push the GA release out by 1 week and do an RC3 instead.
Notes:
References
Current release process
Release schedule, bug fix releases, support lifecycle etc.
EDIT Apr 17, 2023: Incorporate feedback from comments.
EDIT2 Apr 18, 2023: Clarified GA Release relationship to RC.
The text was updated successfully, but these errors were encountered: