Skip to content

Commit ac00115

Browse files
committed
docs: add community governance and promotion guide
Change-Id: I9abfaff3e8324af4c12c482971260a080ea188d5
1 parent aced0ce commit ac00115

2 files changed

Lines changed: 432 additions & 38 deletions

File tree

src/content/docs/developer/en/developers_dev.md

Lines changed: 247 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -35,33 +35,261 @@ This page shows the development team members of Spring Cloud Alibaba. We are con
3535
| Ziming Liu | 123liuziming | Committer | 448918299@qq.com | Graduate student at Peking University |
3636
| Shiwen Ji | yuluo-yx | Committer | karashouk.pan@gmail.com | ~ |
3737

38-
## Development Role
38+
## Community Roles and Promotion Mechanism
3939

40-
The Spring Cloud Alibaba project developer includes three roles: Steering Committee Member, Committer, and Contributor. The standard definitions of each role are as follows.
40+
The Spring Cloud Alibaba community includes five roles: Contributor, Reviewer,
41+
Committer, Maintainer, and Steering Committee Member. Each role carries
42+
different responsibilities and permissions, and promotion is based on sustained
43+
contribution, community trust, and an open process.
4144

42-
### Steering Committee Member
45+
## Principles
46+
47+
The Spring Cloud Alibaba community is governed by the following principles:
48+
49+
- Merit and trust: roles are earned through sustained contribution, sound
50+
judgment, and trust from the community;
51+
- Responsibility before privilege: additional permissions are granted to enable
52+
service to the project, not as a title or reward;
53+
- Contributions beyond code: code, reviews, issue triage, design discussion,
54+
release work, documentation, examples, user support, community operations,
55+
and mentoring are all valued;
56+
- Transparency: role changes should be proposed, discussed, and recorded in an
57+
open and auditable way;
58+
- Reversibility: elevated roles may be adjusted when members become inactive,
59+
step down, or violate community standards;
60+
- Respect: all participants are expected to follow the community code of
61+
conduct.
62+
63+
## Community Roles
64+
65+
### Contributor
66+
67+
A Contributor is any individual who has made a meaningful contribution to the
68+
project.
69+
70+
The baseline for becoming a Contributor is:
71+
72+
- submitting a pull request that is merged;
73+
74+
The community also values many other forms of contribution, including issue
75+
reporting, documentation, examples, tests, reviews, and user support. These
76+
contributions should be recognized in promotion decisions.
77+
78+
Contributors are encouraged to continue participating in reviews, discussions,
79+
and community activities.
80+
81+
### Reviewer
82+
83+
A Reviewer is a community member who can consistently provide high-quality
84+
technical review for a module, feature area, or class of changes.
85+
86+
Typical expectations for becoming a Reviewer:
87+
88+
- at least 5 meaningful contributions in the last 6 months;
89+
- at least 8 substantive reviews or design discussions that helped improve a
90+
change before merge;
91+
- familiarity with at least one module or functional area;
92+
- nomination by at least 1 Committer or Maintainer.
93+
94+
Typical responsibilities of a Reviewer:
4395

44-
Steering Committee, as the technical development steering committee of the Spring Cloud Alibaba project, its members are individuals who have made significant contributions to the evolution and development of the Spring Cloud Alibaba project. Specifically include the following standards::
96+
- review pull requests in a timely and constructive manner;
97+
- help triage issues and identify duplicates, gaps, or missing context;
98+
- participate in design discussions and help contributors align with project
99+
direction;
100+
- help onboard new contributors in the relevant area.
45101

46-
- Complete the design and development of multiple key modules or projects, and be the core developer of the project;
47-
- Continuous investment and passion, able to actively participate in the maintenance of community, official website, issue, PR and other project related matters;
48-
- Has a visible influence in the community and can represent Spring Cloud Alibaba to participate in important community conferences and activities;
49-
- Have the awareness and ability to cultivate Committer and Contributor;
50-
- The Steering Committee Member is elected in the senior Committer, and is discussed and voted by all members of the Steering Committee. It is necessary to obtain more than half of the total number of votes to be elected;
102+
Reviewer approval process:
103+
104+
- nomination should be proposed publicly;
105+
- the nomination should include links to representative contributions and
106+
reviews;
107+
- the nomination is approved when it receives support from at least 2
108+
Committers, or at least 1 Maintainer, with no unresolved objection from the
109+
module owners or Steering Committee.
110+
111+
Being a Reviewer does not automatically grant repository write access.
51112

