Merge pull request #7227 from palnabarun/7213/fix-annual-report-generator

7213/fix annual report generator
This commit is contained in:
Kubernetes Prow Robot 2024-02-13 04:38:32 -08:00 committed by GitHub
commit 3043e02155
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 64 additions and 20 deletions

View File

@ -14,15 +14,37 @@
-
-
{{$releases := getReleases}}
{{$owingsig := .Dir}}
{{$releases := getReleases -}}
{{$owningSIG := .Dir -}}
{{$stagedKeps := filterKEPs $owningSIG $releases -}}
{{$alphaKeps := index $stagedKeps "alpha" -}}
{{$betaKeps := index $stagedKeps "beta" -}}
{{$stableKeps := index $stagedKeps "stable" -}}
<!--
Note: This list is generated from the KEP metadata in kubernetes/enhancements repository.
If you find any discrepancy in the generated list here, please check the KEP metadata.
Please raise an issue in kubernetes/community, if the KEP metadata is correct but the generated list is incorrect.
-->
3. KEP work in {{lastYear}} ({{$releases.LatestMinusTwo}}, {{$releases.LatestMinusOne}}, {{$releases.Latest}}):
{{- range $stage, $keps := filterKEPs $owingsig $releases}}
- {{ $stage }}:
{{- range $keps}}
- [{{.Number}} - {{.Title}}](https://github.com/kubernetes/enhancements/tree/master/keps/{{.OwningSIG}}/{{.Name}}) - {{.LatestMilestone -}}
{{if ne (len $alphaKeps) 0}}
- Alpha
{{- range $alphaKeps}}
- [{{.Number}} - {{.Title}}](https://github.com/kubernetes/enhancements/tree/master/keps/{{.OwningSIG}}/{{.Name}}) - {{.Milestone.Alpha -}}
{{ end}}
{{- end}}
{{ end}}
{{if ne (len $betaKeps) 0}}
- Beta
{{- range $betaKeps}}
- [{{.Number}} - {{.Title}}](https://github.com/kubernetes/enhancements/tree/master/keps/{{.OwningSIG}}/{{.Name}}) - {{.Milestone.Beta -}}
{{ end}}
{{ end}}
{{if ne (len $stableKeps) 0}}
- Stable
{{- range $stableKeps}}
- [{{.Number}} - {{.Title}}](https://github.com/kubernetes/enhancements/tree/master/keps/{{.OwningSIG}}/{{.Name}}) - {{.Milestone.Stable -}}
{{ end}}
{{ end}}
## Project health
@ -73,7 +95,7 @@ Include any other ways you measure group membership
## [Subprojects](https://git.k8s.io/community/{{.Dir}}#subprojects)
{{- define "subprojects" -}}
{{- $owingsig := .Dir -}}
{{- $owningSIG := .Dir -}}
{{- if .New}}
**New in {{lastYear}}:**

View File

@ -161,20 +161,42 @@ func fetchKEPs() error {
return nil
}
func filterKEPs(owningSig string, releases Releases) (map[api.Stage][]api.Proposal, error) {
kepsByStage := make(map[api.Stage][]api.Proposal)
for _, kep := range cachedKEPs {
if kep.OwningSIG == owningSig {
for _, stage := range api.ValidStages {
if kep.Stage == stage && (strings.HasSuffix(kep.LatestMilestone, releases.Latest) ||
strings.HasSuffix(kep.LatestMilestone, releases.LatestMinusOne) ||
strings.HasSuffix(kep.LatestMilestone, releases.LatestMinusTwo)) {
kepsByStage[stage] = append(kepsByStage[stage], kep)
}
}
}
func stageIfKEPsIsWorkedInReleases(kepMilestone api.Milestone, releases Releases) (api.Stage, bool) {
if strings.HasSuffix(kepMilestone.Stable, releases.Latest) || strings.HasSuffix(kepMilestone.Stable, releases.LatestMinusOne) || strings.HasSuffix(kepMilestone.Stable, releases.LatestMinusTwo) {
return api.StableStage, true
}
if strings.HasSuffix(kepMilestone.Beta, releases.Latest) || strings.HasSuffix(kepMilestone.Beta, releases.LatestMinusOne) || strings.HasSuffix(kepMilestone.Beta, releases.LatestMinusTwo) {
return api.BetaStage, true
}
if strings.HasSuffix(kepMilestone.Alpha, releases.Latest) || strings.HasSuffix(kepMilestone.Alpha, releases.LatestMinusOne) || strings.HasSuffix(kepMilestone.Alpha, releases.LatestMinusTwo) {
return api.AlphaStage, true
}
return "", false
}
func filterKEPs(owningSig string, releases Releases) (map[string][]api.Proposal, error) {
// TODO(palnabarun): Hack to allow unprefixed version strings in KEPs.
// Once all KEPs are updated to use the prefixed version strings, this can be removed.
// See: https://github.com/kubernetes/community/issues/7213#issuecomment-1484964640
unPrefixedReleases := Releases{
Latest: strings.TrimPrefix(releases.Latest, "v"),
LatestMinusOne: strings.TrimPrefix(releases.LatestMinusOne, "v"),
LatestMinusTwo: strings.TrimPrefix(releases.LatestMinusTwo, "v"),
}
kepsByStage := make(map[string][]api.Proposal)
for _, kep := range cachedKEPs {
if kep.OwningSIG == owningSig {
stage, ok := stageIfKEPsIsWorkedInReleases(kep.Milestone, unPrefixedReleases)
if !ok {
continue
}
kepsByStage[string(stage)] = append(kepsByStage[string(stage)], kep)
}
}
return kepsByStage, nil
}