Skip to content

Commit ce04e02

Browse files
authored
Merge pull request #7454 from palnabarun/subproject-leads
governance: add Subproject Leads as a named role in the SIG governance
2 parents 4e77953 + 3af92e5 commit ce04e02

File tree

5 files changed

+49
-45
lines changed

5 files changed

+49
-45
lines changed

a

Whitespace-only changes.

committee-steering/governance/sig-governance.md

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -136,15 +136,40 @@ the acceptance of that SIG or Subproject.
136136
Additional information on the Tech Lead role can be found in
137137
[technical-lead.md]; within the [Chair & TL Contributor Documentation].
138138

139-
#### Subproject Owner
139+
#### Subproject Lead
140+
141+
**Note:** This is a generalized high-level description of the role, and the
142+
specifics of the subproject lead role's responsibilities and related
143+
processes *MUST* be defined for individual SIGs or subprojects. The process
144+
for becoming an Subproject Lead should be defined in the SIG charter of the
145+
SIG owning the subproject.
146+
147+
Subproject Leads are the technical authority for a subproject in the Kubernetes
148+
project. They *MUST* have demonstrated both good judgement and responsibility
149+
towards the health of that subproject.
140150

141151
- Number: 2+
142-
- Scoped to a subproject defined in [sigs.yaml]
143-
- Seed leads and contributors established at subproject founding
144-
- *SHOULD* be an escalation point for technical discussions and decisions in
145-
the subproject
152+
- Membership tracked in [sigs.yaml] via *subproject.leads* entry and scoped to a subproject
153+
- *MUST* set technical direction and make or approve design decisions for their subproject - either directly or through delegation
154+
- *MUST* mentor and guide approvers, reviewers, and contributors to the subproject.
155+
- *MUST* maintain components, review, shepherd and approve proposals for enhancing areas owned by the subproject
156+
- *MUST* actively participate in triaging issues and reviewing PRs
157+
- *SHOULD* be an escalation point for technical discussions and decisions in the subproject
146158
- *SHOULD* set milestone priorities or delegate this responsibility
147-
- Membership tracked in [sigs.yaml] via links to OWNERS files
159+
- *SHOULD* ensure a healthy process for discussion and decision making is in place.
160+
- *MAY* make decisions to resolve conflicts
161+
162+
#### Subproject Owner
163+
164+
- *Optional if and only if Subproject Leads are defined for the subproject*
165+
- Number: 2+
166+
- Membership tracked in [sigs.yaml] via links to OWNERS files
167+
- *If no Subproject Leads are defined for the subproject, the Subproject Owners will be responsible for the same duties.*
168+
- Scoped to a subproject defined in [sigs.yaml]
169+
- *MUST* actively participate in triaging issues and reviewing PRs
170+
- *SHOULD* mentor and guide contributors of the subproject
171+
- *SHOULD* help the subproject leads (if defined) in their responsibilities
172+
148173

149174
#### All Leads
150175

@@ -175,7 +200,7 @@ governance requirements, including defining more roles to sustain the group. If
175200
a SIG needs to change the Chair and Tech Lead position to include or remove
176201
duties, this needs to be approved by the Steering Committee. Newly created roles
177202
that don't assume any responsibility of Chair and/or Tech Lead should follow
178-
the governing processes in the SIGs charter.
203+
the governing processes in the SIGs charter.
179204

180205
Example of SIG roles created to help operations:
181206

community-membership.md

Lines changed: 7 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -183,50 +183,17 @@ in an [OWNERS] file (for repos using the bot).
183183
- Mentor contributors and reviewers
184184
- May approve code contributions for acceptance
185185

186-
## Subproject Owner
187-
188-
**Note:** This is a generalized high-level description of the role, and the
189-
specifics of the subproject owner role's responsibilities and related
190-
processes *MUST* be defined for individual SIGs or subprojects.
191-
192-
Subproject Owners are the technical authority for a subproject in the Kubernetes
193-
project. They *MUST* have demonstrated both good judgement and responsibility
194-
towards the health of that subproject. Subproject Owners *MUST* set technical
195-
direction and make or approve design decisions for their subproject - either
196-
directly or through delegation of these responsibilities.
186+
## Subproject Lead
197187

