Simplify the release process by removing Code Thaw #1794
Replies: 9 comments 1 reply
-
@liggitt, would this make things easier when looking back to previous discussions of fast-forwards vs cherry-picks on the release branch? |
Beta Was this translation helpful? Give feedback.
-
I’m not sure that I like this approach at all. While it simplifies the workflow, I think it increases the risk by a large margin. I had to skip the retro, so I’m missing some context, but let’s try to get it documented here at least. Right now, cherry-picks have to be created manually. This is error-prone, because someone might forgot the cherry-pick. This is fixed in a way that a Release Manager or a Release Team Lead compares the master and the release branch, and then cherry-picks what’s forgotten. This is easy, however, if we remove Thaw, we will have a huge influx of PRs that will make impossible to compare two branches and find what should be cherry-picked. The key problem here is that it requires a very good communication and we’re not that good with that. Every contributor must know that they must cherry-pick the PR otherwise it will not land in the release. Again, when you have a huge number of PRs getting merged, you can’t control this at all. IMO, I see two ways out of this:
|
Beta Was this translation helpful? Give feedback.
-
no, it makes it worse... in that scenario, we would not only have to manage individual cherry-picks for the 1.x.0 release (with all the risk of omitting fixes or picking them out of order and conflicting), but letting master race ahead as soon as release-1.x is created almost guarantees that any release-blocking fixes needed for 1.x.0 will get stuck in the master merge flood, and will hit conflicts there as well. |
Beta Was this translation helpful? Give feedback.
-
Is it required that release-blocking fixes must merge to master and then be cherry-picked to release-1.x? Could we instead merge them directly to release-1.x and cherry-pick them to master? |
Beta Was this translation helpful? Give feedback.
-
in my opinion, absolutely yes. we should never merge to a release branch before merging to master (unless the fix doesn't apply to master for some reason) |
Beta Was this translation helpful? Give feedback.
-
+1 to what @liggitt said. Otherwise, there’s a risk that something can get done on the release branch, but not on the master branch (e.g. due to an error when porting from the release to the master branch). Such situations can be very hard to catch when you have a lot of commits. |
Beta Was this translation helpful? Give feedback.
-
We already discussed that it would be technically possible to automate it in a periodic prow job. We just have to find a way to handle the credentials, like we do in GCB. |
Beta Was this translation helpful? Give feedback.
-
My current draft of the schedule for 1.24 does not include a change to code freeze vs 1.23. |
Beta Was this translation helpful? Give feedback.
-
Following-up on the topic and proposing an automatic fast-forward in kubernetes/release#2386 |
Beta Was this translation helpful? Give feedback.
-
Background
Right now we apply Code Freeze with the first beta on the
master
branch. From that point in time, only PRs within the milestone can be merged. On Test Freeze we create the release branch and cut the first release candidate (rc). Themaster
branch is still frozen until we create the final release, which is calledThaw
.More details about the release process can be found here:
https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze
Idea
Remove Thaw, and completely open the
master
branch on Test Freeze.Benefits
Before
After
Drawbacks
That's where I need your input, especially from @kubernetes/release-managers.
Beta Was this translation helpful? Give feedback.
All reactions