Skip to content

Commit 8109345

Browse files
author
Phillip Wittrock
authored
Merge pull request #619 from pwittrock/governance
Refactor governance docs
2 parents 90b7e3d + dcd3a84 commit 8109345

File tree

5 files changed

+222
-268
lines changed

5 files changed

+222
-268
lines changed

community-membership.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Community membership
2+
3+
New community members:
4+
5+
- [**New Contributor**](https://github.com/kubernetes/contrib/issues/1090): a
6+
couple of PRs; should be welcomed to the community, helped with PR workflow, and
7+
directed to relevant documentation
8+
- **Active Contributor**: at least 3 merged and/or assigned PRs (which could include documentation
9+
contributions as well as code), including one in the past month; we have
10+
[expectations](contributors/devel/community-expectations.md)
11+
that frequent contributors will assist in our code-review process and with project
12+
maintenance
13+
14+
Established community members:
15+
16+
Established community members are expected to demonstrate their adherence to the principles in this
17+
document, familiarity with project organization, roles, policies, procedures, conventions, etc.,
18+
and technical and/or writing ability. Role-specific expectations, responsibilities, and requirements
19+
are enumerated below.
20+
21+
- **Member**: an active contributor for at least 3 months; at least 10 merged and/or assigned PRs; active enough to be useful
22+
to assign issues to them and add them to a github team (e.g., for a SIG) for notification
23+
purposes; trusted enough to run tests on their PRs automatically; can issue "@k8s-bot ok to test"
24+
for other contributors; if they choose public membership, they get a badge on their github profile;
25+
should subscribe to [email protected]; expected to be familiar with
26+
project organization, roles, policies, procedures, etc.; should read the [developer
27+
guide](contributors/devel/README.md); must enable
28+
[two-factor authentication](https://help.github.com/articles/about-two-factor-authentication/)
29+
- **Reviewer**: org member for at least 3 months; at least 20 merged and/or assigned PRs, including
30+
at least 3 as the primary reviewer; familiar enough with some part of the codebase to be in some
31+
[OWNERS](contributors/devel/owners.md) file as a reviewer (in repos using the bot),
32+
assigned related PRs, assigned relevant test bugs; responsible for project quality control via
33+
[code reviews](contributors/devel/collab.md); expected to be responsive to
34+
review requests as per [community expectations](contributors/devel/community-expectations.md);
35+
can champion incubator repos; must be nominated by an approver for that part of the codebase,
36+
with no objections from other approvers; should be added to
37+
[`kubernetes-reviewers`](https://github.com/orgs/kubernetes/teams/kubernetes-reviewers);
38+
"read access" to kubernetes repo; get a badge on PR and issue comments; may be asked to
39+
become a reviewer as a precondition for accepting a large code contribution
40+
- **Approver**: in some [OWNERS](contributors/devel/owners.md) file as an approver, which
41+
will be needed to get code merged; previously a reviewer for that part of the
42+
codebase for at least 3 months; at least 30 merged and/or assigned PRs, including at least 10 as
43+
the primary reviewer; expected to be responsive to review requests as per
44+
[community expectations](contributors/devel/community-expectations.md); expected to
45+
mentor contributors and reviewers; demonstrated sound technical judgement; nominated
46+
by an area/component owner, with no objections from other owners; may be asked to
47+
become an approver as a precondition for accepting a large code contribution
48+
- **Area/Component Owner**: in top-level [OWNERS](contributors/devel/owners.md) file for
49+
some area/component as an approver; design/proposal approval authority for some area
50+
of the project, though escalation is still possible; expected to mentor and guide approvers,
51+
reviewers, and other contributors; may be asked to become an area/component owner as a precondition
52+
for accepting the contribution of a new component or other major function
53+
- [**kubernetes-maintainers**](https://github.com/orgs/kubernetes/teams/kubernetes-maintainers):
54+
approver for some part of the codebase for at least 3 months; on project for at least 1 year;
55+
at least 50 merged and/or assigned PRs, including at least 20 as the primary reviewer;
56+
write access to repo (assign issues/PRs, add/remove labels and milestones, edit issues and PRs, edit wiki,
57+
create/delete labels and milestones); technically can lgtm any PR and cause it
58+
to be merged by the submit queue, but expected to respect OWNERS files; expected to review PRs, fix bugs, maintain and
59+
improve health and quality of the project, provide user support, mentor and guide approvers,
60+
reviewers, and other contributors; must apply to `[email protected]`, with a
61+
[Champion](https://github.com/kubernetes/community/blob/master/incubator.md#faq) from the existing
62+
kubernetes-maintainers members and a Sponsor from Project Approvers, with a summary
63+
of contributions to the project, current project responsibilities, and links to merged and assigned PRs;
64+
at least 3 of the maintainers must approve the application, with no objections; the application
65+
expires after 2 weeks if not enough approvals are granted
66+
- **Project Approvers**: approver in [top-level OWNERS file in kubernetes repo](https://github.com/kubernetes/kubernetes/blob/master/OWNERS);
67+
de-facto project decision makers; technically can
68+
approve virtually any PRs; can sponsor incubator repos; can sponsor maintainers;
69+
maintainer in good standing for at least 1 year; strong technical vision;
70+
committed to project's mission and culture; nomination/application process TBD
71+
- [**API Approver**](https://github.com/orgs/kubernetes/teams/api-approvers):
72+
lead designers of the project, who are familiar with the
73+
design, requirements, mechanics, conventions, style, scope, gotchas, etc.
74+
of the API; most beta/GA API changes are vetted by the API approvers
75+
- [**API Reviewer**](https://github.com/orgs/kubernetes/teams/api-reviewers):
76+
contributors familiar with design, requirements, mechanics, conventions, style,
77+
scope, gotchas, etc. of the API; have written and/or reviewed Kubernetes APIs

governance.md

Lines changed: 14 additions & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -19,177 +19,31 @@ We value our community tremendously and we'd like to keep cultivating a friendly
1919
environment for our contributors and users. We want everyone in the community to have
2020
[positive experiences](https://www.cncf.io/blog/2016/12/14/diversity-scholarship-series-one-software-engineers-unexpected-cloudnativecon-kubecon-experience).
2121

22+
# Community membership
23+
24+
See [community membership]
25+
26+
# SIG Governance
27+
28+
See [sig governance]
29+
2230
# Repository guidelines
2331

2432
All repositories under Kubernetes github orgs, such as kubernetes and kubernetes-incubator,
2533
should follow the procedures outlined in the [incubator document](incubator.md). All code projects
2634
use the [Apache Licence version 2.0](LICENSE). Documentation repositories should use the
2735
[Creative Commons License version 4.0](https://github.com/kubernetes/kubernetes.github.io/blob/master/LICENSE).
2836

29-
# Project Roles
30-
31-
Kubernetes is a large project. It is necessarily a group effort.
32-
33-
There are many ways to participate and contribute.
34-
We value all forms of constructive contribution, no matter how small, even if not
35-
explicitly described below.
36-
37-
It is intended that contributors have the opportunity to grow in responsibilities,
38-
privileges, and authority corresponding to the scope, quality, quantity, and duration
39-
of their contributions. Definition of criteria and process is in progress, with preliminary
40-
requirements below.
41-
42-
Why would someone want to perform and be accepted into a particular role?
43-
- To work more efficiently; more permissions reduce development friction
44-
- Status (have the Kubernetes badge on his/her profile and/or contributions)
45-
- Ownership
46-
- etc...
47-
48-
Roles that are currently assumed by project participants are described below,
49-
with a focus on the `kubernetes/kubernetes` repo.
50-
51-
## Code and documentation contributors
52-
53-
New community members:
54-
55-
- [**New Contributor**](https://github.com/kubernetes/contrib/issues/1090): a
56-
couple of PRs; should be welcomed to the community, helped with PR workflow, and
57-
directed to relevant documentation
58-
- **Active Contributor**: at least 3 merged and/or assigned PRs (which could include documentation
59-
contributions as well as code), including one in the past month; we have
60-
[expectations](contributors/devel/community-expectations.md)
61-
that frequent contributors will assist in our code-review process and with project
62-
maintenance
63-
64-
Established community members:
65-
66-
Established community members are expected to demonstrate their adherence to the principles in this
67-
document, familiarity with project organization, roles, policies, procedures, conventions, etc.,
68-
and technical and/or writing ability. Role-specific expectations, responsibilities, and requirements
69-
are enumerated below.
70-
71-
- **Member**: an active contributor for at least 3 months; at least 10 merged and/or assigned PRs; active enough to be useful
72-
to assign issues to them and add them to a github team (e.g., for a SIG) for notification
73-
purposes; trusted enough to run tests on their PRs automatically; can issue "@k8s-bot ok to test"
74-
for other contributors; if they choose public membership, they get a badge on their github profile;
75-
should subscribe to [email protected]; expected to be familiar with
76-
project organization, roles, policies, procedures, etc.; should read the [developer
77-
guide](contributors/devel/README.md); must enable
78-
[two-factor authentication](https://help.github.com/articles/about-two-factor-authentication/)
79-
- **Reviewer**: org member for at least 3 months; at least 20 merged and/or assigned PRs, including
80-
at least 3 as the primary reviewer; familiar enough with some part of the codebase to be in some
81-
[OWNERS](contributors/devel/owners.md) file as a reviewer (in repos using the bot),
82-
assigned related PRs, assigned relevant test bugs; responsible for project quality control via
83-
[code reviews](contributors/devel/collab.md); expected to be responsive to
84-
review requests as per [community expectations](contributors/devel/community-expectations.md);
85-
can champion incubator repos; must be nominated by an approver for that part of the codebase,
86-
with no objections from other approvers; should be added to
87-
[`kubernetes-reviewers`](https://github.com/orgs/kubernetes/teams/kubernetes-reviewers);
88-
"read access" to kubernetes repo; get a badge on PR and issue comments; may be asked to
89-
become a reviewer as a precondition for accepting a large code contribution
90-
- **Approver**: in some [OWNERS](contributors/devel/owners.md) file as an approver, which
91-
will be needed to get code merged; previously a reviewer for that part of the
92-
codebase for at least 3 months; at least 30 merged and/or assigned PRs, including at least 10 as
93-
the primary reviewer; expected to be responsive to review requests as per
94-
[community expectations](contributors/devel/community-expectations.md); expected to
95-
mentor contributors and reviewers; demonstrated sound technical judgement; nominated
96-
by an area/component owner, with no objections from other owners; may be asked to
97-
become an approver as a precondition for accepting a large code contribution
98-
- **Area/Component Owner**: in top-level [OWNERS](contributors/devel/owners.md) file for
99-
some area/component as an approver; design/proposal approval authority for some area
100-
of the project, though escalation is still possible; expected to mentor and guide approvers,
101-
reviewers, and other contributors; may be asked to become an area/component owner as a precondition
102-
for accepting the contribution of a new component or other major function
103-
- [**kubernetes-maintainers**](https://github.com/orgs/kubernetes/teams/kubernetes-maintainers):
104-
approver for some part of the codebase for at least 3 months; on project for at least 1 year;
105-
at least 50 merged and/or assigned PRs, including at least 20 as the primary reviewer;
106-
write access to repo (assign issues/PRs, add/remove labels and milestones, edit issues and PRs, edit wiki,
107-
create/delete labels and milestones); technically can lgtm any PR and cause it
108-
to be merged by the submit queue, but expected to respect OWNERS files; expected to review PRs, fix bugs, maintain and
109-
improve health and quality of the project, provide user support, mentor and guide approvers,
110-
reviewers, and other contributors; must apply to `[email protected]`, with a
111-
[Champion](https://github.com/kubernetes/community/blob/master/incubator.md#faq) from the existing
112-
kubernetes-maintainers members and a Sponsor from Project Approvers, with a summary
113-
of contributions to the project, current project responsibilities, and links to merged and assigned PRs;
114-
at least 3 of the maintainers must approve the application, with no objections; the application
115-
expires after 2 weeks if not enough approvals are granted
116-
- **Project Approvers**: approver in [top-level OWNERS file in kubernetes repo](https://github.com/kubernetes/kubernetes/blob/master/OWNERS);
117-
de-facto project decision makers; technically can
118-
approve virtually any PRs; can sponsor incubator repos; can sponsor maintainers;
119-
maintainer in good standing for at least 1 year; strong technical vision;
120-
committed to project's mission and culture; nomination/application process TBD
121-
- [**API Approver**](https://github.com/orgs/kubernetes/teams/api-approvers):
122-
lead designers of the project, who are familiar with the
123-
design, requirements, mechanics, conventions, style, scope, gotchas, etc.
124-
of the API; most beta/GA API changes are vetted by the API approvers
125-
- [**API Reviewer**](https://github.com/orgs/kubernetes/teams/api-reviewers):
126-
contributors familiar with design, requirements, mechanics, conventions, style,
127-
scope, gotchas, etc. of the API; have written and/or reviewed Kubernetes APIs
128-
129-
## SIG roles
130-
- **SIG Participant**: active in one or more areas of the project; wide
131-
variety of roles are represented
132-
- **SIG Lead**: SIG organizer
133-
134-
## Management roles
135-
- **Team Lead**: tech lead or manager of some team at some company working on
136-
K8s; can influence priorities of their team members; pragmatically,
137-
probably want label/assignment powers
138-
- [**kubernetes-pm**](https://github.com/orgs/kubernetes/teams/kubernetes-pm): help to [manage and maintain the project](project-managers/README.md) in
139-
ways other than just writing code (e.g. managing issues); should subscribe to [email protected]
140-
141-
## Rotations
142-
- [**Build Cop**](contributors/devel/on-call-build-cop.md): ensure tests pass, submit queue is working, rollback PRs,
143-
manually merge as necessary to fix build; should be members of appropriate repo's build-cops github team
144-
(e.g., [kubernetes-build-cops](https://github.com/orgs/kubernetes/teams/kubernetes-build-cops))
145-
- [**User-Support Rotation**](contributors/devel/on-call-user-support.md): answer questions on stackoverflow, googlegroups,
146-
slack, twitter, etc. full time while on duty
147-
148-
## Release roles
149-
- The roles of the individuals/team responsible for major, minor, and patch releases is documented
150-
[here](https://github.com/kubernetes/community/tree/master/contributors/devel/release). Should be
151-
members of the appropriate release-managers github team (e.g.,
152-
[kubernetes-release-managers](https://github.com/orgs/kubernetes/teams/kubernetes-release-managers)).
153-
154-
## Other duty-specific github roles:
155-
- [**Github Org Owner**](https://github.com/orgs/kubernetes/people?utf8=%E2%9C%93&query=%20role%3Aowner):
156-
can create repos, do ~any github action; the number of
157-
owners shouldn't scale with the organization's growth, O(1), and optimally it
158-
should be less than 20 people who are very familiar with project workings and
159-
distributed across a few time zones and organizations The other repos will
160-
have distinct sets of people filling some of the above roles, also.
161-
162-
## Other repositories
163-
164-
Guidelines for roles in other repositories are TBD. New subprojects/repositories need to be
165-
able to add reviewers, approvers, and maintainers more rapidly than more mature subprojects.
166-
Subprojects less than 1 year old will have relaxed time and PR requirements.
167-
168-
## Removal from roles
169-
170-
Most of the above roles require continuous, significant involvement in the project. If someone
171-
becomes unable or unwilling to continue in their roles, they may retire. If someone doesn't fulfill
172-
their role for 90 days or violates the code of conduct, they may be removed from the role (escalation/vote
173-
process TBD). If they wish to resume their role in the future, they may request to return to it by asking
174-
the current members filling that role.
37+
# Incubator process
17538

176-
# SIG Governance
177-
178-
In order to standardize Special Interest Group efforts, create maximum transparency, and route contributors to the appropriate SIG, SIGs should follow the guidelines stated below:
179-
180-
* Meet regularly, at least for 30 minutes every 3 weeks, except November and December
181-
* Keep up-to-date meeting notes, linked from the SIG's page in the community repo
182-
* Announce meeting agenda and minutes after each meeting, on their SIG mailing list
183-
* Record SIG meeting and make it publicly available
184-
* Ensure the SIG's mailing list and slack channel are archived
185-
* Report activity in the weekly community meeting at least once every 6 weeks
186-
* Participate in release planning meetings and retrospectives, and burndown meetings, as needed
187-
* Ensure related work happens in a project-owned github org and repository, with code and tests explicitly owned and supported by the SIG, including issue triage, PR reviews, test-failure response, bug fixes, etc.
188-
* Use the above forums as the primary means of working, communicating, and collaborating, as opposed to private emails and meetings
189-
* Represent the SIG for the PM group - see [PM SIG representatives](https://github.com/kubernetes/community/blob/master/sig-pm/SIG%20PM%20representatives.md).
39+
See [incubator process]
19040

19141
# CLA
19242

19343
All contributors must sign the CNCF CLA, as described [here](CLA.md).
19444

45+
[community membership]: /community-membership.md
46+
[sig governance]: /sig-governance.md
47+
[incubator process]: /incubator.md
48+
19549
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/governance.md?pixel)]()

0 commit comments

Comments
 (0)