198188
**Defined by:** *owners* entry in subproject [OWNERS] files as defined by [sigs.yaml] *subproject.owners*
199189

200-
### Requirements
201-
202-
The process for becoming an subproject Owner should be defined in the SIG
203-
charter of the SIG owning the subproject. Unlike the roles outlined above, the
204-
Owners of a subproject are typically limited to a relatively small group of
205-
decision makers and updated as fits the needs of the subproject.
190+
The [SIG Governance][sig-governance-subproject-lead] mentions in details the responsibilities of a Subproject Lead.
206191

207-
The following apply to the subproject for which one would be an owner.
208-
209-
- Deep understanding of the technical goals and direction of the subproject
210-
- Deep understanding of the technical domain of the subproject
211-
- Sustained contributions to design and direction by doing all of:
212-
- Authoring and reviewing proposals
213-
- Initiating, contributing and resolving discussions (emails, GitHub issues, meetings)
214-
- Identifying subtle or complex issues in designs and implementation PRs
215-
- Directly contributed to the subproject through implementation and / or review
216-
217-
### Responsibilities and privileges
192+
## Subproject Owner
218193

219-
The following apply to the subproject for which one would be an owner.
194+
**Defined by:** *owners* entry in subproject [OWNERS] files as defined by [sigs.yaml] *subproject.owners*
220195

221-
- Make and approve technical design decisions for the subproject.
222-
- Set technical direction and priorities for the subproject.
223-
- Define milestones and releases.
224-
- Mentor and guide approvers, reviewers, and contributors to the subproject.
225-
- Ensure continued health of subproject
226-
- Adequate test coverage to confidently release
227-
- Tests are passing reliably (i.e. not flaky) and are fixed when they fail
228-
- Ensure a healthy process for discussion and decision making is in place.
229-
- Work with other subproject owners to maintain the project's overall health and success holistically
196+
The [SIG Governance][sig-governance-subproject-owner] mentions in details the responsibilities of a Subproject Owner.
230197

231198
## Inactive members
232199

@@ -281,3 +248,5 @@ before being able to contribute effectively.
281248
[elevated set of permissions]: #Responsibilities-and-privileges
282249
[Devstats project]: https://k8s.devstats.cncf.io/
283250
[continuously active]: #inactive-members
251+
[sig-governance-subproject-lead]: /committee-steering/sig-governance.md#subproject-lead
252+
[sig-governance-subproject-owner]: /committee-steering/sig-governance.md#subproject-owner

generator/app.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ type Subproject struct {
230230
Description string `yaml:",omitempty"`
231231
Contact *Contact `yaml:",omitempty"`
232232
Owners []string
233+
Leads []Person `yaml:",omitempty"`
233234
Meetings []Meeting `yaml:",omitempty"`
234235
}
235236

@@ -395,6 +396,9 @@ func (c *Context) Sort() {
395396
return subproject.Contact.GithubTeams[i].Name < subproject.Contact.GithubTeams[j].Name
396397
})
397398
}
399+
sort.Slice(subproject.Leads, func(i, j int) bool {
400+
return subproject.Leads[i].GitHub < subproject.Leads[j].GitHub
401+
})
398402
sort.Strings(subproject.Owners)
399403
sort.Slice(subproject.Meetings, func(i, j int) bool {
400404
return subproject.Meetings[i].Description < subproject.Meetings[j].Description

generator/sig_readme.tmpl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,12 @@ The following [subprojects][subproject-definition] are owned by sig-{{.Label}}:
8989
### {{.Name}}
9090
{{- if .Description }}
9191
{{ trimSpace .Description }}
92+
{{- end }}
93+
{{- if .Leads }}
94+
- **Leads:**{{ range .Leads }}
95+
- {{.Name}} (**[@{{.GitHub}}](https://github.com/{{.GitHub}})**){{if .Company}}, {{.Company}}{{end}}
96+
{{- end }}
97+
9298
{{- end }}
9399
- **Owners:**
94100
{{- range .Owners }}

0 commit comments

Comments
 (0)