Skip to content

Commit 0acdd0e

Browse files
committed
generator: fix KEP list generation for Annual Reports
Signed-off-by: Nabarun Pal <[email protected]>
1 parent 11eebf6 commit 0acdd0e

File tree

2 files changed

+61
-17
lines changed

2 files changed

+61
-17
lines changed

generator/annual-report/sig_report.tmpl

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,37 @@
1414
-
1515
-
1616

17-
{{$releases := getReleases}}
18-
{{$owingsig := .Dir}}
17+
{{$releases := getReleases -}}
18+
{{$owningSIG := .Dir -}}
19+
{{$stagedKeps := filterKEPs $owningSIG $releases -}}
20+
{{$alphaKeps := index $stagedKeps "alpha" -}}
21+
{{$betaKeps := index $stagedKeps "beta" -}}
22+
{{$stableKeps := index $stagedKeps "stable" -}}
23+
<!--
24+
Note: This list is generated from the KEP metadata in kubernetes/enhancements repository.
25+
If you find any discrepancy in the generated list here, please check the KEP metadata.
26+
Please raise an issue in kubernetes/community, if the KEP metadata is correct but the generated list is incorrect.
27+
-->
28+
1929
3. KEP work in {{lastYear}} ({{$releases.LatestMinusTwo}}, {{$releases.LatestMinusOne}}, {{$releases.Latest}}):
20-
{{- range $stage, $keps := filterKEPs $owingsig $releases}}
21-
- {{ $stage }}:
22-
{{- range $keps}}
23-
- [{{.Number}} - {{.Title}}](https://github.com/kubernetes/enhancements/tree/master/keps/{{.OwningSIG}}/{{.Name}}) - {{.LatestMilestone -}}
30+
{{if ne (len $alphaKeps) 0}}
31+
- Alpha
32+
{{- range $alphaKeps}}
33+
- [{{.Number}} - {{.Title}}](https://github.com/kubernetes/enhancements/tree/master/keps/{{.OwningSIG}}/{{.Name}}) - {{.Milestone.Alpha -}}
2434
{{ end}}
25-
{{- end}}
35+
{{ end}}
36+
{{if ne (len $betaKeps) 0}}
37+
- Beta
38+
{{- range $betaKeps}}
39+
- [{{.Number}} - {{.Title}}](https://github.com/kubernetes/enhancements/tree/master/keps/{{.OwningSIG}}/{{.Name}}) - {{.Milestone.Beta -}}
40+
{{ end}}
41+
{{ end}}
42+
{{if ne (len $stableKeps) 0}}
43+
- Stable
44+
{{- range $stableKeps}}
45+
- [{{.Number}} - {{.Title}}](https://github.com/kubernetes/enhancements/tree/master/keps/{{.OwningSIG}}/{{.Name}}) - {{.Milestone.Stable -}}
46+
{{ end}}
47+
{{ end}}
2648

2749

2850
## Project health
@@ -73,7 +95,7 @@ Include any other ways you measure group membership
7395

7496
## [Subprojects](https://git.k8s.io/community/{{.Dir}}#subprojects)
7597
{{- define "subprojects" -}}
76-
{{- $owingsig := .Dir -}}
98+
{{- $owningSIG := .Dir -}}
7799
{{- if .New}}
78100

79101
**New in {{lastYear}}:**

generator/app.go

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -161,20 +161,42 @@ func fetchKEPs() error {
161161
return nil
162162
}
163163

164-
func filterKEPs(owningSig string, releases Releases) (map[api.Stage][]api.Proposal, error) {
165-
kepsByStage := make(map[api.Stage][]api.Proposal)
164+
func stageIfKEPsIsWorkedInReleases(kepMilestone api.Milestone, releases Releases) (api.Stage, bool) {
165+
if strings.HasSuffix(kepMilestone.Stable, releases.Latest) || strings.HasSuffix(kepMilestone.Stable, releases.LatestMinusOne) || strings.HasSuffix(kepMilestone.Stable, releases.LatestMinusTwo) {
166+
return api.StableStage, true
167+
}
168+
169+
if strings.HasSuffix(kepMilestone.Beta, releases.Latest) || strings.HasSuffix(kepMilestone.Beta, releases.LatestMinusOne) || strings.HasSuffix(kepMilestone.Beta, releases.LatestMinusTwo) {
170+
return api.BetaStage, true
171+
}
172+
173+
if strings.HasSuffix(kepMilestone.Alpha, releases.Latest) || strings.HasSuffix(kepMilestone.Alpha, releases.LatestMinusOne) || strings.HasSuffix(kepMilestone.Alpha, releases.LatestMinusTwo) {
174+
return api.AlphaStage, true
175+
}
176+
177+
return "", false
178+
}
179+
180+
func filterKEPs(owningSig string, releases Releases) (map[string][]api.Proposal, error) {
181+
// TODO(palnabarun): Hack to allow unprefixed version strings in KEPs.
182+
// Once all KEPs are updated to use the prefixed version strings, this can be removed.
183+
// See: https://github.com/kubernetes/community/issues/7213#issuecomment-1484964640
184+
unPrefixedReleases := Releases{
185+
Latest: strings.TrimPrefix(releases.Latest, "v"),
186+
LatestMinusOne: strings.TrimPrefix(releases.LatestMinusOne, "v"),
187+
LatestMinusTwo: strings.TrimPrefix(releases.LatestMinusTwo, "v"),
188+
}
189+
190+
kepsByStage := make(map[string][]api.Proposal)
166191
for _, kep := range cachedKEPs {
167192
if kep.OwningSIG == owningSig {
168-
for _, stage := range api.ValidStages {
169-
if kep.Stage == stage && (strings.HasSuffix(kep.LatestMilestone, releases.Latest) ||
170-
strings.HasSuffix(kep.LatestMilestone, releases.LatestMinusOne) ||
171-
strings.HasSuffix(kep.LatestMilestone, releases.LatestMinusTwo)) {
172-
kepsByStage[stage] = append(kepsByStage[stage], kep)
173-
}
193+
stage, ok := stageIfKEPsIsWorkedInReleases(kep.Milestone, unPrefixedReleases)
194+
if !ok {
195+
continue
174196
}
197+
kepsByStage[string(stage)] = append(kepsByStage[string(stage)], kep)
175198
}
176199
}
177-
178200
return kepsByStage, nil
179201
}
180202

0 commit comments

Comments
 (0)