blob: 2ca7f22c467cdb2a484321daeff83662b68aa41b [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])
24* report link:https://bugs.chromium.org/p/gerrit/issues/list[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)
56* file issues in the link:https://bugs.chromium.org/p/gerrit/issues/list[
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
69* become member of the `gerrit-verifiers` group, which allows to:
70** vote on the `Verified` and `Code-Style` labels
71** edit hashtags on all changes
72** edit topics on all open changes
73** abandon changes
74* approve posts to the
Marian Harbach34253372019-12-10 18:01:31 +010075 link:https://groups.google.com/d/forum/repo-discuss[repo-discuss,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020076 mailing list
77* administrate issues in the
Marian Harbach34253372019-12-10 18:01:31 +010078 link:https://bugs.chromium.org/p/gerrit/issues/list[issue tracker,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020079
80Supporters can become link:#contributor[contributors] by signing a
81contributor license agreement and contributing code to the Gerrit
82project.
83
84[[contributor]]
85== Contributor
86
87Everyone who has a valid link:dev-cla.html[contributor license
88agreement] and who has link:dev-contributing.html[contributed] at least
89one change to any project on
90link:https://gerrit-review.googlesource.com/[
Marian Harbach34253372019-12-10 18:01:31 +010091gerrit-review.googlesource.com,role=external,window=_blank] is a contributor.
Edwin Kempin6671edc2019-04-24 11:22:53 +020092
93Contributions can be:
94
95* new features
96* bug fixes
97* code cleanups
98* documentation updates
99* release notes updates
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200100* propose link:#dev-design-docs[design docs] as part of the
101 link:dev-contributing.html#design-driven-contribution-process[
102 design-driven contribution process]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200103* scripts which are of interest to the community
104
105Contributors have all the permissions that link:#supporter[supporters]
106have. In addition they have signed a link:dev-cla.html[contributor
107license agreement] which enables them to push changes.
108
109Regular contributors can ask to be added to the `gerrit-verifiers`
110group, which allows to:
111
112* add patch sets to changes of other users
113* propose project config changes (push changes for the
114 `refs/meta/config` branch
115
116Being member of the `gerrit-verifiers` group includes further
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200117permissions (see link:#supporter[supporter] section above).
Edwin Kempin6671edc2019-04-24 11:22:53 +0200118
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200119It's highly appreciated if contributors engage in code reviews,
120link:dev-design-docs.html#review[design reviews] and mailing list
David Pursehouse5a4ae782019-09-18 12:11:51 +0900121discussions. If wanted, contributors can also serve as link:#mentor[
Edwin Kempinf13dfa92019-05-02 13:55:43 +0200122mentors] to support other contributors with getting their features
123done.
Edwin Kempin6671edc2019-04-24 11:22:53 +0200124
125Contributors may also be invited to join the Gerrit hackathons which
126happen regularly (e.g. twice a year). Hackathons are announced on the
Marian Harbach34253372019-12-10 18:01:31 +0100127link:https://groups.google.com/d/forum/repo-discuss[repo-discuss,role=external,window=_blank]
Edwin Kempin68d645a2019-05-03 15:35:58 +0200128mailing list (also see
129link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[
Marian Harbach34253372019-12-10 18:01:31 +0100130community calendar,role=external,window=_blank]).
Edwin Kempin6671edc2019-04-24 11:22:53 +0200131
132Outstanding contributors that are actively engaged in the community, in
133activities outlined above, may be nominated as link:#maintainer[
134maintainers].
135
136[[maintainer]]
137== Maintainer
138
139Maintainers are the gatekeepers of the project and are in charge of
David Pursehoused93d2592019-05-28 09:02:17 +0900140approving and submitting changes. Refer to the project homepage for
Marco Miller1e9df062019-06-20 12:42:27 -0400141the link:https://www.gerritcodereview.com/members.html#maintainers[
Marian Harbach34253372019-12-10 18:01:31 +0100142list of current maintainers,role=external,window=_blank].
Edwin Kempin6671edc2019-04-24 11:22:53 +0200143
144Maintainers should only approve changes that:
145
146* they fully understand
Edwin Kempin11932ad2019-04-24 15:58:02 +0200147* are in line with the project vision and project scope that are
David Pursehouse7840d812019-05-28 08:58:59 +0900148 defined by the link:dev-processes.html#steering-committee[engineering steering
Edwin Kempin11932ad2019-04-24 15:58:02 +0200149 committee], and should consult them, when in doubt
Edwin Kempin6671edc2019-04-24 11:22:53 +0200150* meet the quality expectations of the project (well-tested, properly
151 documented, scalable, backwards-compatible)
152* implement usable features or bug fixes (no incomplete/unusable
153 things)
154* are not authored by themselves (exceptions are changes which are
155 trivial according to the judgment of the maintainer and changes that
156 are required by the release process and branch management)
157
158Maintainers are trusted to assess changes, but are also expected to
159align with the other maintainers, especially if large new features are
160being added.
161
162Maintainers are highly encouraged to dedicate some of their time to the
163following tasks (but are not required to do so):
164
165* reviewing changes
166* mailing list discussions and support
167* bug fixing and bug triaging
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200168* supporting the
169 link:dev-processes.html#design-driven-contribution-process[
170 design-driven contribution process] by reviewing incoming
171 link:dev-design-docs.html[design docs] and raising concerns during
172 the design review
Edwin Kempinf13dfa92019-05-02 13:55:43 +0200173* serving as link:#mentor[mentor]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200174* doing releases (see link#release-manager[release manager])
175
176Maintainers can:
177
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200178* approve changes (vote `+2` on the `Code-Review` label); when
179 approving changes, `-1` votes on the `Code-Review` label can be
Edwin Kempin6671edc2019-04-24 11:22:53 +0200180 ignored if there is a good reason, in this case the reason should be
181 clearly communicated on the change
182* submit changes
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200183* block submission of changes if they disagree with how a feature is
184 being implemented (vote `-2` on the `Code-Review` label), but their
185 vote can be overruled by the steering committee, see
Edwin Kempin11932ad2019-04-24 15:58:02 +0200186 link:dev-processes.html#project-governance[Project Governance]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200187* nominate new maintainers and vote on nominations (see below)
188* administrate the link:https://groups.google.com/d/forum/repo-discuss[
Marian Harbach34253372019-12-10 18:01:31 +0100189 mailing list,role=external,window=_blank], the
190 link:https://bugs.chromium.org/p/gerrit/issues/list[issue tracker,role=external,window=_blank]
191 and the link:https://www.gerritcodereview.com/[homepage,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200192* gain permissions to do Gerrit releases and publish release artifacts
193* create new projects and groups on
194 link:https://gerrit-review.googlesource.com/[
Marian Harbach34253372019-12-10 18:01:31 +0100195 gerrit-review.googlesource.com,role=external,window=_blank]
Edwin Kempin9e8260f2019-05-06 09:42:51 +0200196* administrate the Gerrit projects on
197 link:https://gerrit-review.googlesource.com/[
Marian Harbach34253372019-12-10 18:01:31 +0100198 gerrit-review.googlesource.com,role=external,window=_blank] (e.g. edit ACLs, update project
Edwin Kempin9e8260f2019-05-06 09:42:51 +0200199 configuration)
Edwin Kempin68d645a2019-05-03 15:35:58 +0200200* create events in the
201 link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[
Marian Harbach34253372019-12-10 18:01:31 +0100202 community calendar,role=external,window=_blank]
Edwin Kempine4ac70e2019-07-22 10:27:45 +0200203* discuss with other maintainers on the private maintainers mailing
204 list and Slack channel
Edwin Kempin6671edc2019-04-24 11:22:53 +0200205
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200206In addition, maintainers from Google can:
Edwin Kempin6671edc2019-04-24 11:22:53 +0200207
208* approve/reject changes that update project dependencies (vote `-1` to
209 `+1` on the `Library-Compliance` label), see
210 link:dev-processes.html#upgrading-libraries[Upgrading Libraries]
211* edit permissions on the Gerrit core projects
212
Edwin Kempinde2c7e12019-05-06 11:57:24 +0200213[[maintainer-election]]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200214Maintainers can nominate new maintainers by posting a nomination on the
Edwin Kempinde2c7e12019-05-06 11:57:24 +0200215non-public maintainers mailing list. Nominations should stay open for
216at least 14 calendar days so that all maintainers have a chance to
217vote. To be approved as maintainer a minimum of 5 positive votes and no
218negative votes is required. This means if 5 positive votes without
219negative votes have been reached and 14 calendar days have passed, any
220maintainer can close the vote and welcome the new maintainer. Extending
221the voting period during holiday season or if there are not enough
222votes is possible, but the voting period should not exceed 1 month. If
223there are negative votes that are considered unjustified, the
224link:dev-processes.html#steering-committee[engineering steering
225committee] may get involved to decide whether the new maintainer can be
226accepted anyway.
Edwin Kempin6671edc2019-04-24 11:22:53 +0200227
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200228To become a maintainer, a link:#contributor[contributor] should have a
Edwin Kempin6671edc2019-04-24 11:22:53 +0200229history of deep technical contributions across different parts of the
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200230core Gerrit codebase. However, it is not required to be an expert on
Edwin Kempin6671edc2019-04-24 11:22:53 +0200231everything. Things that we want to see from potential maintainers
232include:
233
234* high quality code contributions
235* high quality code reviews
236* activity on the mailing list
237
Edwin Kempin11932ad2019-04-24 15:58:02 +0200238[[steering-committee-member]]
David Pursehouse7840d812019-05-28 08:58:59 +0900239== Engineering Steering Committee Member
Edwin Kempin11932ad2019-04-24 15:58:02 +0200240
David Pursehouse7840d812019-05-28 08:58:59 +0900241The Gerrit project has an Engineering Steering Committee (ESC) that
242governs the project, see link:dev-processes.html#project-governance[Project Governance].
Edwin Kempin11932ad2019-04-24 15:58:02 +0200243
244Members of the steering committee are expected to act in the interest
David Pursehoused93d2592019-05-28 09:02:17 +0900245of the Gerrit project and the whole Gerrit community. Refer to the project
Marco Miller1e9df062019-06-20 12:42:27 -0400246homepage for the link:https://www.gerritcodereview.com/members.html#engineering-steering-committee[
Marian Harbach34253372019-12-10 18:01:31 +0100247list of current committee members,role=external,window=_blank].
Edwin Kempin11932ad2019-04-24 15:58:02 +0200248
249For those that are familiar with scrum, the steering committee member
250role is similar to the role of an agile product owner.
251
252Steering committee members must be able to dedicate sufficient time to
253their role so that the steering committee can satisfy its
254responsibilities and live up to the promise of answering incoming
255requests in a timely manner.
256
David Pursehouse2d2ac842019-09-20 11:31:18 +0900257Community members may submit new items under the
Marian Harbach34253372019-12-10 18:01:31 +0100258link:https://bugs.chromium.org/p/gerrit/issues/list?q=component:ESC[ESC component,role=external,window=_blank]
David Pursehouse2d2ac842019-09-20 11:31:18 +0900259in the issue tracker, or add that component to existing items, to raise them to
260the attention of ESC members.
261
David Pursehouse6b99fd02019-09-21 16:10:07 +0900262Community members may contact the ESC members directly using
263mailto:gerritcodereview-esc@googlegroups.com[this mailing list].
264This is a group that remains private between the individual community
265member and ESC members.
266
Edwin Kempin11932ad2019-04-24 15:58:02 +0200267link:#maintainer[Maintainers] can become steering committee member by
268election, or by being appointed by Google (only for the seats that
269belong to Google).
270
Edwin Kempinf13dfa92019-05-02 13:55:43 +0200271[[mentor]]
272== Mentor
273
274A mentor is a link:#maintainer[maintainer] or link:#contributor[
275contributor] who is assigned to support the development of a feature
276that was specified in a link:dev-design-docs.html[design doc] and was
277approved by the link:dev-processes.html#steering-committee[steering
278committee].
279
280The goal of the mentor is to make the feature successful by:
281
282* doing timely reviews
283* providing technical guidance during code reviews
284* discussing details of the design
285* ensuring that the quality standards are met (well documented,
286 sufficient test coverage, backwards compatible etc.)
287
288The implementation is fully done by the contributor, but optionally
289mentors can help out with contributing some changes.
290
291link:#maintainer[Maintainers] and link:#contributor[contributors] can
292volunteer to generally serve as mentors, or to mentor specific features
293(e.g. if they see an upcoming feature on the roadmap that they are
294interested in). To volunteer as mentor, contact the
295link:dev-processes.html#steering-committee[steering committee] or
296comment on a change that adds a link:dev-design-docs.html#propose[
297design doc].
298
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200299[[community-manager]]
300== Community Manager
301
302Community managers should act as stakeholders for the Gerrit community
Marco Millerfd457032019-06-20 12:45:59 -0400303and focus on the health of the community. Refer to the project homepage
304for the link:https://www.gerritcodereview.com/members.html#community-managers[
Marian Harbach34253372019-12-10 18:01:31 +0100305list of current community managers,role=external,window=_blank].
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200306
307Tasks:
308
309* act as stakeholder for the Gerrit community towards the
310 link:dev-processes.html#steering-committee[steering committee]
311* ensure that the link:dev-contributing.html#mentorship[mentorship
312 process] works
313* deescalate conflicts in the Gerrit community
314* constantly improve community processes (e.g. contribution process)
315* watch out for community issues and address them proactively
316* serve as contact person for community issues
317
Marco Miller69ae5e82019-07-02 14:16:54 -0400318Community members may submit new items under the
Marian Harbach34253372019-12-10 18:01:31 +0100319link:https://bugs.chromium.org/p/gerrit/issues/list?q=component:Community[Community component,role=external,window=_blank]
Marco Miller69ae5e82019-07-02 14:16:54 -0400320backlog, for community managers to refine. Only public topics should be
321issued through that backlog.
322
323Sensitive topics are to be privately discussed using
324mailto:gerritcodereview-community-managers@googlegroups.com[this mailing list].
325This is a group that remains private between the individual community
326member and community managers.
327
Edwin Kempin553ff6d2019-05-29 14:10:00 +0200328The community managers should be a pair or trio that shares the work:
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200329
Edwin Kempin553ff6d2019-05-29 14:10:00 +0200330* One Googler that is appointed by Google.
331* One or two non-Googlers, elected by the community if there are more
332 than two candidates. If there is no candidate, we only have the one
333 community manager from Google.
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200334
335Community managers must not be link:#steering-committee-member[
336steering committee members] at the same time so that they can represent
337the community without conflict of interest.
338
Edwin Kempinc28febc2020-04-07 08:30:19 +0200339Anybody from the Gerrit community can candidate as community manager.
340This means, in contrast to candidating for the ESC, candidating as
341community manager is not limited to Gerrit maintainers. Otherwise the
342nomination process, election process and election period for the
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200343non-Google community manager are the same as for
344link:dev-processes.html#steering-committee-election[steering committee
345members].
346
Edwin Kempin6671edc2019-04-24 11:22:53 +0200347[[release-manager]]
348== Release Manager
349
350Each major Gerrit release is driven by a Gerrit link:#maintainer[
351maintainer], the so called release manager.
352
353The release manager is responsible for:
354
355* identifying release blockers and informing about them
356* creating stable branches and updating version numbers
357* creating release candidates, the final major release and minor
358 releases
359* announcing releases on the mailing list and collecting feedback
360* ensuring that releases meet minimal quality expectations (Gerrit
361 starts, upgrade from previous version works)
362* publishing release artifacts
363* ensuring quality and completeness of the release notes
364* cherry-picking bug fixes, see link:dev-processes.html#backporting[
365 Backporting to stable branches]
366* estimating the risk of new features that are added on stable
367 branches, see link:dev-processes.html#dev-in-stable-branches[
368 Development in stable branches]
369
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200370Before each release, the release manager is appointed by consensus among
Edwin Kempin6671edc2019-04-24 11:22:53 +0200371the maintainers. Volunteers are welcome, but it's also a goal to fairly
372share this work between maintainers and contributing companies.
373
374GERRIT
375------
376Part of link:index.html[Gerrit Code Review]
377
378SEARCHBOX
379---------