blob: a093073138c575ce67426b8e0ddb6ff2de749c8e [file] [log] [blame]
Edwin Kempin6671edc2019-04-24 11:22:53 +02001= Gerrit Code Review - Supporting Roles
2
3As an open source project Gerrit has a large community of people that
4are driving the project forward and there are many ways to engage with
5the project and get involved.
6
7[[supporter]]
8== Supporter
9
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +020010Supporters are individuals who help the Gerrit project and the Gerrit
Edwin Kempin6671edc2019-04-24 11:22:53 +020011community in any way. This includes users that provide feedback to the
12Gerrit community or get in touch by other means.
13
14There are many possibilities to support the project, e.g.:
15
16* get involved in discussions on the
17 link:https://groups.google.com/d/forum/repo-discuss[repo-discuss]
18 mailing list (post your questions, provide feedback, share your
19 experiences, help other users)
Edwin Kempin68d645a2019-05-03 15:35:58 +020020* attend community events like user summits (see
21 link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[
22 community calendar])
Edwin Kempin6671edc2019-04-24 11:22:53 +020023* report link:https://bugs.chromium.org/p/gerrit/issues/list[issues]
24 and help to clarify existing issues
25* provide feedback on
26 link:https://www.gerritcodereview.com/releases-readme.html[new
27 releases and release candidates]
28* review
29 link:https://gerrit-review.googlesource.com/q/status:open[changes]
30 and help to verify that they work as advertised, comment if you like
31 or dislike a feature
32* serve as contact person for a proprietary Gerrit installation and
33 channel feedback from users back to the Gerrit community
34
35Supporters can:
36
37* post on the
38 link:https://groups.google.com/d/forum/repo-discuss[repo-discuss]
39 mailing list (Please note that the `repo-discuss` mailing list is
40 managed to prevent spam posts. This means posts from new participants
41 must be approved manually before they appear on the mailing list.
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +020042 Approvals normally happen within 1 work day. Posts of people who
Edwin Kempin6671edc2019-04-24 11:22:53 +020043 participate in mailing list discussions frequently are approved
44 automatically)
45* comment on
46 link:https://gerrit-review.googlesource.com/q/status:open[changes]
47 and vote from `-1` to `+1` on the `Code-Review` label (these votes
48 are important to understand the interest in a change and to address
49 concerns early, however link:#maintainer[maintainers] can
50 overrule/ignore these votes)
51* download changes to try them out, feedback can be provided as
52 comments and by voting (preferably on the `Verified` label,
53 permissions to vote on the `Verified` label are granted by request,
54 see below)
55* file issues in the link:https://bugs.chromium.org/p/gerrit/issues/list[
56 issue tracker] and comment on existing issues
Edwin Kempin099a5ec2019-04-25 16:15:14 +020057* support the
58 link:dev-processes.html#design-driven-contribution-process[
59 design-driven contribution process] by reviewing incoming
60 link:dev-design-docs.html[design docs] and raising concerns during
61 the design review
Edwin Kempin6671edc2019-04-24 11:22:53 +020062
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +020063Supporters who want to engage further can get additional privileges
Edwin Kempin6671edc2019-04-24 11:22:53 +020064on request (ask for it on the
65link:https://groups.google.com/d/forum/repo-discuss[repo-discuss]
66mailing list):
67
68* become member of the `gerrit-verifiers` group, which allows to:
69** vote on the `Verified` and `Code-Style` labels
70** edit hashtags on all changes
71** edit topics on all open changes
72** abandon changes
73* approve posts to the
74 link:https://groups.google.com/d/forum/repo-discuss[repo-discuss]
75 mailing list
76* administrate issues in the
77 link:https://bugs.chromium.org/p/gerrit/issues/list[issue tracker]
78
79Supporters can become link:#contributor[contributors] by signing a
80contributor license agreement and contributing code to the Gerrit
81project.
82
83[[contributor]]
84== Contributor
85
86Everyone who has a valid link:dev-cla.html[contributor license
87agreement] and who has link:dev-contributing.html[contributed] at least
88one change to any project on
89link:https://gerrit-review.googlesource.com/[
90gerrit-review.googlesource.com] is a contributor.
91
92Contributions can be:
93
94* new features
95* bug fixes
96* code cleanups
97* documentation updates
98* release notes updates
Edwin Kempin099a5ec2019-04-25 16:15:14 +020099* propose link:#dev-design-docs[design docs] as part of the
100 link:dev-contributing.html#design-driven-contribution-process[
101 design-driven contribution process]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200102* scripts which are of interest to the community
103
104Contributors have all the permissions that link:#supporter[supporters]
105have. In addition they have signed a link:dev-cla.html[contributor
106license agreement] which enables them to push changes.
107
108Regular contributors can ask to be added to the `gerrit-verifiers`
109group, which allows to:
110
111* add patch sets to changes of other users
112* propose project config changes (push changes for the
113 `refs/meta/config` branch
114
115Being member of the `gerrit-verifiers` group includes further
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200116permissions (see link:#supporter[supporter] section above).
Edwin Kempin6671edc2019-04-24 11:22:53 +0200117
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200118It's highly appreciated if contributors engage in code reviews,
119link:dev-design-docs.html#review[design reviews] and mailing list
120discussions.
Edwin Kempin6671edc2019-04-24 11:22:53 +0200121
122Contributors may also be invited to join the Gerrit hackathons which
123happen regularly (e.g. twice a year). Hackathons are announced on the
124link:https://groups.google.com/d/forum/repo-discuss[repo-discuss]
Edwin Kempin68d645a2019-05-03 15:35:58 +0200125mailing list (also see
126link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[
127community calendar]).
Edwin Kempin6671edc2019-04-24 11:22:53 +0200128
129Outstanding contributors that are actively engaged in the community, in
130activities outlined above, may be nominated as link:#maintainer[
131maintainers].
132
133[[maintainer]]
134== Maintainer
135
136Maintainers are the gatekeepers of the project and are in charge of
137approving and submitting changes.
138
139Maintainers should only approve changes that:
140
141* they fully understand
Edwin Kempin11932ad2019-04-24 15:58:02 +0200142* are in line with the project vision and project scope that are
143 defined by the link:dev-processes.html#steering-committee[steering
144 committee], and should consult them, when in doubt
Edwin Kempin6671edc2019-04-24 11:22:53 +0200145* meet the quality expectations of the project (well-tested, properly
146 documented, scalable, backwards-compatible)
147* implement usable features or bug fixes (no incomplete/unusable
148 things)
149* are not authored by themselves (exceptions are changes which are
150 trivial according to the judgment of the maintainer and changes that
151 are required by the release process and branch management)
152
153Maintainers are trusted to assess changes, but are also expected to
154align with the other maintainers, especially if large new features are
155being added.
156
157Maintainers are highly encouraged to dedicate some of their time to the
158following tasks (but are not required to do so):
159
160* reviewing changes
161* mailing list discussions and support
162* bug fixing and bug triaging
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200163* supporting the
164 link:dev-processes.html#design-driven-contribution-process[
165 design-driven contribution process] by reviewing incoming
166 link:dev-design-docs.html[design docs] and raising concerns during
167 the design review
Edwin Kempin6671edc2019-04-24 11:22:53 +0200168* doing releases (see link#release-manager[release manager])
169
170Maintainers can:
171
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200172* approve changes (vote `+2` on the `Code-Review` label); when
173 approving changes, `-1` votes on the `Code-Review` label can be
Edwin Kempin6671edc2019-04-24 11:22:53 +0200174 ignored if there is a good reason, in this case the reason should be
175 clearly communicated on the change
176* submit changes
Edwin Kempin099a5ec2019-04-25 16:15:14 +0200177* block submission of changes if they disagree with how a feature is
178 being implemented (vote `-2` on the `Code-Review` label), but their
179 vote can be overruled by the steering committee, see
Edwin Kempin11932ad2019-04-24 15:58:02 +0200180 link:dev-processes.html#project-governance[Project Governance]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200181* nominate new maintainers and vote on nominations (see below)
182* administrate the link:https://groups.google.com/d/forum/repo-discuss[
183 mailing list], the
184 link:https://bugs.chromium.org/p/gerrit/issues/list[issue tracker]
185 and the link:https://www.gerritcodereview.com/[homepage]
186* gain permissions to do Gerrit releases and publish release artifacts
187* create new projects and groups on
188 link:https://gerrit-review.googlesource.com/[
189 gerrit-review.googlesource.com]
Edwin Kempin9e8260f2019-05-06 09:42:51 +0200190* administrate the Gerrit projects on
191 link:https://gerrit-review.googlesource.com/[
192 gerrit-review.googlesource.com] (e.g. edit ACLs, update project
193 configuration)
Edwin Kempin68d645a2019-05-03 15:35:58 +0200194* create events in the
195 link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[
196 community calendar]
Edwin Kempin6671edc2019-04-24 11:22:53 +0200197
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200198In addition, maintainers from Google can:
Edwin Kempin6671edc2019-04-24 11:22:53 +0200199
200* approve/reject changes that update project dependencies (vote `-1` to
201 `+1` on the `Library-Compliance` label), see
202 link:dev-processes.html#upgrading-libraries[Upgrading Libraries]
203* edit permissions on the Gerrit core projects
204
205Maintainers can nominate new maintainers by posting a nomination on the
206non-public maintainers mailing list. Nominations are approved by
207consensus among the maintainers. This means maintainers can veto a
208nomination.
209
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200210To become a maintainer, a link:#contributor[contributor] should have a
Edwin Kempin6671edc2019-04-24 11:22:53 +0200211history of deep technical contributions across different parts of the
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200212core Gerrit codebase. However, it is not required to be an expert on
Edwin Kempin6671edc2019-04-24 11:22:53 +0200213everything. Things that we want to see from potential maintainers
214include:
215
216* high quality code contributions
217* high quality code reviews
218* activity on the mailing list
219
Edwin Kempin11932ad2019-04-24 15:58:02 +0200220[[steering-committee-member]]
221== Steering Committee Member
222
223The Gerrit project has a steering committee that governs the project,
224see link:dev-processes.html#project-governance[Project Governance].
225
226Members of the steering committee are expected to act in the interest
227of the Gerrit project and the whole Gerrit community.
228
229For those that are familiar with scrum, the steering committee member
230role is similar to the role of an agile product owner.
231
232Steering committee members must be able to dedicate sufficient time to
233their role so that the steering committee can satisfy its
234responsibilities and live up to the promise of answering incoming
235requests in a timely manner.
236
237link:#maintainer[Maintainers] can become steering committee member by
238election, or by being appointed by Google (only for the seats that
239belong to Google).
240
Edwin Kempin6671edc2019-04-24 11:22:53 +0200241[[release-manager]]
242== Release Manager
243
244Each major Gerrit release is driven by a Gerrit link:#maintainer[
245maintainer], the so called release manager.
246
247The release manager is responsible for:
248
249* identifying release blockers and informing about them
250* creating stable branches and updating version numbers
251* creating release candidates, the final major release and minor
252 releases
253* announcing releases on the mailing list and collecting feedback
254* ensuring that releases meet minimal quality expectations (Gerrit
255 starts, upgrade from previous version works)
256* publishing release artifacts
257* ensuring quality and completeness of the release notes
258* cherry-picking bug fixes, see link:dev-processes.html#backporting[
259 Backporting to stable branches]
260* estimating the risk of new features that are added on stable
261 branches, see link:dev-processes.html#dev-in-stable-branches[
262 Development in stable branches]
263
Alice Kober-Sotzekccdd8952019-05-02 12:07:26 +0200264Before each release, the release manager is appointed by consensus among
Edwin Kempin6671edc2019-04-24 11:22:53 +0200265the maintainers. Volunteers are welcome, but it's also a goal to fairly
266share this work between maintainers and contributing companies.
267
268GERRIT
269------
270Part of link:index.html[Gerrit Code Review]
271
272SEARCHBOX
273---------