blob: d8f7e11a3a508dc15d9211e9612f64e188e1a99a [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
Edwin Kempin314be0c2022-08-01 12:16:56 +020069* become member of the `gerrit-trusted-contributors` group, which allows to:
Edwin Kempin6671edc2019-04-24 11:22:53 +020070** vote on the `Verified` and `Code-Style` labels
71** edit hashtags on all changes
72** edit topics on all open changes
73** abandon changes
Edwin Kempinbed20432022-08-01 12:12:34 +020074** revert changes
Edwin Kempin6671edc2019-04-24 11:22:53 +020075* approve posts to the
Marian Harbach34253372019-12-10 18:01:31 +010076 link:https://groups.google.com/d/forum/repo-discuss[repo-discuss,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020077 mailing list
78* administrate issues in the
Marian Harbach34253372019-12-10 18:01:31 +010079 link:https://bugs.chromium.org/p/gerrit/issues/list[issue tracker,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +020080
81Supporters can become link:#contributor[contributors] by signing a
82contributor license agreement and contributing code to the Gerrit
83project.
84
85[[contributor]]
86== Contributor
87
88Everyone who has a valid link:dev-cla.html[contributor license
89agreement] and who has link:dev-contributing.html[contributed] at least
90one change to any project on
91link:https://gerrit-review.googlesource.com/[
Marian Harbach34253372019-12-10 18:01:31 +010092gerrit-review.googlesource.com,role=external,window=_blank] is a contributor.
Edwin Kempin6671edc2019-04-24 11:22:53 +020093
94Contributions can be:
95
96* new features
97* bug fixes
98* code cleanups
99* documentation updates
100* release notes updates
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200101* propose link:#dev-design-docs[design docs] as part of the
102 link:dev-contributing.html#design-driven-contribution-process[
103 design-driven contribution process]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200104* scripts which are of interest to the community
105
106Contributors have all the permissions that link:#supporter[supporters]
107have. In addition they have signed a link:dev-cla.html[contributor
108license agreement] which enables them to push changes.
109
Edwin Kempin314be0c2022-08-01 12:16:56 +0200110Regular contributors can ask to be added to the `gerrit-trusted-contributors`
Edwin Kempin6671edc2019-04-24 11:22:53 +0200111group, which allows to:
112
113* add patch sets to changes of other users
114* propose project config changes (push changes for the
115 `refs/meta/config` branch
116
Edwin Kempin314be0c2022-08-01 12:16:56 +0200117Being member of the `gerrit-trusted-contributors` group includes further
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200118permissions (see link:#supporter[supporter] section above).
Edwin Kempin6671edc2019-04-24 11:22:53 +0200119
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200120It's highly appreciated if contributors engage in code reviews,
121link:dev-design-docs.html#review[design reviews] and mailing list
David Pursehouse5a4ae782019-09-18 12:11:51 +0900122discussions. If wanted, contributors can also serve as link:#mentor[
Edwin Kempinf13dfa92019-05-02 13:55:43 +0200123mentors] to support other contributors with getting their features
124done.
Edwin Kempin6671edc2019-04-24 11:22:53 +0200125
126Contributors may also be invited to join the Gerrit hackathons which
127happen regularly (e.g. twice a year). Hackathons are announced on the
Marian Harbach34253372019-12-10 18:01:31 +0100128link:https://groups.google.com/d/forum/repo-discuss[repo-discuss,role=external,window=_blank]
Edwin Kempin68d645a2019-05-03 15:35:58 +0200129mailing list (also see
130link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[
Marian Harbach34253372019-12-10 18:01:31 +0100131community calendar,role=external,window=_blank]).
Edwin Kempin6671edc2019-04-24 11:22:53 +0200132
133Outstanding contributors that are actively engaged in the community, in
134activities outlined above, may be nominated as link:#maintainer[
135maintainers].
136
137[[maintainer]]
138== Maintainer
139
140Maintainers are the gatekeepers of the project and are in charge of
David Pursehoused93d2592019-05-28 09:02:17 +0900141approving and submitting changes. Refer to the project homepage for
Marco Miller1e9df062019-06-20 12:42:27 -0400142the link:https://www.gerritcodereview.com/members.html#maintainers[
Marian Harbach34253372019-12-10 18:01:31 +0100143list of current maintainers,role=external,window=_blank].
Edwin Kempin6671edc2019-04-24 11:22:53 +0200144
145Maintainers should only approve changes that:
146
147* they fully understand
Edwin Kempin11932ad2019-04-24 15:58:02 +0200148* are in line with the project vision and project scope that are
David Pursehouse7840d812019-05-28 08:58:59 +0900149 defined by the link:dev-processes.html#steering-committee[engineering steering
Edwin Kempin11932ad2019-04-24 15:58:02 +0200150 committee], and should consult them, when in doubt
Edwin Kempin6671edc2019-04-24 11:22:53 +0200151* meet the quality expectations of the project (well-tested, properly
152 documented, scalable, backwards-compatible)
153* implement usable features or bug fixes (no incomplete/unusable
154 things)
155* are not authored by themselves (exceptions are changes which are
156 trivial according to the judgment of the maintainer and changes that
157 are required by the release process and branch management)
158
159Maintainers are trusted to assess changes, but are also expected to
160align with the other maintainers, especially if large new features are
161being added.
162
163Maintainers are highly encouraged to dedicate some of their time to the
164following tasks (but are not required to do so):
165
166* reviewing changes
167* mailing list discussions and support
168* bug fixing and bug triaging
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200169* supporting the
170 link:dev-processes.html#design-driven-contribution-process[
171 design-driven contribution process] by reviewing incoming
172 link:dev-design-docs.html[design docs] and raising concerns during
173 the design review
Edwin Kempinf13dfa92019-05-02 13:55:43 +0200174* serving as link:#mentor[mentor]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200175* doing releases (see link#release-manager[release manager])
176
177Maintainers can:
178
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200179* approve changes (vote `+2` on the `Code-Review` label); when
180 approving changes, `-1` votes on the `Code-Review` label can be
Edwin Kempin6671edc2019-04-24 11:22:53 +0200181 ignored if there is a good reason, in this case the reason should be
182 clearly communicated on the change
183* submit changes
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200184* block submission of changes if they disagree with how a feature is
185 being implemented (vote `-2` on the `Code-Review` label), but their
186 vote can be overruled by the steering committee, see
Edwin Kempin11932ad2019-04-24 15:58:02 +0200187 link:dev-processes.html#project-governance[Project Governance]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200188* nominate new maintainers and vote on nominations (see below)
189* administrate the link:https://groups.google.com/d/forum/repo-discuss[
Marian Harbach34253372019-12-10 18:01:31 +0100190 mailing list,role=external,window=_blank], the
191 link:https://bugs.chromium.org/p/gerrit/issues/list[issue tracker,role=external,window=_blank]
192 and the link:https://www.gerritcodereview.com/[homepage,role=external,window=_blank]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200193* gain permissions to do Gerrit releases and publish release artifacts
194* create new projects and groups on
195 link:https://gerrit-review.googlesource.com/[
Marian Harbach34253372019-12-10 18:01:31 +0100196 gerrit-review.googlesource.com,role=external,window=_blank]
Edwin Kempin9e8260f2019-05-06 09:42:51 +0200197* administrate the Gerrit projects on
198 link:https://gerrit-review.googlesource.com/[
Marian Harbach34253372019-12-10 18:01:31 +0100199 gerrit-review.googlesource.com,role=external,window=_blank] (e.g. edit ACLs, update project
Edwin Kempin9e8260f2019-05-06 09:42:51 +0200200 configuration)
Edwin Kempin68d645a2019-05-03 15:35:58 +0200201* create events in the
202 link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[
Marian Harbach34253372019-12-10 18:01:31 +0100203 community calendar,role=external,window=_blank]
Edwin Kempine4ac70e2019-07-22 10:27:45 +0200204* discuss with other maintainers on the private maintainers mailing
205 list and Slack channel
Edwin Kempin6671edc2019-04-24 11:22:53 +0200206
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200207In addition, maintainers from Google can:
Edwin Kempin6671edc2019-04-24 11:22:53 +0200208
209* approve/reject changes that update project dependencies (vote `-1` to
210 `+1` on the `Library-Compliance` label), see
211 link:dev-processes.html#upgrading-libraries[Upgrading Libraries]
212* edit permissions on the Gerrit core projects
213
Edwin Kempinde2c7e12019-05-06 11:57:24 +0200214[[maintainer-election]]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200215Maintainers can nominate new maintainers by posting a nomination on the
Edwin Kempinde2c7e12019-05-06 11:57:24 +0200216non-public maintainers mailing list. Nominations should stay open for
Edwin Kempin4bea34c2020-06-22 14:26:38 +0200217at least 10 calendar days so that all maintainers have a chance to
Edwin Kempinde2c7e12019-05-06 11:57:24 +0200218vote. To be approved as maintainer a minimum of 5 positive votes and no
219negative votes is required. This means if 5 positive votes without
Edwin Kempin4bea34c2020-06-22 14:26:38 +0200220negative votes have been reached and 10 calendar days have passed, any
Edwin Kempinde2c7e12019-05-06 11:57:24 +0200221maintainer can close the vote and welcome the new maintainer. Extending
222the voting period during holiday season or if there are not enough
223votes is possible, but the voting period should not exceed 1 month. If
224there are negative votes that are considered unjustified, the
225link:dev-processes.html#steering-committee[engineering steering
226committee] may get involved to decide whether the new maintainer can be
227accepted anyway.
Edwin Kempin6671edc2019-04-24 11:22:53 +0200228
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200229To become a maintainer, a link:#contributor[contributor] should have a
Edwin Kempin6671edc2019-04-24 11:22:53 +0200230history of deep technical contributions across different parts of the
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200231core Gerrit codebase. However, it is not required to be an expert on
Edwin Kempin6671edc2019-04-24 11:22:53 +0200232everything. Things that we want to see from potential maintainers
233include:
234
235* high quality code contributions
236* high quality code reviews
237* activity on the mailing list
238
Edwin Kempin11932ad2019-04-24 15:58:02 +0200239[[steering-committee-member]]
David Pursehouse7840d812019-05-28 08:58:59 +0900240== Engineering Steering Committee Member
Edwin Kempin11932ad2019-04-24 15:58:02 +0200241
David Pursehouse7840d812019-05-28 08:58:59 +0900242The Gerrit project has an Engineering Steering Committee (ESC) that
243governs the project, see link:dev-processes.html#project-governance[Project Governance].
Edwin Kempin11932ad2019-04-24 15:58:02 +0200244
245Members of the steering committee are expected to act in the interest
David Pursehoused93d2592019-05-28 09:02:17 +0900246of the Gerrit project and the whole Gerrit community. Refer to the project
Marco Miller1e9df062019-06-20 12:42:27 -0400247homepage for the link:https://www.gerritcodereview.com/members.html#engineering-steering-committee[
Marian Harbach34253372019-12-10 18:01:31 +0100248list of current committee members,role=external,window=_blank].
Edwin Kempin11932ad2019-04-24 15:58:02 +0200249
250For those that are familiar with scrum, the steering committee member
251role is similar to the role of an agile product owner.
252
253Steering committee members must be able to dedicate sufficient time to
254their role so that the steering committee can satisfy its
255responsibilities and live up to the promise of answering incoming
256requests in a timely manner.
257
David Pursehouse2d2ac842019-09-20 11:31:18 +0900258Community members may submit new items under the
Marian Harbach34253372019-12-10 18:01:31 +0100259link:https://bugs.chromium.org/p/gerrit/issues/list?q=component:ESC[ESC component,role=external,window=_blank]
David Pursehouse2d2ac842019-09-20 11:31:18 +0900260in the issue tracker, or add that component to existing items, to raise them to
261the attention of ESC members.
262
David Pursehouse6b99fd02019-09-21 16:10:07 +0900263Community members may contact the ESC members directly using
264mailto:gerritcodereview-esc@googlegroups.com[this mailing list].
265This is a group that remains private between the individual community
266member and ESC members.
267
Edwin Kempin11932ad2019-04-24 15:58:02 +0200268link:#maintainer[Maintainers] can become steering committee member by
269election, or by being appointed by Google (only for the seats that
270belong to Google).
271
Edwin Kempinf13dfa92019-05-02 13:55:43 +0200272[[mentor]]
273== Mentor
274
275A mentor is a link:#maintainer[maintainer] or link:#contributor[
276contributor] who is assigned to support the development of a feature
277that was specified in a link:dev-design-docs.html[design doc] and was
278approved by the link:dev-processes.html#steering-committee[steering
279committee].
280
281The goal of the mentor is to make the feature successful by:
282
283* doing timely reviews
284* providing technical guidance during code reviews
285* discussing details of the design
286* ensuring that the quality standards are met (well documented,
287 sufficient test coverage, backwards compatible etc.)
288
289The implementation is fully done by the contributor, but optionally
290mentors can help out with contributing some changes.
291
292link:#maintainer[Maintainers] and link:#contributor[contributors] can
293volunteer to generally serve as mentors, or to mentor specific features
294(e.g. if they see an upcoming feature on the roadmap that they are
295interested in). To volunteer as mentor, contact the
296link:dev-processes.html#steering-committee[steering committee] or
297comment on a change that adds a link:dev-design-docs.html#propose[
298design doc].
299
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200300[[community-manager]]
301== Community Manager
302
303Community managers should act as stakeholders for the Gerrit community
Marco Millerfd457032019-06-20 12:45:59 -0400304and focus on the health of the community. Refer to the project homepage
305for the link:https://www.gerritcodereview.com/members.html#community-managers[
Marian Harbach34253372019-12-10 18:01:31 +0100306list of current community managers,role=external,window=_blank].
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200307
308Tasks:
309
310* act as stakeholder for the Gerrit community towards the
311 link:dev-processes.html#steering-committee[steering committee]
312* ensure that the link:dev-contributing.html#mentorship[mentorship
313 process] works
314* deescalate conflicts in the Gerrit community
315* constantly improve community processes (e.g. contribution process)
316* watch out for community issues and address them proactively
317* serve as contact person for community issues
318
Marco Miller69ae5e82019-07-02 14:16:54 -0400319Community members may submit new items under the
Marian Harbach34253372019-12-10 18:01:31 +0100320link:https://bugs.chromium.org/p/gerrit/issues/list?q=component:Community[Community component,role=external,window=_blank]
Marco Miller69ae5e82019-07-02 14:16:54 -0400321backlog, for community managers to refine. Only public topics should be
322issued through that backlog.
323
324Sensitive topics are to be privately discussed using
325mailto:gerritcodereview-community-managers@googlegroups.com[this mailing list].
326This is a group that remains private between the individual community
327member and community managers.
328
Edwin Kempin553ff6d2019-05-29 14:10:00 +0200329The community managers should be a pair or trio that shares the work:
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200330
Edwin Kempin553ff6d2019-05-29 14:10:00 +0200331* One Googler that is appointed by Google.
332* One or two non-Googlers, elected by the community if there are more
333 than two candidates. If there is no candidate, we only have the one
334 community manager from Google.
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200335
336Community managers must not be link:#steering-committee-member[
337steering committee members] at the same time so that they can represent
338the community without conflict of interest.
339
Edwin Kempinc28febc2020-04-07 08:30:19 +0200340Anybody from the Gerrit community can candidate as community manager.
341This means, in contrast to candidating for the ESC, candidating as
342community manager is not limited to Gerrit maintainers. Otherwise the
343nomination process, election process and election period for the
Edwin Kempinb88b44c2019-04-30 12:02:53 +0200344non-Google community manager are the same as for
345link:dev-processes.html#steering-committee-election[steering committee
346members].
347
Edwin Kempin6671edc2019-04-24 11:22:53 +0200348[[release-manager]]
349== Release Manager
350
351Each major Gerrit release is driven by a Gerrit link:#maintainer[
352maintainer], the so called release manager.
353
354The release manager is responsible for:
355
356* identifying release blockers and informing about them
357* creating stable branches and updating version numbers
358* creating release candidates, the final major release and minor
359 releases
360* announcing releases on the mailing list and collecting feedback
361* ensuring that releases meet minimal quality expectations (Gerrit
362 starts, upgrade from previous version works)
363* publishing release artifacts
364* ensuring quality and completeness of the release notes
365* cherry-picking bug fixes, see link:dev-processes.html#backporting[
366 Backporting to stable branches]
367* estimating the risk of new features that are added on stable
368 branches, see link:dev-processes.html#dev-in-stable-branches[
369 Development in stable branches]
370
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200371Before each release, the release manager is appointed by consensus among
Edwin Kempin6671edc2019-04-24 11:22:53 +0200372the maintainers. Volunteers are welcome, but it's also a goal to fairly
373share this work between maintainers and contributing companies.
374
375GERRIT
376------
377Part of link:index.html[Gerrit Code Review]
378
379SEARCHBOX
380---------