brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 1 | # Code Reviews |
| 2 | |
| 3 | Code reviews are a central part of developing high-quality code for Chromium. |
Lei Zhang | 3b32caa | 2021-03-22 17:24:19 | [diff] [blame] | 4 | All change lists (CLs) must be reviewed. |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 5 | |
Vincent Scheib | 66fc2d4 | 2024-10-30 02:55:03 | [diff] [blame] | 6 | This page documents policy rules regarding code changes. |
| 7 | |
| 8 | See also: |
| 9 | - The general patch, upload, and land process in [contributing code](contributing.md#code-review) |
| 10 | - [Code of conduct](../CODE_OF_CONDUCT.md) |
| 11 | - [Respectful Changes](cl_respect.md) |
| 12 | - [Respectful Code Reviews](cr_respect.md) |
| 13 | - The code review changes and OWNERS policy changes launched on March 24, 2021, see |
Jason D. Clinton | c38b61d8 | 2021-04-20 20:02:14 | [diff] [blame] | 14 | [Mandatory Code Review and Native OWNERS](code_review_owners.md). |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 15 | |
| 16 | # Code review policies |
| 17 | |
Ramzi N | be25013d | 2023-11-02 00:47:53 | [diff] [blame] | 18 | Any [committer](https://www.chromium.org/getting-involved/become-a-committer/#what-is-a-committer) can review code, but |
| 19 | an owner must provide a review for each directory you are touching. Ideally you should choose |
| 20 | reviewers who are familiar with the area of code you are touching. If you have doubts, look |
| 21 | at the `git blame` for the file and the `OWNERS` files ([more info](#owners-files)). |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 22 | |
John Abd-El-Malek | dfd1edc | 2021-02-24 22:22:40 | [diff] [blame] | 23 | To indicate a positive review, the reviewer provides a `Code-Review +1` in |
Michael Giuffrida | af36705 | 2018-03-22 20:22:34 | [diff] [blame] | 24 | Gerrit, also known as an LGTM ("Looks Good To Me"). A score of "-1" indicates |
| 25 | the change should not be submitted as-is. |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 26 | |
Ramzi N | be25013d | 2023-11-02 00:47:53 | [diff] [blame] | 27 | Submissions to the chromium/src repository by a change contributor who is not a Chromium |
| 28 | committer require two committers to Code-Review+1 the submission. If the owner of the CL |
| 29 | is already a committer, then only one other committer is needed to review. |
| 30 | |
Michael Giuffrida | af36705 | 2018-03-22 20:22:34 | [diff] [blame] | 31 | If you have multiple reviewers, provide a message indicating what you expect |
| 32 | from each reviewer. Otherwise people might assume their input is not required |
| 33 | or waste time with redundant reviews. |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 34 | |
Annie Sullivan | d04212e7 | 2017-10-19 21:11:32 | [diff] [blame] | 35 | Please also read [Respectful Changes](cl_respect.md) and |
| 36 | [Respectful Code Reviews](cr_respect.md). |
| 37 | |
Robert Sesek | a8ee4a9 | 2023-07-13 23:04:30 | [diff] [blame] | 38 | There are also a [collection of tips](cl_tips.md) for productive reviews, though |
| 39 | these are advisory and not policy. |
| 40 | |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 41 | #### Expectations for all reviewers |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 42 | |
Erik Chen | b3d9310f | 2025-01-07 19:41:35 | [diff] [blame] | 43 | * As a reviewer, aim to provide actionable feedback 3 times per work day. The |
| 44 | expectation is that if you're in the same time zone as the CL author, there |
| 45 | are 3 review iterations. If there is a time zone divide, aim for 2 review |
| 46 | iterations. |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 47 | |
Erik Chen | b3d9310f | 2025-01-07 19:41:35 | [diff] [blame] | 48 | * Use the status field in Gerrit settings to indicate if you're away and when |
Mike Frysinger | 7b15bde | 2018-05-15 09:28:05 | [diff] [blame] | 49 | you'll be back. |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 50 | |
Erik Chen | b3d9310f | 2025-01-07 19:41:35 | [diff] [blame] | 51 | * Don't generally discourage people from sending you code reviews. This |
Michael Giuffrida | af36705 | 2018-03-22 20:22:34 | [diff] [blame] | 52 | includes using a blanket "slow" in your status field. |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 53 | |
Erik Chen | 8bda7ba | 2025-02-26 21:30:29 | [diff] [blame] | 54 | #### Expectations for all authors |
| 55 | |
| 56 | * If a reviewer does not respond within 2 works days, add another |
| 57 | reviewer onto the CL. Do not remove the initial reviewer. |
| 58 | |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 59 | ## OWNERS files |
| 60 | |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 61 | In various directories there are files named `OWNERS` that list the email |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 62 | addresses of people qualified to review changes in that directory. You must |
| 63 | get a positive review from an owner of each directory your change touches. |
| 64 | |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 65 | Owners files are recursive, so each file also applies to its subdirectories. |
| 66 | It's generally best to pick more specific owners. People listed in higher-level |
thestig | 9208d8ba | 2017-06-09 22:05:32 | [diff] [blame] | 67 | directories may have less experience with the code in question. For example, |
| 68 | the reviewers in the `//chrome/browser/component_name/OWNERS` file will likely |
| 69 | be more familiar with code in `//chrome/browser/component_name/sub_component` |
| 70 | than reviewers in the higher-level `//chrome/OWNERS` file. |
| 71 | |
Lei Zhang | 3b32caa | 2021-03-22 17:24:19 | [diff] [blame] | 72 | More detail on the owners file format is provided [here](#owners-file-details). |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 73 | |
Lei Zhang | 3b32caa | 2021-03-22 17:24:19 | [diff] [blame] | 74 | *Tip:* The `git cl owners` command can help find owners. Gerrit also provides |
Jason D. Clinton | c38b61d8 | 2021-04-20 20:02:14 | [diff] [blame] | 75 | this functionality in the Reviewers field of CLs. |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 76 | |
| 77 | While owners must approve all patches, any committer can contribute to the |
| 78 | review. In some directories the owners can be overloaded or there might be |
| 79 | people not listed as owners who are more familiar with the low-level code in |
| 80 | question. In these cases it's common to request a low-level review from an |
| 81 | appropriate person, and then request a high-level owner review once that's |
| 82 | complete. As always, be clear what you expect of each reviewer to avoid |
| 83 | duplicated work. |
| 84 | |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 85 | Owners do not have to pick other owners for reviews. Since they should already |
| 86 | be familiar with the code in question, a thorough review from any appropriate |
| 87 | committer is sufficient. |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 88 | |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 89 | #### Expectations of owners |
| 90 | |
| 91 | The existing owners of a directory approve additions to the list. It is |
Wei-Yin Chen (陳威尹) | 681bc32 | 2017-07-20 01:55:11 | [diff] [blame] | 92 | preferable to have many directories, each with a smaller number of specific |
Dirk Pranke | 02c8906f | 2025-01-28 18:20:57 | [diff] [blame] | 93 | owners rather than large directories with many owners. Owners must be |
| 94 | [committers](https://www.chromium.org/getting-involved/become-a-committer/) |
| 95 | with at least 3 months' tenure, and in addition should: |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 96 | |
Dirk Pranke | 3042ec9 | 2022-01-12 16:53:40 | [diff] [blame] | 97 | * Demonstrate excellent judgment, teamwork and ability to uphold |
| 98 | [Chromium development principles](contributing.md). |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 99 | |
| 100 | * Be already acting as an owner, providing high-quality reviews and design |
Dirk Pranke | 4f9740c | 2018-10-17 03:01:06 | [diff] [blame] | 101 | feedback. |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 102 | |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 103 | * Have submitted a substantial number of non-trivial changes to the affected |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 104 | directory. |
| 105 | |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 106 | * Have committed or reviewed substantial work to the affected directory |
Dirk Pranke | 4f9740c | 2018-10-17 03:01:06 | [diff] [blame] | 107 | within the last ninety days. |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 108 | |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 109 | * Have the bandwidth to contribute to reviews in a timely manner. If the load |
| 110 | is unsustainable, work to expand the number of owners. Don't try to |
| 111 | discourage people from sending reviews, including writing "slow" or |
| 112 | "emeritus" after your name. |
| 113 | |
Dirk Pranke | 3042ec9 | 2022-01-12 16:53:40 | [diff] [blame] | 114 | Seldom-updated directories may have exceptions to the "substantiality" and |
| 115 | "recency" requirements. |
| 116 | |
| 117 | Directories in `//third_party` should list those most familiar with the |
| 118 | library, regardless of how often the code is updated. |
| 119 | |
Rick Byers | 2e7b249 | 2025-03-17 13:03:24 | [diff] [blame] | 120 | #### Addition of new OWNERS |
| 121 | |
| 122 | New OWNERS are added by consensus of the existing OWNERS. |
| 123 | |
| 124 | Some directories have more well-defined processes for updating their OWNERS |
| 125 | file which will be documented at the top of the OWNERS file itself (such as in |
Rick Byers | 4095ea74 | 2025-03-17 21:43:48 | [diff] [blame] | 126 | [blink/renderer/](../third_party/blink/renderer/OWNERS)). |
Rick Byers | 2e7b249 | 2025-03-17 13:03:24 | [diff] [blame] | 127 | |
| 128 | CLs for modifying OWNERS files should cc all other OWNERS for awareness (unless |
| 129 | another awareness mechanism exists), and concerns may be raised even after |
| 130 | the change has landed. Any disagreements should be escalated up to higher-level |
| 131 | directory OWNERS or up to top-level [ATL_OWNERS](../ATL_OWNERS). |
| 132 | |
Dirk Pranke | 3042ec9 | 2022-01-12 16:53:40 | [diff] [blame] | 133 | #### Removal of owners |
| 134 | |
| 135 | If a code owner is not meeting the [expectations of |
| 136 | owners](#expectations-of-owners) listed above for more than one quarter (and |
| 137 | they are not on a leave during that time), then they may be removed by any |
| 138 | co-owner or an owner from the parent directory after a 4-week notice, using |
| 139 | the following process: |
| 140 | |
| 141 | * Upload a change removing the owner and copy all owners in that directory, |
| 142 | including the owner in question. |
| 143 | * If the affected owner approves the change, it may be landed immediately. |
| 144 | * Otherwise, the change author must wait five working days for feedback from |
| 145 | the other owners. |
| 146 | * After that time has elapsed, if the change has received 3 approvals |
| 147 | with no objections from anyone else, the change may be landed. |
| 148 | * If the directory does not have 4 owners, then the decision should |
| 149 | be escalated to the owners of the parent directory (or directories) |
Andrew Mitchell | 04049fe | 2024-04-26 00:53:30 | [diff] [blame] | 150 | as necessary to provide enough votes. |
Dirk Pranke | 3042ec9 | 2022-01-12 16:53:40 | [diff] [blame] | 151 | * If there are objections, then the decision should be escalated to |
Rick Byers | 2e7b249 | 2025-03-17 13:03:24 | [diff] [blame] | 152 | the [ATL_OWNERS](../ATL_OWNERS) for resolution. |
brettw | 40e953e | 2017-02-08 17:49:28 | [diff] [blame] | 153 | |
Kentaro Hara | 52294ae | 2022-08-12 07:37:30 | [diff] [blame] | 154 | Note: For the purpose of not slowing down code review, Chromium removes |
| 155 | inactive owners (e.g., those who made no contributions for multiple quarters) |
| 156 | on a regular basis. The script does not take into account personal situations |
| 157 | like a long leave. If you were inactive only for a certain period of time |
| 158 | while you were on a long leave and have been meeting the above owner's |
| 159 | expectations in other times, you can create a CL to re-add yourself and land |
| 160 | after getting local owner's approval (you can refer to this policy in the CL). |
Yulan Lin | 33168662 | 2023-03-30 23:10:51 | [diff] [blame] | 161 | The removal script will cc the removed owner and one other owner to avoid spam. |
Kentaro Hara | 52294ae | 2022-08-12 07:37:30 | [diff] [blame] | 162 | |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 163 | ### OWNERS file details |
| 164 | |
Anthony Polito | 9ce2a48 | 2022-02-10 18:39:49 | [diff] [blame] | 165 | Refer to the [owners plugin](https://github.com/GerritCodeReview/plugins_code-owners/blob/master/resources/Documentation/backend-find-owners.md) |
thestig | 9208d8ba | 2017-06-09 22:05:32 | [diff] [blame] | 166 | for all details on the file format. |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 167 | |
| 168 | This example indicates that two people are owners, in addition to any owners |
| 169 | from the parent directory. `git cl owners` will list the comment after an |
| 170 | owner address, so this is a good place to include restrictions or special |
| 171 | instructions. |
| 172 | ``` |
| 173 | # You can include comments like this. |
| 174 | [email protected] |
| 175 | [email protected] # Only for the frobinator. |
| 176 | ``` |
| 177 | |
| 178 | A `*` indicates that all committers are owners: |
| 179 | ``` |
| 180 | * |
| 181 | ``` |
| 182 | |
brettw | d040b0be | 2017-02-09 19:11:33 | [diff] [blame] | 183 | The text `set noparent` will stop owner propagation from parent directories. |
Jochen Eisinger | ea8f92d8 | 2017-08-02 17:40:14 | [diff] [blame] | 184 | This should be rarely used. If you want to use `set noparent` except for IPC |
John Abd-El-Malek | 704bca0 | 2022-12-14 18:47:59 | [diff] [blame] | 185 | related files, please first reach out to [email protected]. |
Jochen Eisinger | ea8f92d8 | 2017-08-02 17:40:14 | [diff] [blame] | 186 | |
Jochen Eisinger | 8f0c8d8 | 2019-10-25 18:28:27 | [diff] [blame] | 187 | You have to use `set noparent` together with a reference to a file that lists |
| 188 | the owners for the given use case. Approved use cases are listed in |
| 189 | `//build/OWNERS.setnoparent`. Owners listed in those files are expected to |
John Abd-El-Malek | 704bca0 | 2022-12-14 18:47:59 | [diff] [blame] | 190 | execute special governance functions such as ATL reviews or ipc security review. |
Jochen Eisinger | 8f0c8d8 | 2019-10-25 18:28:27 | [diff] [blame] | 191 | Every set of owners should implement their own means of auditing membership. The |
| 192 | minimum expectation is that membership in those files is reevaluated on |
| 193 | project, or affiliation changes. |
| 194 | |
John Abd-El-Malek | 704bca0 | 2022-12-14 18:47:59 | [diff] [blame] | 195 | In this example, only the ATLs are owners: |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 196 | ``` |
| 197 | set noparent |
John Abd-El-Malek | 704bca0 | 2022-12-14 18:47:59 | [diff] [blame] | 198 | file://ATL_OWNERS |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 199 | ``` |
| 200 | |
| 201 | The `per-file` directive allows owners to be added that apply only to files |
Wei-Yin Chen (陳威尹) | 681bc32 | 2017-07-20 01:55:11 | [diff] [blame] | 202 | matching a pattern. In this example, owners from the parent directory |
brettw | 2019b9e | 2017-02-09 06:40:20 | [diff] [blame] | 203 | apply, plus one person for some classes of files, and all committers are |
| 204 | owners for the readme: |
| 205 | ``` |
| 206 | per-file [email protected] |
| 207 | per-file foo.*[email protected] |
| 208 | |
| 209 | per-file readme.txt=* |
| 210 | ``` |
| 211 | |
| 212 | Other `OWNERS` files can be included by reference by listing the path to the |
| 213 | file with `file://...`. This example indicates that only the people listed in |
| 214 | `//ipc/SECURITY_OWNERS` can review the messages files: |
| 215 | ``` |
| 216 | per-file *_messages*.h=set noparent |
| 217 | per-file *_messages*.h=file://ipc/SECURITY_OWNERS |
Wei-Yin Chen (陳威尹) | 1fb88e2 | 2023-01-09 18:39:55 | [diff] [blame] | 218 | ``` |
Anthony Polito | 9ce2a48 | 2022-02-10 18:39:49 | [diff] [blame] | 219 | |
| 220 | File globbing is supported using the |
Wei-Yin Chen (陳威尹) | 1fb88e2 | 2023-01-09 18:39:55 | [diff] [blame] | 221 | [simple path expression](https://github.com/GerritCodeReview/plugins_code-owners/blob/master/resources/Documentation/path-expressions.md#simple-path-expressions) |
| 222 | format. |
Steve Kobes | f885edf | 2018-09-11 13:41:11 | [diff] [blame] | 223 | |
Vincent Scheib | e360db9 | 2025-01-23 17:12:07 | [diff] [blame] | 224 | Owners annotated with `#{LAST_RESORT_SUGGESTION}` in their comment will be |
| 225 | omitted when suggesting code owners, except if dropping these code owners would |
| 226 | make the suggestion result empty or if these code owners are already reviewers |
| 227 | of the change. |
| 228 | |
Jason Clinton | 0daf7b0 | 2021-02-09 20:36:22 | [diff] [blame] | 229 | ### Owners-Override |
Steve Kobes | f885edf | 2018-09-11 13:41:11 | [diff] [blame] | 230 | |
John Abd-El-Malek | dfd1edc | 2021-02-24 22:22:40 | [diff] [blame] | 231 | Setting the `Owners-Override +1` label will bypass OWNERS enforcement. Active |
dpapad | eb6dadcf | 2024-09-23 19:22:51 | [diff] [blame] | 232 | [gardeners](gardener.md), Release Program Managers, |
Dirk Pranke | 3042ec9 | 2022-01-12 16:53:40 | [diff] [blame] | 233 | [Large Scale Changes](#large-scale-changes), |
| 234 | [Global Approvers](#global-approvals) reviewers, |
John Abd-El-Malek | 704bca0 | 2022-12-14 18:47:59 | [diff] [blame] | 235 | [Chrome ATLs](../ATL_OWNERS) |
Dirk Pranke | 3042ec9 | 2022-01-12 16:53:40 | [diff] [blame] | 236 | have this capability. The power to use Owners-Override should be restricted |
Kentaro Hara | 7e85d34a | 2021-10-08 15:33:16 | [diff] [blame] | 237 | as follows: |
| 238 | |
dpapad | eb6dadcf | 2024-09-23 19:22:51 | [diff] [blame] | 239 | * Active gardeners and Release Program Managers can set Owners-Override only |
| 240 | on CLs needed for gardening and releasing (e.g., revert, reland, test fix, |
Kentaro Hara | 23878c6 | 2022-01-28 00:18:41 | [diff] [blame] | 241 | cherry-pick). |
dpapad | eb6dadcf | 2024-09-23 19:22:51 | [diff] [blame] | 242 | * Large Scale Change reviewers can set Owners-Override only on gardening CLs |
Kentaro Hara | 0cdc607 | 2021-10-15 00:35:16 | [diff] [blame] | 243 | and CLs about the approved Large Scale Change. |
dpapad | eb6dadcf | 2024-09-23 19:22:51 | [diff] [blame] | 244 | * Global approvers can set Owners-Override only on gardening CLs and |
Kentaro Hara | 0cdc607 | 2021-10-15 00:35:16 | [diff] [blame] | 245 | mechanical CLs associated with their API changes. For example, |
| 246 | //base/OWNERS can set Owners-Override on mechanical CLs associated with |
| 247 | //base/ API changes. |
John Abd-El-Malek | 704bca0 | 2022-12-14 18:47:59 | [diff] [blame] | 248 | * Chrome ATLs can set Owners-Override on any changes to help with cases that |
| 249 | cannot be handled by the above groups and expedite CLs when LSC is too |
| 250 | heavyweight. However, please use one of the above groups before asking |
| 251 | Chrome ATLs. |
Kentaro Hara | 0cdc607 | 2021-10-15 00:35:16 | [diff] [blame] | 252 | |
dpapad | eb6dadcf | 2024-09-23 19:22:51 | [diff] [blame] | 253 | When you need Owners-Override on gardening CLs, please reach out to the |
Kentaro Hara | 0cdc607 | 2021-10-15 00:35:16 | [diff] [blame] | 254 | Active Sheriffs and Release Program Managers first. If none of them is |
| 255 | available, please send an email to [email protected] for help. |
| 256 | |
Dirk Pranke | 3042ec9 | 2022-01-12 16:53:40 | [diff] [blame] | 257 | Note that Owners-Override by itself is not enough on your own CLs. Where this |
dpapad | eb6dadcf | 2024-09-23 19:22:51 | [diff] [blame] | 258 | matters is when you are gardening. For example, if you want to revert or |
Stephen McGruer | 282391a | 2022-08-04 16:46:55 | [diff] [blame] | 259 | disable a test, your Owners-Override on the CL is not enough. You also need |
| 260 | either another committer to LGTM the CL or, for clean reverts, a `Bot-Commit: |
| 261 | +1` from the [rubber-stamper bot](#automated-code_review). |
Steve Kobes | f885edf | 2018-09-11 13:41:11 | [diff] [blame] | 262 | |
Rick Byers | 8bdaba4 | 2025-01-08 14:12:30 | [diff] [blame] | 263 | When setting Owners-Override it is your responsibility to confirm that every |
| 264 | file (and line) in the patch has been appropriately reviewed. |
| 265 | |
Jason Clinton | 0daf7b0 | 2021-02-09 20:36:22 | [diff] [blame] | 266 | ## Mechanical changes |
Steve Kobes | f885edf | 2018-09-11 13:41:11 | [diff] [blame] | 267 | |
John Abd-El-Malek | dfd1edc | 2021-02-24 22:22:40 | [diff] [blame] | 268 | ### Global Approvals |
Dave Tapuska | 4661b90 | 2023-07-12 17:21:45 | [diff] [blame] | 269 | For one-off CLs, API owners of `base`, `build`, `content`, |
| 270 | `third_party/blink/public` and `url` can `Owners-Override +1` a change to their |
| 271 | APIs to avoid waiting for rubberstamp +1s from affected directories' owners. |
Rick Byers | e848f2ef | 2025-01-21 17:56:00 | [diff] [blame] | 272 | This should only be used for mechanical updates, but global approvers are free |
| 273 | to use their judgement in determining which mechanical changes they understand |
| 274 | well enough to approve (rather than limit strictly to calls into code |
| 275 | they own). |
Steve Kobes | f885edf | 2018-09-11 13:41:11 | [diff] [blame] | 276 | |
Rick Byers | e848f2ef | 2025-01-21 17:56:00 | [diff] [blame] | 277 | For a change that impacts many directories but doesn't need area-specific |
| 278 | expertise to review, please ask any global approver or Chrome ATL to |
| 279 | approve the change rather than incur unnecessary review cost on a larger number |
| 280 | of reviewers. |
Kentaro Hara | 7e85d34a | 2021-10-08 15:33:16 | [diff] [blame] | 281 | |
| 282 | ### Large Scale Changes |
| 283 | You can use the [Large Scale Changes](process/lsc/large_scale_changes.md) |
| 284 | process to get approval to bypass OWNERS enforcement for large changes like |
| 285 | refactoring, architectural changes, or other repetitive code changes across the |
| 286 | whole codebase. This is used for work that span many dozen CLs. |
| 287 | |
Jason Clinton | 0daf7b0 | 2021-02-09 20:36:22 | [diff] [blame] | 288 | ## Documentation updates |
Steve Kobes | f885edf | 2018-09-11 13:41:11 | [diff] [blame] | 289 | |
Jason Clinton | 0daf7b0 | 2021-02-09 20:36:22 | [diff] [blame] | 290 | Documentation updates require code review. We may revisit this decision in the |
| 291 | future. |
Steve Kobes | f885edf | 2018-09-11 13:41:11 | [diff] [blame] | 292 | |
Jason Clinton | 0daf7b0 | 2021-02-09 20:36:22 | [diff] [blame] | 293 | ## Automated code-review |
Steve Kobes | f885edf | 2018-09-11 13:41:11 | [diff] [blame] | 294 | |
Jason Clinton | 0daf7b0 | 2021-02-09 20:36:22 | [diff] [blame] | 295 | For verifiably safe changes like translation files, clean reverts, and clean |
| 296 | cherry-picks, we have automation that will vote +1 on the `Bot-Commit` label |
| 297 | allowing the CL to be submitted without human code-review. Add `Rubber Stamper` |
| 298 | ([email protected]) to your CL as a reviewer to |
| 299 | activate this automation. It will scan the CL after about 1 minute and reply |
| 300 | with its verdict. `Bot-Commit` votes are not sticky between patchsets and so |
| 301 | only add the bot once the CL is finalized. |
Steve Kobes | f885edf | 2018-09-11 13:41:11 | [diff] [blame] | 302 | |
dpapad | eb6dadcf | 2024-09-23 19:22:51 | [diff] [blame] | 303 | When combined with the [`Owners-Override`](#owners_override) power, gardeners |
| 304 | can effectively revert and reland on their own. |
Steve Kobes | f885edf | 2018-09-11 13:41:11 | [diff] [blame] | 305 | |
Jason Clinton | 6026fd19 | 2021-03-24 19:58:33 | [diff] [blame] | 306 | Rubber Stamper never provides OWNERS approval, by design. It's intended to be |
dpapad | eb6dadcf | 2024-09-23 19:22:51 | [diff] [blame] | 307 | used by those who have owners in the directory modified or who are gardeners. If |
Jason D. Clinton | c38b61d8 | 2021-04-20 20:02:14 | [diff] [blame] | 308 | it provided both code review and OWNERS approval, that would be an abuse vector: |
| 309 | that would allow anyone who can create a revert or cherry-pick to land it |
| 310 | without any other person being involved (e.g. the silent revert of security |
| 311 | patches). |
Jason Clinton | 6026fd19 | 2021-03-24 19:58:33 | [diff] [blame] | 312 | |
Jason D. Clinton | c38b61d8 | 2021-04-20 20:02:14 | [diff] [blame] | 313 | Changes not supported by `Rubber Stamper` always need a +1 from another |
Jason Clinton | 0daf7b0 | 2021-02-09 20:36:22 | [diff] [blame] | 314 | committer. |