Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 1 | = Gerrit Code Review - Supporting Roles |
| 2 | |
| 3 | As an open source project Gerrit has a large community of people that |
| 4 | are driving the project forward and there are many ways to engage with |
| 5 | the project and get involved. |
| 6 | |
| 7 | [[supporter]] |
| 8 | == Supporter |
| 9 | |
Alice Kober-Sotzek | ccdd895 | 2019-05-02 12:07:26 +0200 | [diff] [blame] | 10 | Supporters are individuals who help the Gerrit project and the Gerrit |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 11 | community in any way. This includes users that provide feedback to the |
| 12 | Gerrit community or get in touch by other means. |
| 13 | |
| 14 | There 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 Kempin | 68d645a | 2019-05-03 15:35:58 +0200 | [diff] [blame] | 20 | * attend community events like user summits (see |
| 21 | link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[ |
| 22 | community calendar]) |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 23 | * 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 | |
| 35 | Supporters 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-Sotzek | ccdd895 | 2019-05-02 12:07:26 +0200 | [diff] [blame] | 42 | Approvals normally happen within 1 work day. Posts of people who |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 43 | 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 Kempin | 099a5ec | 2019-04-25 16:15:14 +0200 | [diff] [blame^] | 57 | * 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 Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 62 | |
Alice Kober-Sotzek | ccdd895 | 2019-05-02 12:07:26 +0200 | [diff] [blame] | 63 | Supporters who want to engage further can get additional privileges |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 64 | on request (ask for it on the |
| 65 | link:https://groups.google.com/d/forum/repo-discuss[repo-discuss] |
| 66 | mailing 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 | |
| 79 | Supporters can become link:#contributor[contributors] by signing a |
| 80 | contributor license agreement and contributing code to the Gerrit |
| 81 | project. |
| 82 | |
| 83 | [[contributor]] |
| 84 | == Contributor |
| 85 | |
| 86 | Everyone who has a valid link:dev-cla.html[contributor license |
| 87 | agreement] and who has link:dev-contributing.html[contributed] at least |
| 88 | one change to any project on |
| 89 | link:https://gerrit-review.googlesource.com/[ |
| 90 | gerrit-review.googlesource.com] is a contributor. |
| 91 | |
| 92 | Contributions can be: |
| 93 | |
| 94 | * new features |
| 95 | * bug fixes |
| 96 | * code cleanups |
| 97 | * documentation updates |
| 98 | * release notes updates |
Edwin Kempin | 099a5ec | 2019-04-25 16:15:14 +0200 | [diff] [blame^] | 99 | * 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 Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 102 | * scripts which are of interest to the community |
| 103 | |
| 104 | Contributors have all the permissions that link:#supporter[supporters] |
| 105 | have. In addition they have signed a link:dev-cla.html[contributor |
| 106 | license agreement] which enables them to push changes. |
| 107 | |
| 108 | Regular contributors can ask to be added to the `gerrit-verifiers` |
| 109 | group, 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 | |
| 115 | Being member of the `gerrit-verifiers` group includes further |
Alice Kober-Sotzek | ccdd895 | 2019-05-02 12:07:26 +0200 | [diff] [blame] | 116 | permissions (see link:#supporter[supporter] section above). |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 117 | |
Edwin Kempin | 099a5ec | 2019-04-25 16:15:14 +0200 | [diff] [blame^] | 118 | It's highly appreciated if contributors engage in code reviews, |
| 119 | link:dev-design-docs.html#review[design reviews] and mailing list |
| 120 | discussions. |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 121 | |
| 122 | Contributors may also be invited to join the Gerrit hackathons which |
| 123 | happen regularly (e.g. twice a year). Hackathons are announced on the |
| 124 | link:https://groups.google.com/d/forum/repo-discuss[repo-discuss] |
Edwin Kempin | 68d645a | 2019-05-03 15:35:58 +0200 | [diff] [blame] | 125 | mailing list (also see |
| 126 | link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[ |
| 127 | community calendar]). |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 128 | |
| 129 | Outstanding contributors that are actively engaged in the community, in |
| 130 | activities outlined above, may be nominated as link:#maintainer[ |
| 131 | maintainers]. |
| 132 | |
| 133 | [[maintainer]] |
| 134 | == Maintainer |
| 135 | |
| 136 | Maintainers are the gatekeepers of the project and are in charge of |
| 137 | approving and submitting changes. |
| 138 | |
| 139 | Maintainers should only approve changes that: |
| 140 | |
| 141 | * they fully understand |
Edwin Kempin | 11932ad | 2019-04-24 15:58:02 +0200 | [diff] [blame] | 142 | * 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 Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 145 | * 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 | |
| 153 | Maintainers are trusted to assess changes, but are also expected to |
| 154 | align with the other maintainers, especially if large new features are |
| 155 | being added. |
| 156 | |
| 157 | Maintainers are highly encouraged to dedicate some of their time to the |
| 158 | following 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 Kempin | 099a5ec | 2019-04-25 16:15:14 +0200 | [diff] [blame^] | 163 | * 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 Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 168 | * doing releases (see link#release-manager[release manager]) |
| 169 | |
| 170 | Maintainers can: |
| 171 | |
Alice Kober-Sotzek | ccdd895 | 2019-05-02 12:07:26 +0200 | [diff] [blame] | 172 | * approve changes (vote `+2` on the `Code-Review` label); when |
| 173 | approving changes, `-1` votes on the `Code-Review` label can be |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 174 | ignored if there is a good reason, in this case the reason should be |
| 175 | clearly communicated on the change |
| 176 | * submit changes |
Edwin Kempin | 099a5ec | 2019-04-25 16:15:14 +0200 | [diff] [blame^] | 177 | * 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 Kempin | 11932ad | 2019-04-24 15:58:02 +0200 | [diff] [blame] | 180 | link:dev-processes.html#project-governance[Project Governance] |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 181 | * 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 Kempin | 9e8260f | 2019-05-06 09:42:51 +0200 | [diff] [blame] | 190 | * 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 Kempin | 68d645a | 2019-05-03 15:35:58 +0200 | [diff] [blame] | 194 | * create events in the |
| 195 | link:https://calendar.google.com/calendar?cid=Z29vZ2xlLmNvbV91YmIxcGxhNmlqNzg1b3FianI2MWg0dmRpc0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t[ |
| 196 | community calendar] |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 197 | |
Alice Kober-Sotzek | ccdd895 | 2019-05-02 12:07:26 +0200 | [diff] [blame] | 198 | In addition, maintainers from Google can: |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 199 | |
| 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 | |
| 205 | Maintainers can nominate new maintainers by posting a nomination on the |
| 206 | non-public maintainers mailing list. Nominations are approved by |
| 207 | consensus among the maintainers. This means maintainers can veto a |
| 208 | nomination. |
| 209 | |
Alice Kober-Sotzek | ccdd895 | 2019-05-02 12:07:26 +0200 | [diff] [blame] | 210 | To become a maintainer, a link:#contributor[contributor] should have a |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 211 | history of deep technical contributions across different parts of the |
Alice Kober-Sotzek | ccdd895 | 2019-05-02 12:07:26 +0200 | [diff] [blame] | 212 | core Gerrit codebase. However, it is not required to be an expert on |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 213 | everything. Things that we want to see from potential maintainers |
| 214 | include: |
| 215 | |
| 216 | * high quality code contributions |
| 217 | * high quality code reviews |
| 218 | * activity on the mailing list |
| 219 | |
Edwin Kempin | 11932ad | 2019-04-24 15:58:02 +0200 | [diff] [blame] | 220 | [[steering-committee-member]] |
| 221 | == Steering Committee Member |
| 222 | |
| 223 | The Gerrit project has a steering committee that governs the project, |
| 224 | see link:dev-processes.html#project-governance[Project Governance]. |
| 225 | |
| 226 | Members of the steering committee are expected to act in the interest |
| 227 | of the Gerrit project and the whole Gerrit community. |
| 228 | |
| 229 | For those that are familiar with scrum, the steering committee member |
| 230 | role is similar to the role of an agile product owner. |
| 231 | |
| 232 | Steering committee members must be able to dedicate sufficient time to |
| 233 | their role so that the steering committee can satisfy its |
| 234 | responsibilities and live up to the promise of answering incoming |
| 235 | requests in a timely manner. |
| 236 | |
| 237 | link:#maintainer[Maintainers] can become steering committee member by |
| 238 | election, or by being appointed by Google (only for the seats that |
| 239 | belong to Google). |
| 240 | |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 241 | [[release-manager]] |
| 242 | == Release Manager |
| 243 | |
| 244 | Each major Gerrit release is driven by a Gerrit link:#maintainer[ |
| 245 | maintainer], the so called release manager. |
| 246 | |
| 247 | The 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-Sotzek | ccdd895 | 2019-05-02 12:07:26 +0200 | [diff] [blame] | 264 | Before each release, the release manager is appointed by consensus among |
Edwin Kempin | 6671edc | 2019-04-24 11:22:53 +0200 | [diff] [blame] | 265 | the maintainers. Volunteers are welcome, but it's also a goal to fairly |
| 266 | share this work between maintainers and contributing companies. |
| 267 | |
| 268 | GERRIT |
| 269 | ------ |
| 270 | Part of link:index.html[Gerrit Code Review] |
| 271 | |
| 272 | SEARCHBOX |
| 273 | --------- |