Skip to content

Commit ca46b02

Browse files
committed
Clarify prereq merge, prereq backport, go version bump steps
1 parent 26cea5d commit ca46b02

File tree

1 file changed

+21
-4
lines changed
  • keps/sig-release/3744-stay-on-supported-go-versions

1 file changed

+21
-4
lines changed

keps/sig-release/3744-stay-on-supported-go-versions/README.md

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ it seemed like a good time to capture requirements and a process for updating Ku
148148

149149
## Proposal
150150

151+
**1. Track prereq changes for each new minor go version**
152+
151153
Track changes made to the default Kubernetes development branch that were required to adopt a new go minor version (go 1.N).
152154
This typically includes changes like:
153155

@@ -159,13 +161,28 @@ This typically includes changes like:
159161
* updates to Kubernetes code to work with both go 1.N and 1.(N‑1)
160162
(e.g. [commit c31cc5ec](https://github.com/kubernetes/kubernetes/commit/c31cc5ec46315a02343ec6d6a2ef659e2cc8668e))
161163

164+
Prioritize making the prereq changes as minimal and low-risk as possible.
162165
Merge those changes to the default Kubernetes development branch *prior* to updating to go 1.N.
163166
This ensures those changes build and pass tests with both go 1.N and 1.(N‑1).
164-
Here is an [example of tracking and pre-merging changes for adopting go 1.20](https://github.com/kubernetes/release/issues/2815#issuecomment-1373891562).
167+
Here is an [example of tracking prereq changes for go1.20](https://github.com/kubernetes/release/issues/2815#issuecomment-1373891562).
168+
169+
**2. Backport prereq changes to release branches**
170+
171+
Backport prereq changes for go 1.N to release branches, keeping in mind the guidance to
172+
[avoid introducing risk to release branches](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/cherry-picks.md#what-kind-of-prs-are-good-for-cherry-picks).
173+
174+
Considering the typical changes required to update go versions:
175+
176+
* Tooling and test changes carry minimal risk
177+
* Dependency updates should be evaluated for extent / risk; if needed, and if possible, work with dependency maintainers to obtain the required fix in a more scoped way
178+
* Updates to fix issues caught by improved vet or lint checks generally fix real problems and are reasonable to backport, or are very small / isolated and carry minimal risk
179+
* Updates to make code work with both go 1.N and 1.(N‑1) should be evaluated for extent / risk; if needed, isolate the change in go-version-specific files.
180+
181+
Here is an [example of tracking backports of prereq changes for go 1.20](https://github.com/kubernetes/release/issues/2815#issuecomment-1373891562).
182+
183+
**3. Update release branches to new go minor versions**
165184

166-
Ensure all of those changes are backported to supported Kubernetes release branches,
167-
and update those release branches to build/release using go 1.N once all of these
168-
conditions are satisfied:
185+
Update release branches to build/release using go 1.N once all of these conditions are satisfied:
169186

170187
1. go 1.N has been released at least 3 months
171188
* this gives ~3 months for adoption of go 1.N by the go community

0 commit comments

Comments
 (0)