52113
### Committer
53114

54-
A committer is an individual with write permissions to the repository, and includes the following criteria:
115+
A Committer is a trusted community member with repository write access who can
116+
merge pull requests and help maintain project quality.
55117

56-
- Individuals who can make continuous contributions to issues and PRs for a long time;
57-
- Made important feature contributions to the community;
58-
- Participate in the maintenance of the issue list, the discussion of important features, the hosting of the community weekly meeting and the participation in community activities such as sharing the weekly community meeting
59-
- Participated in the quarterly active contributor program of the community at least once;
60-
- Participate in code review;
61-
- Committer is nominated and voted by members of the Steering Committee Member, and can be elected with at least 3 votes;
118+
Typical expectations for becoming a Committer:
62119

63-
### Contributor
120+
- make sustained issue and pull request contributions over a long period;
121+
- make important feature contributions to the community;
122+
- participate in issue list maintenance, discussion of important features,
123+
community meetings, community sharing, and other community activities;
124+
- participate in code review.
125+
126+
The Steering Committee may also consider practical signals such as:
127+
128+
- a sustained record of substantive pull requests and reviews;
129+
- healthy collaboration, communication, and technical judgment;
130+
- evidence of module familiarity, mentoring, or release support.
131+
132+
Typical responsibilities of a Committer:
133+
134+
- merge pull requests that meet project quality standards;
135+
- participate in review, triage, and technical discussion on an ongoing basis;
136+
- help enforce project conventions, backward compatibility expectations, and
137+
testing standards;
138+
- support Reviewer growth and contributor onboarding.
139+
140+
Committer approval process:
141+
142+
- nomination should be initiated by a Steering Committee Member; a Maintainer
143+
may recommend a candidate to the Steering Committee;
144+
- the nomination should be posted publicly and remain open for at least 7 days;
145+
- the nomination should include evidence of sustained contributions, reviews,
146+
and community participation;
147+
- election requires no fewer than 3 affirmative votes from the Steering
148+
Committee.
149+
150+
### Maintainer
151+
152+
A Maintainer is responsible for a module, subsystem, or key area. A Maintainer
153+
is normally also a Committer and serves as the day-to-day owner of a subsystem,
154+
integration, or cross-cutting capability.
155+
156+
Typical expectations for becoming a Maintainer:
157+
158+
- served effectively as a Committer for at least 6 months;
159+
- sustained ownership of at least 1 module, subsystem, or cross-cutting area;
160+
- a strong record of reviews, design leadership, and issue resolution in the
161+
last 12 months;
162+
- demonstrated mentoring of Contributors, Reviewers, or Committers;
163+
- willingness to take responsibility for release readiness, backlog health, and
164+
module direction.
165+
166+
Typical responsibilities of a Maintainer:
167+
168+
- set module direction and make final calls when consensus cannot be reached at
169+
the module level;
170+
- maintain review responsiveness and quality expectations for their area;
171+
- coordinate significant design changes, deprecations, and compatibility
172+
decisions;
173+
- help identify and develop future Reviewers and Committers;
174+
- participate in repository permission configuration when needed as the module
175+
owner.
176+
177+
Maintainer approval process:
178+
179+
- nomination must be proposed by at least 2 Maintainers, or at least 1 Steering
180+
Committee Member;
181+
- the nomination should be posted publicly and remain open for at least 7 days;
182+
- election requires approval from more than half of the active Steering
183+
Committee Members.
184+
185+
### Steering Committee Member
186+
187+
The Steering Committee is responsible for cross-project technical governance,
188+
community process, major role appointments, and dispute resolution.
189+
190+
Typical expectations for becoming a Steering Committee Member include:
191+
192+
- completing the design and development of multiple key modules or projects and
193+
being a core developer of the project;
194+
- showing sustained investment and passion, and actively participating in
195+
community, website, issue, pull request, and related maintenance work;
196+
- having visible influence in the community and being able to represent Spring
197+
Cloud Alibaba in important community meetings and activities;
198+
- having the awareness and ability to cultivate Committers and Contributors.
199+
200+
Steering Committee Members are normally selected from senior Committers,
201+
typically those who have already demonstrated Maintainer-level ownership and
202+
cross-project impact.
203+
204+
Typical responsibilities of a Steering Committee Member:
205+
206+
- define and evolve governance policy and community process;
207+
- approve Committer, Maintainer, and Steering Committee nominations;
208+
- resolve escalated cross-module disputes or priority conflicts;
209+
- help represent the project in the broader open source ecosystem;
210+
- maintain a healthy, diverse, and sustainable community.
211+
212+
Steering Committee approval process:
213+
214+
- nominations should normally come from active Steering Committee Members;
215+
- the nomination should be discussed openly where appropriate;
216+
- election requires approval from more than half of the active Steering
217+
Committee Members.
218+
219+
## Promotion Rules
220+
221+
The following rules apply to all role promotions:
222+
223+
- role decisions should be based on sustained contribution over time rather than
224+
a single large pull request or event;
225+
- numerical criteria are guidelines, not a substitute for judgment;
226+
- non-code contributions must be considered alongside code contributions;
227+
- the candidate's employer, affiliation, or commercial background must not be a
228+
deciding factor;
229+
- candidates should be informed before a nomination is made public and may
230+
decline the nomination;
231+
- a nominee must not vote on their own promotion.
232+
233+
## Activity, Inactive Status, and Emeritus Status
234+
235+
Meaningful activity includes code contributions, reviews, issue triage, design
236+
discussion, release work, mentoring, community meetings, and other visible
237+
project maintenance work.
238+
239+
Activity expectations:
240+
241+
- Reviewers who have no meaningful activity for 6 consecutive months may be
242+
moved to inactive status and removed from active reviewer lists;
243+
- Committers, Maintainers, and Steering Committee Members who have no
244+
meaningful activity for 12 consecutive months may be marked inactive;
245+
- Members who remain inactive for an extended period, normally 18 months, may
246+
be moved to Emeritus status by the Steering Committee.
247+
248+
Emeritus status:
249+
250+
- recognizes historical service to the project;
251+
- does not include routine merge, approval, or governance responsibilities;
252+
- may be reactivated through a lightweight review by the body that owns the
253+
role.
254+
255+
Members are always welcome to step down voluntarily. Voluntary transitions
256+
should be respected and recorded publicly.
257+
258+
## Removal and Role Adjustment
259+
260+
Roles may be removed or adjusted when a member:
261+
262+
- requests to step down;
263+
- becomes inactive for an extended period;
264+
- repeatedly fails to meet role responsibilities;
265+
- seriously violates the code of conduct or abuses project permissions.
266+
267+
Except in urgent situations involving safety or abuse, removal or downgrade of
268+
Committer, Maintainer, or Steering Committee roles should be discussed by the
269+
Steering Committee and recorded publicly.
270+
271+
## Repository Permissions and Role Mapping
272+
273+
Community roles and repository permissions are related, but they are not
274+
identical.
275+
276+
Recommended mapping:
277+
278+
- Contributor: default repository access;
279+
- Reviewer: review responsibilities, and triage access when needed;
280+
- Committer: repository write access;
281+
- Maintainer: repository write or maintain access and responsibility as a
282+
module owner;
283+
- Steering Committee Member: governance role; repository admin access should be
284+
granted only when operationally necessary.
285+
286+
Where practical, the project should maintain module ownership through
287+
CODEOWNERS or an equivalent public ownership mechanism. Reviewer, Committer,
288+
Maintainer, and Steering Committee rosters should be published and kept
289+
current.
64290

65-
Contributors are individuals who contribute to the project, the standard is
291+
## Amendments
66292

67-
- Submitted PR and merged;
293+
This document may be updated by the Steering Committee through public
294+
discussion and approval. Material changes should be announced to the community
295+
before they take effect.

0 commit comments

Comments
 (0)