Skip to content

Commit 0d52e7b

Browse files
committed
generator/app: add means for sorted and de-duped OWNERS_ALIASES
- Add LeadershipGroup#Owners() which returns a sorted and de-duped list of owners ([]Person) for this LeadershipGroup by combining Chairs and TechnicalLeads - The function is used in generator/aliases.tmpl - Update OWNERS_ALIASES with the new results
1 parent ba5dd2e commit 0d52e7b

File tree

3 files changed

+35
-16
lines changed

3 files changed

+35
-16
lines changed

OWNERS_ALIASES

+8-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ aliases:
22
sig-api-machinery-leads:
33
- deads2k
44
- fedebongio
5-
- deads2k
65
- lavalamp
76
sig-apps-leads:
87
- janetkuo
@@ -14,31 +13,29 @@ aliases:
1413
- dims
1514
- johnbelamaric
1615
sig-auth-leads:
17-
- enj
18-
- mikedanese
19-
- tallclair
2016
- deads2k
17+
- enj
2118
- liggitt
2219
- mikedanese
20+
- tallclair
2321
sig-autoscaling-leads:
2422
- mwielgus
2523
sig-cli-leads:
26-
- seans3
27-
- soltysh
2824
- pwittrock
25+
- seans3
2926
- soltysh
3027
sig-cloud-provider-leads:
3128
- andrewsykim
3229
- cheftako
3330
sig-cluster-lifecycle-leads:
31+
- fabriziopandini
3432
- justinsb
3533
- neolit123
3634
- timothysc
37-
- fabriziopandini
3835
sig-contributor-experience-leads:
3936
- Phillels
40-
- mrbobbytables
4137
- cblecker
38+
- mrbobbytables
4239
- nikhita
4340
sig-docs-leads:
4441
- Bradamant3
@@ -94,9 +91,9 @@ aliases:
9491
- vllry
9592
sig-windows-leads:
9693
- PatrickLang
97-
- michmike
9894
- benmoss
9995
- ddebroy
96+
- michmike
10097
wg-apply-leads:
10198
- lavalamp
10299
wg-component-standard-leads:
@@ -146,8 +143,10 @@ aliases:
146143
- foxish
147144
- liyinan926
148145
ug-vmware-users-leads:
146+
- brysonshepherd
149147
- cantbewong
150148
- mylesagray
149+
- phenixblue
151150
committee-code-of-conduct:
152151
- AevaOnline
153152
- Bradamant3

generator/aliases.tmpl

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,25 @@
11
aliases:
22
{{- range .Sigs}}
33
{{.Dir}}-leads:
4-
{{- range .Leadership.Chairs}}
5-
- {{.GitHub}}
6-
{{- end}}
7-
{{- range .Leadership.TechnicalLeads}}
4+
{{- range .Leadership.Owners}}
85
- {{.GitHub}}
96
{{- end}}
107
{{- end}}
118
{{- range .WorkingGroups}}
129
{{.Dir}}-leads:
13-
{{- range .Leadership.Chairs}}
10+
{{- range .Leadership.Owners}}
1411
- {{.GitHub}}
1512
{{- end}}
1613
{{- end}}
1714
{{- range .UserGroups}}
1815
{{.Dir}}-leads:
19-
{{- range .Leadership.Chairs}}
16+
{{- range .Leadership.Owners}}
2017
- {{.GitHub}}
2118
{{- end}}
2219
{{- end}}
2320
{{- range .Committees}}
2421
{{.Dir}}:
25-
{{- range .Leadership.Chairs}}
22+
{{- range .Leadership.Owners}}
2623
- {{.GitHub}}
2724
{{- end}}
2825
{{- end}}

generator/app.go

+23
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,29 @@ func (g *LeadershipGroup) PrefixToPersonMap() map[string][]Person {
122122
}
123123
}
124124

125+
// Owners returns a sorted and de-duped list of owners for a LeadershipGroup
126+
func (g *LeadershipGroup) Owners() []Person {
127+
o := append(g.Chairs, g.TechnicalLeads...)
128+
129+
// Sort
130+
sort.Slice(o, func(i, j int) bool {
131+
return o[i].GitHub < o[j].GitHub
132+
})
133+
134+
// De-dupe
135+
seen := make(map[string]struct{}, len(o))
136+
i := 0
137+
for _, p := range o {
138+
if _, ok := seen[p.GitHub]; ok {
139+
continue
140+
}
141+
seen[p.GitHub] = struct{}{}
142+
o[i] = p
143+
i++
144+
}
145+
return o[:i]
146+
}
147+
125148
// Group represents either a Special Interest Group (SIG) or a Working Group (WG)
126149
type Group struct {
127150
Dir string

0 commit comments

Comments
 (0)