2
2
3
3
## Leadership Election
4
4
5
- Qualified new maintainers are approved via consensus by the group of existing
6
- maintainers.
5
+ For most roles, candidates can self-nominate or be nominated
6
+ and are approved through consensus by the existing maintainers.
7
7
8
- ## Technical Committee
8
+ ### Nomination Protocol
9
9
10
- Technical committee provides technical oversight for the overall architectural
11
- design and project development.
10
+ #### Submit Nomination
12
11
13
- Responsibilities include:
12
+ The candidate or an existing maintainer creates
13
+ a [ maintainer nomination issue] ( .github/ISSUE_TEMPLATE/maintainer_nominate.yaml )
14
+ and submits a pull request (PR) to modify the ` MAINTAINERS.md `
15
+ or ` ADVISORS.md ` file to add the nominee.
16
+
17
+ #### Voting
18
+
19
+ The PR requires approval from ** at least three maintainers** ,
20
+ including the nominator if they are not self-nominating.
21
+ Maintainers indicate their approval by approving on the PR.
22
+
23
+ #### Approval and Merge
24
+
25
+ Once the required approvals are met, the PR can be merged.
26
+
27
+ If the nominee is not yet added as a maintainer to the repository,
28
+ they should be added at this point,
29
+ officially confirming their maintainer status.
30
+
31
+ ## Maintainers
32
+
33
+ Maintainers are responsible for the overall health and progress of the project.
34
+
35
+ Their roles and responsibilities are organized into functional areas:
36
+
37
+ ### 1. Project Lead
38
+
39
+ - Provide overall vision and strategic direction for the project
40
+ - Facilitate collaboration and communication among maintainers,
41
+ contributors, and stakeholders
42
+ - Make final decisions on major project proposals and conflicts
43
+ - Represent the project publicly in meetings, conferences, and external communications
44
+ - Ensure the project adheres to its goals, timelines, and governance policies
45
+ - Mentor maintainers and foster a healthy, inclusive community culture
46
+ - Oversee release planning and high-level project milestones
47
+
48
+ ### 2. Technical Committee
14
49
15
50
- Oversee the overall direction of the Kepler project.
16
51
- Provide guidance for the project maintainers and the onboarding process for
17
52
new maintainers.
18
53
- Actively engage in the technical committee meetings.
19
-
20
- The current list of technical committee members is published and updated in
54
+ - Participate in design and technical discussions
55
+ - Review and approve pull requests,
56
+ especially those involving significant technical changes or core areas
57
+
58
+ #### Becoming a Technical Committee Member
59
+
60
+ Technical Committee membership is reserved for contributors with a strong,
61
+ demonstrated commitment to the project.
62
+ Members are elected or invited based on their ongoing,
63
+ significant contributions including:
64
+
65
+ - Core Kepler development and maintenance
66
+ - Test suite maintenance
67
+ - Deployment and integration (including
68
+ the [ Kepler Operator] ( https://github.com/sustainable-computing-io/kepler-operator ) ,
69
+ [ Helm Chart] ( https://github.com/sustainable-computing-io/kepler-helm-chart ) )
70
+ - [ Model server] ( https://github.com/sustainable-computing-io/kepler-model-server )
71
+ and model development
72
+ - [ Continuous integration] ( https://github.com/sustainable-computing-io/kepler-action )
73
+ - [ Core documentation] ( https://github.com/sustainable-computing-io/kepler-doc )
74
+
75
+ ### 3. Release Management
76
+
77
+ - Oversee planning and coordination of releases
78
+ - Approve release blockers and guide final cut
79
+ - Ensure changelogs, versioning, and release notes are accurate
80
+
81
+ ### 4. Repository Oversight
82
+
83
+ - Monitor GitHub issues and PR queues
84
+ - Label, prioritize, and assign appropriately
85
+ - Close stale or unmaintained issues when needed
86
+ - Enforce code of conduct and contribution guidelines
87
+ - Maintain project security policies and dependencies
88
+ - Review and approve pull requests,
89
+ especially those involving project or repository management
90
+
91
+ ### 5. Community Engagement
92
+
93
+ - Promote the project through community calls, social channels, and events
94
+ - Host or rotate as facilitator for community calls
95
+ - Respond to contributor questions in forums, Slack, GitHub Discussions
96
+ - Connect contributors with the appropriate maintainers or domain experts
97
+ - Welcome new contributors and guide them toward first issues
98
+ - Review and approve pull requests, especially those involving community engagement
99
+
100
+ The current list of maintainers is published and updated in
21
101
[ MAINTAINERS.md] ( ./MAINTAINERS.md ) .
22
102
23
- ### Becoming a Technical Committee Member
103
+ ## Reviewer
24
104
25
- Proficient in one or more of the following areas:
105
+ A Reviewer has responsibility for specific code, documentation, test,
106
+ or other project areas.
107
+ They are collectively responsible, with other Reviewers,
108
+ for reviewing all changes to those areas and indicating whether
109
+ those changes are ready to merge.
110
+ They have a track record of contribution and review in the project.
26
111
27
- - Developing and maintaining Kepler core
28
- - Developing and maintaining Kepler deployment and integration (including
29
- Operator)
30
- - Developing and maintaining Kepler model server and models
31
- - Developing and maintaining test suites
32
- - Developing and maintaining CI infra
33
- - Maintaining documentation.
112
+ Reviewers are responsible for a "specific area."
113
+ This can be a specific code directory, driver, chapter of the docs,
114
+ test job, event, or other clearly-defined project component
115
+ that is smaller than an entire repository or subproject.
116
+ Most often it is one or a set of directories in one or more Git repositories.
34
117
35
- ## Responsibilities
118
+ The "specific area" below refers to this area of responsibility:
36
119
37
- ### Maintainer's Responsibilities
120
+ ### Responsibilities
38
121
39
- Responsibilities include:
122
+ - Following the reviewing guide
123
+ - Reviewing most Pull Requests against their specific areas of responsibility
124
+ - Helping other contributors become reviewers
40
125
41
- - Strong commitment to the project
42
- - Participate in design and technical discussions
43
- - Contribute non-trivial pull requests
44
- - Actively attend the community meetings
45
- - Perform code reviews on other's pull requests
46
- - Regularly triage GitHub issues.
47
- - Make sure that ongoing PRs are moving forward at the right pace or closing
48
- them
49
- - Monitor Kepler Slack (delayed response is perfectly acceptable), particularly
50
- for the area of your expertise
51
-
52
- ### Reviewer's Responsibilities
53
-
54
- Responsibilities include:
55
-
56
- - Perform code reviews on other's pull requests
57
- - Regularly triage GitHub issues.
58
- - Make sure that ongoing PRs are moving forward at the right pace or closing
59
- them
60
- - Monitor Kepler Slack (delayed response is perfectly acceptable), particularly
61
- for the area of your expertise
126
+ #### Becoming a Reviewer
127
+
128
+ The contributor is nominated by opening a PR against the appropriate repository,
129
+ which adds their GitHub username to
130
+ one or more [ OWNERS file] ( https://www.kubernetes.dev/docs/guide/owners/ ) .
131
+
132
+ At least one member of the maintainer or the team
133
+ that owns that repository or main directory,
134
+ who are already Approvers, approve the PR.
62
135
63
136
## Advisory Committee
64
137
@@ -73,4 +146,8 @@ project, including but not limited to:
73
146
Members of the advisory committee are expected to be active in the Kepler
74
147
community and attend the advisory committee meetings. Members are expected to
75
148
serve for a term of one year, with the option to renew for additional terms.
149
+
76
150
Members are invited and approved by the Kepler maintainers.
151
+
152
+ The current list of advisory committee is published and updated in
153
+ [ ADVISORS.md] ( ./ADVISORS.md ) .
0 commit comments