blob: 36fd46e6d37713952f593cfd7326d67b3da7040c [file] [log] [blame]
Marian Harbachebeb1542019-12-13 10:42:46 +01001:linkattrs:
Edwin Kempin6671edc2019-04-24 11:22:53 +02002= Gerrit Code Review - Supporting Roles
3
David Pursehouse0a9d92f2019-05-28 09:01:56 +09004As an open source project Gerrit has a large community of people
5driving the project forward. There are many ways to engage with
Edwin Kempin6671edc2019-04-24 11:22:53 +02006the project and get involved.
7
8[[supporter]]
9== Supporter
10
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +020011Supporters are individuals who help the Gerrit project and the Gerrit
Edwin Kempin6671edc2019-04-24 11:22:53 +020012community in any way. This includes users that provide feedback to the
13Gerrit community or get in touch by other means.
14
15There are many possibilities to support the project, e.g.:
16
17* get involved in discussions on the
Marian Harbach34253372019-12-10 18:01:31 +010018 link:https://groups.google.com/d/forum/repo-discuss[repo-discuss,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020019 mailing list (post your questions, provide feedback, share your
20 experiences, help other users)
Edwin Kempin68d645a2019-05-03 15:35:58 +020021* attend community events like user summits (see
22 link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[
Marian Harbach34253372019-12-10 18:01:31 +010023 community calendar,role=external,window=_blank])
Edwin Kempin6d99fb62023-06-21 10:08:28 +000024* report link:https://issues.gerritcodereview.com/issues?q=is:open[issues,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020025 and help to clarify existing issues
26* provide feedback on
27 link:https://www.gerritcodereview.com/releases-readme.html[new
Marian Harbach34253372019-12-10 18:01:31 +010028 releases and release candidates,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020029* review
Marian Harbach34253372019-12-10 18:01:31 +010030 link:https://gerrit-review.googlesource.com/q/status:open[changes,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020031 and help to verify that they work as advertised, comment if you like
32 or dislike a feature
33* serve as contact person for a proprietary Gerrit installation and
34 channel feedback from users back to the Gerrit community
35
36Supporters can:
37
38* post on the
Marian Harbach34253372019-12-10 18:01:31 +010039 link:https://groups.google.com/d/forum/repo-discuss[repo-discuss,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020040 mailing list (Please note that the `repo-discuss` mailing list is
41 managed to prevent spam posts. This means posts from new participants
42 must be approved manually before they appear on the mailing list.
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +020043 Approvals normally happen within 1 work day. Posts of people who
Edwin Kempin6671edc2019-04-24 11:22:53 +020044 participate in mailing list discussions frequently are approved
45 automatically)
46* comment on
Marian Harbach34253372019-12-10 18:01:31 +010047 link:https://gerrit-review.googlesource.com/q/status:open[changes,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020048 and vote from `-1` to `+1` on the `Code-Review` label (these votes
49 are important to understand the interest in a change and to address
50 concerns early, however link:#maintainer[maintainers] can
51 overrule/ignore these votes)
52* download changes to try them out, feedback can be provided as
53 comments and by voting (preferably on the `Verified` label,
54 permissions to vote on the `Verified` label are granted by request,
55 see below)
Edwin Kempin6d99fb62023-06-21 10:08:28 +000056* file issues in the link:https://issues.gerritcodereview.com/issues?q=is:open[
Marian Harbach34253372019-12-10 18:01:31 +010057 issue tracker,role=external,window=_blank] and comment on existing issues
Edwin Kempin099a5ec2019-04-25 16:15:14 +020058* support the
59 link:dev-processes.html#design-driven-contribution-process[
60 design-driven contribution process] by reviewing incoming
61 link:dev-design-docs.html[design docs] and raising concerns during
62 the design review
Edwin Kempin6671edc2019-04-24 11:22:53 +020063
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +020064Supporters who want to engage further can get additional privileges
Edwin Kempin6671edc2019-04-24 11:22:53 +020065on request (ask for it on the
Marian Harbach34253372019-12-10 18:01:31 +010066link:https://groups.google.com/d/forum/repo-discuss[repo-discuss,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020067mailing list):
68
Edwin Kempin7f54a142023-06-20 13:29:24 +000069* become member of the
70 link:https://groups.google.com/g/gerritcodereview-trusted-contributors[gerrit-trusted-contributors]
71 group, which allows to:
Edwin Kempin6671edc2019-04-24 11:22:53 +020072** vote on the `Verified` and `Code-Style` labels
73** edit hashtags on all changes
74** edit topics on all open changes
75** abandon changes
Edwin Kempinbed20432022-08-01 12:12:34 +020076** revert changes
Edwin Kempin6671edc2019-04-24 11:22:53 +020077* approve posts to the
Marian Harbach34253372019-12-10 18:01:31 +010078 link:https://groups.google.com/d/forum/repo-discuss[repo-discuss,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020079 mailing list
80* administrate issues in the
Edwin Kempin7f54a142023-06-20 13:29:24 +000081 link:https://issues.gerritcodereview.com/issues?q=status:open[issue tracker,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020082
83Supporters can become link:#contributor[contributors] by signing a
84contributor license agreement and contributing code to the Gerrit
85project.
86
87[[contributor]]
88== Contributor
89
90Everyone who has a valid link:dev-cla.html[contributor license
91agreement] and who has link:dev-contributing.html[contributed] at least
92one change to any project on
93link:https://gerrit-review.googlesource.com/[
Marian Harbach34253372019-12-10 18:01:31 +010094gerrit-review.googlesource.com,role=external,window=_blank] is a contributor.
Edwin Kempin6671edc2019-04-24 11:22:53 +020095
96Contributions can be:
97
98* new features
99* bug fixes
100* code cleanups
101* documentation updates
102* release notes updates
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200103* propose link:#dev-design-docs[design docs] as part of the
104 link:dev-contributing.html#design-driven-contribution-process[
105 design-driven contribution process]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200106* scripts which are of interest to the community
107
108Contributors have all the permissions that link:#supporter[supporters]
109have. In addition they have signed a link:dev-cla.html[contributor
110license agreement] which enables them to push changes.
111
Edwin Kempin7f54a142023-06-20 13:29:24 +0000112Regular contributors can ask to be added to the
113link:https://groups.google.com/g/gerritcodereview-trusted-contributors[gerrit-trusted-contributors]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200114group, which allows to:
115
116* add patch sets to changes of other users
117* propose project config changes (push changes for the
118 `refs/meta/config` branch
119
Edwin Kempin314be0c2022-08-01 12:16:56 +0200120Being member of the `gerrit-trusted-contributors` group includes further
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200121permissions (see link:#supporter[supporter] section above).
Edwin Kempin6671edc2019-04-24 11:22:53 +0200122
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200123It's highly appreciated if contributors engage in code reviews,
124link:dev-design-docs.html#review[design reviews] and mailing list
David Pursehouse5a4ae782019-09-18 12:11:51 +0900125discussions. If wanted, contributors can also serve as link:#mentor[
Edwin Kempinf13dfa92019-05-02 13:55:43 +0200126mentors] to support other contributors with getting their features
127done.
Edwin Kempin6671edc2019-04-24 11:22:53 +0200128
129Contributors may also be invited to join the Gerrit hackathons which
130happen regularly (e.g. twice a year). Hackathons are announced on the
Marian Harbach34253372019-12-10 18:01:31 +0100131link:https://groups.google.com/d/forum/repo-discuss[repo-discuss,role=external,window=_blank]
Edwin Kempin68d645a2019-05-03 15:35:58 +0200132mailing list (also see
133link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[
Marian Harbach34253372019-12-10 18:01:31 +0100134community calendar,role=external,window=_blank]).
Edwin Kempin6671edc2019-04-24 11:22:53 +0200135
136Outstanding contributors that are actively engaged in the community, in
137activities outlined above, may be nominated as link:#maintainer[
138maintainers].
139
140[[maintainer]]
141== Maintainer
142
143Maintainers are the gatekeepers of the project and are in charge of
David Pursehoused93d2592019-05-28 09:02:17 +0900144approving and submitting changes. Refer to the project homepage for
Marco Miller1e9df062019-06-20 12:42:27 -0400145the link:https://www.gerritcodereview.com/members.html#maintainers[
Marian Harbach34253372019-12-10 18:01:31 +0100146list of current maintainers,role=external,window=_blank].
Edwin Kempin6671edc2019-04-24 11:22:53 +0200147
148Maintainers should only approve changes that:
149
150* they fully understand
Edwin Kempin11932ad2019-04-24 15:58:02 +0200151* are in line with the project vision and project scope that are
David Pursehouse7840d812019-05-28 08:58:59 +0900152 defined by the link:dev-processes.html#steering-committee[engineering steering
Edwin Kempin11932ad2019-04-24 15:58:02 +0200153 committee], and should consult them, when in doubt
Edwin Kempin6671edc2019-04-24 11:22:53 +0200154* meet the quality expectations of the project (well-tested, properly
155 documented, scalable, backwards-compatible)
156* implement usable features or bug fixes (no incomplete/unusable
157 things)
158* are not authored by themselves (exceptions are changes which are
159 trivial according to the judgment of the maintainer and changes that
160 are required by the release process and branch management)
161
162Maintainers are trusted to assess changes, but are also expected to
163align with the other maintainers, especially if large new features are
164being added.
165
166Maintainers are highly encouraged to dedicate some of their time to the
167following tasks (but are not required to do so):
168
169* reviewing changes
170* mailing list discussions and support
171* bug fixing and bug triaging
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200172* supporting the
173 link:dev-processes.html#design-driven-contribution-process[
174 design-driven contribution process] by reviewing incoming
175 link:dev-design-docs.html[design docs] and raising concerns during
176 the design review
Edwin Kempinf13dfa92019-05-02 13:55:43 +0200177* serving as link:#mentor[mentor]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200178* doing releases (see link#release-manager[release manager])
179
180Maintainers can:
181
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200182* approve changes (vote `+2` on the `Code-Review` label); when
183 approving changes, `-1` votes on the `Code-Review` label can be
Edwin Kempin6671edc2019-04-24 11:22:53 +0200184 ignored if there is a good reason, in this case the reason should be
185 clearly communicated on the change
186* submit changes
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200187* block submission of changes if they disagree with how a feature is
188 being implemented (vote `-2` on the `Code-Review` label), but their
189 vote can be overruled by the steering committee, see
Edwin Kempin11932ad2019-04-24 15:58:02 +0200190 link:dev-processes.html#project-governance[Project Governance]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200191* nominate new maintainers and vote on nominations (see below)
192* administrate the link:https://groups.google.com/d/forum/repo-discuss[
Marian Harbach34253372019-12-10 18:01:31 +0100193 mailing list,role=external,window=_blank], the
Edwin Kempin6d99fb62023-06-21 10:08:28 +0000194 link:https://issues.gerritcodereview.com/issues?q=is:open[issue tracker,role=external,window=_blank]
Marian Harbach34253372019-12-10 18:01:31 +0100195 and the link:https://www.gerritcodereview.com/[homepage,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200196* gain permissions to do Gerrit releases and publish release artifacts
197* create new projects and groups on
198 link:https://gerrit-review.googlesource.com/[
Marian Harbach34253372019-12-10 18:01:31 +0100199 gerrit-review.googlesource.com,role=external,window=_blank]
Edwin Kempin9e8260f2019-05-06 09:42:51 +0200200* administrate the Gerrit projects on
201 link:https://gerrit-review.googlesource.com/[
Marian Harbach34253372019-12-10 18:01:31 +0100202 gerrit-review.googlesource.com,role=external,window=_blank] (e.g. edit ACLs, update project
Edwin Kempin9e8260f2019-05-06 09:42:51 +0200203 configuration)
Edwin Kempin68d645a2019-05-03 15:35:58 +0200204* create events in the
205 link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[
Marian Harbach34253372019-12-10 18:01:31 +0100206 community calendar,role=external,window=_blank]
Edwin Kempine4ac70e2019-07-22 10:27:45 +0200207* discuss with other maintainers on the private maintainers mailing
208 list and Slack channel
Edwin Kempin6671edc2019-04-24 11:22:53 +0200209
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200210In addition, maintainers from Google can:
Edwin Kempin6671edc2019-04-24 11:22:53 +0200211
212* approve/reject changes that update project dependencies (vote `-1` to
213 `+1` on the `Library-Compliance` label), see
214 link:dev-processes.html#upgrading-libraries[Upgrading Libraries]
215* edit permissions on the Gerrit core projects
216
Edwin Kempinde2c7e12019-05-06 11:57:24 +0200217[[maintainer-election]]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200218Maintainers can nominate new maintainers by posting a nomination on the
Edwin Kempinde2c7e12019-05-06 11:57:24 +0200219non-public maintainers mailing list. Nominations should stay open for
Edwin Kempin4bea34c2020-06-22 14:26:38 +0200220at least 10 calendar days so that all maintainers have a chance to
Edwin Kempinde2c7e12019-05-06 11:57:24 +0200221vote. To be approved as maintainer a minimum of 5 positive votes and no
222negative votes is required. This means if 5 positive votes without
Edwin Kempin4bea34c2020-06-22 14:26:38 +0200223negative votes have been reached and 10 calendar days have passed, any
Edwin Kempinde2c7e12019-05-06 11:57:24 +0200224maintainer can close the vote and welcome the new maintainer. Extending
225the voting period during holiday season or if there are not enough
226votes is possible, but the voting period should not exceed 1 month. If
227there are negative votes that are considered unjustified, the
228link:dev-processes.html#steering-committee[engineering steering
229committee] may get involved to decide whether the new maintainer can be
230accepted anyway.
Edwin Kempin6671edc2019-04-24 11:22:53 +0200231
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200232To become a maintainer, a link:#contributor[contributor] should have a
Edwin Kempin6671edc2019-04-24 11:22:53 +0200233history of deep technical contributions across different parts of the
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200234core Gerrit codebase. However, it is not required to be an expert on
Edwin Kempin6671edc2019-04-24 11:22:53 +0200235everything. Things that we want to see from potential maintainers
236include:
237
238* high quality code contributions
239* high quality code reviews
240* activity on the mailing list
241
Edwin Kempin11932ad2019-04-24 15:58:02 +0200242[[steering-committee-member]]
David Pursehouse7840d812019-05-28 08:58:59 +0900243== Engineering Steering Committee Member
Edwin Kempin11932ad2019-04-24 15:58:02 +0200244
David Pursehouse7840d812019-05-28 08:58:59 +0900245The Gerrit project has an Engineering Steering Committee (ESC) that
246governs the project, see link:dev-processes.html#project-governance[Project Governance].
Edwin Kempin11932ad2019-04-24 15:58:02 +0200247
248Members of the steering committee are expected to act in the interest
David Pursehoused93d2592019-05-28 09:02:17 +0900249of the Gerrit project and the whole Gerrit community. Refer to the project
Marco Miller1e9df062019-06-20 12:42:27 -0400250homepage for the link:https://www.gerritcodereview.com/members.html#engineering-steering-committee[
Marian Harbach34253372019-12-10 18:01:31 +0100251list of current committee members,role=external,window=_blank].
Edwin Kempin11932ad2019-04-24 15:58:02 +0200252
253For those that are familiar with scrum, the steering committee member
254role is similar to the role of an agile product owner.
255
256Steering committee members must be able to dedicate sufficient time to
257their role so that the steering committee can satisfy its
258responsibilities and live up to the promise of answering incoming
259requests in a timely manner.
260
David Pursehouse2d2ac842019-09-20 11:31:18 +0900261Community members may submit new items under the
Edwin Kempin6d99fb62023-06-21 10:08:28 +0000262link:https://issues.gerritcodereview.com/issues?q=componentid:1371029[SteeringCommittee component,role=external,window=_blank]
263in the issue tracker, or move existing issues to that component, to raise them
264to the attention of ESC members.
David Pursehouse2d2ac842019-09-20 11:31:18 +0900265
David Pursehouse6b99fd02019-09-21 16:10:07 +0900266Community members may contact the ESC members directly using
267mailto:gerritcodereview-esc@googlegroups.com[this mailing list].
268This is a group that remains private between the individual community
269member and ESC members.
270
Edwin Kempin11932ad2019-04-24 15:58:02 +0200271link:#maintainer[Maintainers] can become steering committee member by
272election, or by being appointed by Google (only for the seats that
273belong to Google).
274
Edwin Kempinf13dfa92019-05-02 13:55:43 +0200275[[mentor]]
276== Mentor
277
278A mentor is a link:#maintainer[maintainer] or link:#contributor[
279contributor] who is assigned to support the development of a feature
280that was specified in a link:dev-design-docs.html[design doc] and was
281approved by the link:dev-processes.html#steering-committee[steering
282committee].
283
284The goal of the mentor is to make the feature successful by:
285
286* doing timely reviews
287* providing technical guidance during code reviews
288* discussing details of the design
289* ensuring that the quality standards are met (well documented,
290 sufficient test coverage, backwards compatible etc.)
291
292The implementation is fully done by the contributor, but optionally
293mentors can help out with contributing some changes.
294
295link:#maintainer[Maintainers] and link:#contributor[contributors] can
296volunteer to generally serve as mentors, or to mentor specific features
297(e.g. if they see an upcoming feature on the roadmap that they are
298interested in). To volunteer as mentor, contact the
299link:dev-processes.html#steering-committee[steering committee] or
300comment on a change that adds a link:dev-design-docs.html#propose[
301design doc].
302
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200303[[community-manager]]
304== Community Manager
305
306Community managers should act as stakeholders for the Gerrit community
Marco Millerfd457032019-06-20 12:45:59 -0400307and focus on the health of the community. Refer to the project homepage
308for the link:https://www.gerritcodereview.com/members.html#community-managers[
Marian Harbach34253372019-12-10 18:01:31 +0100309list of current community managers,role=external,window=_blank].
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200310
311Tasks:
312
313* act as stakeholder for the Gerrit community towards the
314 link:dev-processes.html#steering-committee[steering committee]
315* ensure that the link:dev-contributing.html#mentorship[mentorship
316 process] works
317* deescalate conflicts in the Gerrit community
318* constantly improve community processes (e.g. contribution process)
319* watch out for community issues and address them proactively
320* serve as contact person for community issues
321
Marco Miller69ae5e82019-07-02 14:16:54 -0400322Community members may submit new items under the
Edwin Kempin6d99fb62023-06-21 10:08:28 +0000323link:https://issues.gerritcodereview.com/issues?q=componentid:1371048[Community component,role=external,window=_blank]
Marco Miller69ae5e82019-07-02 14:16:54 -0400324backlog, for community managers to refine. Only public topics should be
325issued through that backlog.
326
327Sensitive topics are to be privately discussed using
328mailto:gerritcodereview-community-managers@googlegroups.com[this mailing list].
329This is a group that remains private between the individual community
330member and community managers.
331
Nasser Grainawi490dc302023-10-26 16:54:58 -0600332The community managers should be at least a pair that shares the work:
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200333
Edwin Kempin553ff6d2019-05-29 14:10:00 +0200334* One Googler that is appointed by Google.
Nasser Grainawi490dc302023-10-26 16:54:58 -0600335* One or more non-Googlers, elected by the community if there are more
Edwin Kempin553ff6d2019-05-29 14:10:00 +0200336 than two candidates. If there is no candidate, we only have the one
337 community manager from Google.
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200338
339Community managers must not be link:#steering-committee-member[
340steering committee members] at the same time so that they can represent
341the community without conflict of interest.
342
Edwin Kempinc28febc2020-04-07 08:30:19 +0200343Anybody from the Gerrit community can candidate as community manager.
344This means, in contrast to candidating for the ESC, candidating as
345community manager is not limited to Gerrit maintainers. Otherwise the
346nomination process, election process and election period for the
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200347non-Google community manager are the same as for
348link:dev-processes.html#steering-committee-election[steering committee
349members].
350
Edwin Kempin6671edc2019-04-24 11:22:53 +0200351[[release-manager]]
352== Release Manager
353
354Each major Gerrit release is driven by a Gerrit link:#maintainer[
355maintainer], the so called release manager.
356
357The release manager is responsible for:
358
359* identifying release blockers and informing about them
360* creating stable branches and updating version numbers
361* creating release candidates, the final major release and minor
362 releases
363* announcing releases on the mailing list and collecting feedback
364* ensuring that releases meet minimal quality expectations (Gerrit
365 starts, upgrade from previous version works)
366* publishing release artifacts
367* ensuring quality and completeness of the release notes
368* cherry-picking bug fixes, see link:dev-processes.html#backporting[
369 Backporting to stable branches]
370* estimating the risk of new features that are added on stable
371 branches, see link:dev-processes.html#dev-in-stable-branches[
372 Development in stable branches]
373
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200374Before each release, the release manager is appointed by consensus among
Edwin Kempin6671edc2019-04-24 11:22:53 +0200375the maintainers. Volunteers are welcome, but it's also a goal to fairly
376share this work between maintainers and contributing companies.
377
378GERRIT
379------
380Part of link:index.html[Gerrit Code Review]
381
382SEARCHBOX
383---------