1*8975f5c5SAndroid Build Coastguard Worker# Contributing Code 2*8975f5c5SAndroid Build Coastguard Worker 3*8975f5c5SAndroid Build Coastguard Worker## Communicate 4*8975f5c5SAndroid Build Coastguard Worker 5*8975f5c5SAndroid Build Coastguard Worker* Whether you're writing a new feature or fixing an existing bug, it pays to get a second opinion 6*8975f5c5SAndroid Build Coastguard Worker before you get too far. If it's a new feature idea, post to the discussion group 7*8975f5c5SAndroid Build Coastguard Worker ([angleproject][ANGLE-website]). 8*8975f5c5SAndroid Build Coastguard Worker* Not all bugs in our [bug system][anglebug.com] are assigned, but if the one you're interested in 9*8975f5c5SAndroid Build Coastguard Worker fixing is, send a note to the person it's assigned to and ask if they would like a patch. 10*8975f5c5SAndroid Build Coastguard Worker* Behavior changes and anything nontrivial (i.e. anything other than simple cleanups and style 11*8975f5c5SAndroid Build Coastguard Worker fixes) should generally be tracked in the bug system. Please [file a bug][anglebug-new] and 12*8975f5c5SAndroid Build Coastguard Worker describe what you're doing if there isn't one already. 13*8975f5c5SAndroid Build Coastguard Worker* If you would like bug-editing rights, simply ask a team member via email or the discussion group. 14*8975f5c5SAndroid Build Coastguard Worker 15*8975f5c5SAndroid Build Coastguard Worker[ANGLE-website]: https://groups.google.com/forum/?fromgroups#!forum/angleproject 16*8975f5c5SAndroid Build Coastguard Worker[anglebug.com]: http://anglebug.com 17*8975f5c5SAndroid Build Coastguard Worker[anglebug-new]: http://anglebug.com/new 18*8975f5c5SAndroid Build Coastguard Worker 19*8975f5c5SAndroid Build Coastguard Worker## Get your code ready 20*8975f5c5SAndroid Build Coastguard Worker 21*8975f5c5SAndroid Build Coastguard Worker### Code 22*8975f5c5SAndroid Build Coastguard Worker 23*8975f5c5SAndroid Build Coastguard Worker1. Must conform to the [ANGLE style][ANGLE-style] guidelines. 24*8975f5c5SAndroid Build Coastguard Worker2. Must be tested. (see the [Testing][Testing] section below) 25*8975f5c5SAndroid Build Coastguard Worker3. Should be a reasonable size to review. Giant patches are unlikely to get reviewed quickly. 26*8975f5c5SAndroid Build Coastguard Worker 27*8975f5c5SAndroid Build Coastguard Worker[ANGLE-style]: CodingStandard.md 28*8975f5c5SAndroid Build Coastguard Worker[Testing]: #Testing 29*8975f5c5SAndroid Build Coastguard Worker 30*8975f5c5SAndroid Build Coastguard Worker### Build maintenance 31*8975f5c5SAndroid Build Coastguard Worker 32*8975f5c5SAndroid Build Coastguard Worker1. If you added or removed source files: 33*8975f5c5SAndroid Build Coastguard Worker * You _must_ update the build files with your changes. See [`src/libGLESv2.gni`][libGLESv2.gni] 34*8975f5c5SAndroid Build Coastguard Worker and [`src/compiler.gni`][compiler.gni]. 35*8975f5c5SAndroid Build Coastguard Worker2. ANGLE's BUILD.gn script is used by [Chromium's gn build][gn-build-config]. If you change build 36*8975f5c5SAndroid Build Coastguard Worker files other than to add or remove source files be aware you could break the Chromium build. 37*8975f5c5SAndroid Build Coastguard Worker ANGLE's commit queue (CQ) will detect such breakage. Ask a project member for help with Chromium 38*8975f5c5SAndroid Build Coastguard Worker issues if you don't have a Chromium checkout. 39*8975f5c5SAndroid Build Coastguard Worker3. Some generated code is baked into the repository. If you modify the source of these files, such 40*8975f5c5SAndroid Build Coastguard Worker as the translator's [`glslang.l`][glslang.l], or one of the internal shaders in the Vulkan 41*8975f5c5SAndroid Build Coastguard Worker backend, you will need to run [`scripts/run_code_generation.py`][run_code_generation.py] and 42*8975f5c5SAndroid Build Coastguard Worker include the autogenerated files in your change. 43*8975f5c5SAndroid Build Coastguard Worker `git cl upload` should warn you if you are missing this step. 44*8975f5c5SAndroid Build Coastguard Worker 45*8975f5c5SAndroid Build Coastguard Worker[gn-build-config]: https://www.chromium.org/developers/gn-build-configuration 46*8975f5c5SAndroid Build Coastguard Worker[compiler.gni]: https://chromium.googlesource.com/angle/angle/+/refs/heads/main/src/compiler.gni 47*8975f5c5SAndroid Build Coastguard Worker[libGLESv2.gni]: https://chromium.googlesource.com/angle/angle/+/refs/heads/main/src/libGLESv2.gni 48*8975f5c5SAndroid Build Coastguard Worker[glslang.l]: https://chromium.googlesource.com/angle/angle/+/refs/heads/main/src/compiler/translator/glslang.l 49*8975f5c5SAndroid Build Coastguard Worker[run_code_generation.py]: https://chromium.googlesource.com/angle/angle/+/refs/heads/main/scripts/run_code_generation.py 50*8975f5c5SAndroid Build Coastguard Worker 51*8975f5c5SAndroid Build Coastguard Worker### Testing 52*8975f5c5SAndroid Build Coastguard Worker 53*8975f5c5SAndroid Build Coastguard Worker* ANGLE uses trybots to test on a variety of platforms. Please run your changes against our bots 54*8975f5c5SAndroid Build Coastguard Worker and check the results before landing changes or requesting reviews. 55*8975f5c5SAndroid Build Coastguard Worker * Upload your change (see [Making changes](#making-changes)). 56*8975f5c5SAndroid Build Coastguard Worker * To kick off a try job, use the 'CQ Dry Run' button, or set the Commit-Queue +1 label to trigger 57*8975f5c5SAndroid Build Coastguard Worker a dry run of the CQ (will not land the change). 58*8975f5c5SAndroid Build Coastguard Worker * If you are not part of the `angle-committers` group, you will need to either ask to be added or 59*8975f5c5SAndroid Build Coastguard Worker ask a member of the group to submit the tryjob for you. Add syoussefi or geofflang as a reviewer 60*8975f5c5SAndroid Build Coastguard Worker for assistance. 61*8975f5c5SAndroid Build Coastguard Worker * Wait for the bots to report the result on the code review page. The bot results should be 62*8975f5c5SAndroid Build Coastguard Worker visible in Gerrit as yellow (in-progress), green (passed), or red (failed). This can take up to 63*8975f5c5SAndroid Build Coastguard Worker two hours for some of the debug bots. Click on the colored rectangle to open the bot log to 64*8975f5c5SAndroid Build Coastguard Worker triage failed tests. 65*8975f5c5SAndroid Build Coastguard Worker * If a failure is unexpected, or seems likely unrelated to your change, ask an ANGLE project 66*8975f5c5SAndroid Build Coastguard Worker member for advice. 67*8975f5c5SAndroid Build Coastguard Worker * We do not currently have the capability to run individual bots or tests in a run. 68*8975f5c5SAndroid Build Coastguard Worker* Tests can also be run locally, ANGLE's main testing methods are: 69*8975f5c5SAndroid Build Coastguard Worker * `angle_unittests`, `angle_end2end_tests` and `angle_white_box_tests` targets. 70*8975f5c5SAndroid Build Coastguard Worker * The OpenGL CTS also known as [drawElements Quality Program (dEQP)](dEQP.md). 71*8975f5c5SAndroid Build Coastguard Worker If you're working on a new feature, there may be some extensive tests for it already written. 72*8975f5c5SAndroid Build Coastguard Worker * The [Top-of-Tree WebGL Conformance tests][WebGL-CTS]. 73*8975f5c5SAndroid Build Coastguard Worker * If you are a Chromium developer, see 74*8975f5c5SAndroid Build Coastguard Worker [Building ANGLE for Chromium Development][build-ANGLE-for-chromium] for instructions on 75*8975f5c5SAndroid Build Coastguard Worker building ANGLE within Chromium. 76*8975f5c5SAndroid Build Coastguard Worker * If you aren't a browser developer, you should be able to drop your compiled DLLs into a 77*8975f5c5SAndroid Build Coastguard Worker Chrome installation, in place of those distributed with Chrome, to check WebGL conformance. 78*8975f5c5SAndroid Build Coastguard Worker [Chrome Canary][Chrome-Canary] is well-suited for this. 79*8975f5c5SAndroid Build Coastguard Worker * If your code isn't covered by an existing test, you are *strongly encouraged* to add new test 80*8975f5c5SAndroid Build Coastguard Worker coverage. This both ensures that your code is correct and that new contributors won't break it 81*8975f5c5SAndroid Build Coastguard Worker in the future. 82*8975f5c5SAndroid Build Coastguard Worker * Add new tests to `angle_end2end_tests` for OpenGL-based API tests, `angle_unittests` for 83*8975f5c5SAndroid Build Coastguard Worker cross-platform internal tests, and `angle_white_box_tests` for rendering tests which also need 84*8975f5c5SAndroid Build Coastguard Worker visibility into internal ANGLE classes. 85*8975f5c5SAndroid Build Coastguard Worker * If you are submitting a performance fix, test your code with `angle_perftests` and add a new 86*8975f5c5SAndroid Build Coastguard Worker performance test if it is not covered by the existing benchmarks. For more documentation on 87*8975f5c5SAndroid Build Coastguard Worker `angle_perftests` see the [README][README]. 88*8975f5c5SAndroid Build Coastguard Worker * The [Chromium GPU FYI bot waterfall][Chromium-waterfall] provides continuous integration for 89*8975f5c5SAndroid Build Coastguard Worker ANGLE patches that have been committed. There may be hardware configurations that are not 90*8975f5c5SAndroid Build Coastguard Worker tested by the ANGLE trybots, if you notice breakage on this waterfall after landing a patch, 91*8975f5c5SAndroid Build Coastguard Worker please notify a project member. 92*8975f5c5SAndroid Build Coastguard Worker 93*8975f5c5SAndroid Build Coastguard Worker[WebGL-CTS]: https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html 94*8975f5c5SAndroid Build Coastguard Worker[build-ANGLE-for-Chromium]: BuildingAngleForChromiumDevelopment.md 95*8975f5c5SAndroid Build Coastguard Worker[Chrome-Canary]: https://www.google.com/chrome/browser/canary.html 96*8975f5c5SAndroid Build Coastguard Worker[README]: ../src/tests/perf_tests/README.md 97*8975f5c5SAndroid Build Coastguard Worker[Chromium-waterfall]: https://ci.chromium.org/p/chromium/g/chromium.gpu.fyi/console 98*8975f5c5SAndroid Build Coastguard Worker 99*8975f5c5SAndroid Build Coastguard Worker### Legal 100*8975f5c5SAndroid Build Coastguard Worker 101*8975f5c5SAndroid Build Coastguard Worker1. You must complete the [Individual Contributor License Agreement][Individual-CLA]. You can do this 102*8975f5c5SAndroid Build Coastguard Worker online, and it only takes a minute. If you are contributing on behalf of a corporation, you must 103*8975f5c5SAndroid Build Coastguard Worker fill out the [Corporate Contributor License Agreement][Corporate-CLA] and send it to Google as 104*8975f5c5SAndroid Build Coastguard Worker described on that page. 105*8975f5c5SAndroid Build Coastguard Worker2. Once you've submitted the CLA, please email the following information (as entered on the CLA) to 106*8975f5c5SAndroid Build Coastguard Worker `geofflang at chromium dot org` for record keeping purposes: 107*8975f5c5SAndroid Build Coastguard Worker * Full Name: 108*8975f5c5SAndroid Build Coastguard Worker * Email: 109*8975f5c5SAndroid Build Coastguard Worker * Company (If applicable): 110*8975f5c5SAndroid Build Coastguard Worker3. If you've never submitted code before, you must add your (or your organization's) name and 111*8975f5c5SAndroid Build Coastguard Worker contact info to the [AUTHORS](../AUTHORS) file. 112*8975f5c5SAndroid Build Coastguard Worker4. *NOTE TO REVIEWERS*: Follow the [External Contributor Checklist][Contributor-checklist]. 113*8975f5c5SAndroid Build Coastguard Worker 114*8975f5c5SAndroid Build Coastguard Worker[Individual-CLA]: https://cla.developers.google.com/about/google-individual 115*8975f5c5SAndroid Build Coastguard Worker[Corporate-CLA]: https://cla.developers.google.com/about/google-corporate 116*8975f5c5SAndroid Build Coastguard Worker[Contributor-checklist]: http://www.chromium.org/developers/contributing-code/external-contributor-checklist 117*8975f5c5SAndroid Build Coastguard Worker 118*8975f5c5SAndroid Build Coastguard Worker## Life of a Change List 119*8975f5c5SAndroid Build Coastguard Worker 120*8975f5c5SAndroid Build Coastguard Worker### <a name="getting-started-with-gerrit"></a>Getting started with Gerrit for ANGLE 121*8975f5c5SAndroid Build Coastguard Worker 122*8975f5c5SAndroid Build Coastguard Worker1. Go to [https://chromium.googlesource.com/new-password][CR-passwd] 123*8975f5c5SAndroid Build Coastguard Worker2. Log in with the email you use for your git commits. 124*8975f5c5SAndroid Build Coastguard Worker3. Follow the directions on the new-password page to set up authentication with your Google account. 125*8975f5c5SAndroid Build Coastguard Worker4. Make sure to set your real name. 126*8975f5c5SAndroid Build Coastguard Worker * Visit [https://chromium-review.googlesource.com/#/settings][CR-settings] and check the "Full 127*8975f5c5SAndroid Build Coastguard Worker Name" field. 128*8975f5c5SAndroid Build Coastguard Worker5. Check out the repository (see [DevSetup](DevSetup.md)). 129*8975f5c5SAndroid Build Coastguard Worker6. Install the Gerrit `commit_msg` hook 130*8975f5c5SAndroid Build Coastguard Worker * Gerrit requires a hook to append a change ID tag to each commit, so that it can associate your 131*8975f5c5SAndroid Build Coastguard Worker CL with a particular review, and track dependencies between commits. 132*8975f5c5SAndroid Build Coastguard Worker * Download the hook from 133*8975f5c5SAndroid Build Coastguard Worker [https://chromium-review.googlesource.com/tools/hooks/commit-msg][commit-msg-hook] and copy 134*8975f5c5SAndroid Build Coastguard Worker this file to `.git/hooks/commit-msg` within your local repository. On non-Windows platforms, 135*8975f5c5SAndroid Build Coastguard Worker ensure that permissions are set to allow execution. 136*8975f5c5SAndroid Build Coastguard Worker * *BE AWARE:* Some patch management tools, such as StGit, currently bypass git hooks. They should 137*8975f5c5SAndroid Build Coastguard Worker not currently be used with changes intended for review. 138*8975f5c5SAndroid Build Coastguard Worker 139*8975f5c5SAndroid Build Coastguard Worker[CR-passwd]: https://chromium.googlesource.com/new-password 140*8975f5c5SAndroid Build Coastguard Worker[CR-settings]: https://chromium-review.googlesource.com/#/settings 141*8975f5c5SAndroid Build Coastguard Worker[commit-msg-hook]: https://chromium-review.googlesource.com/tools/hooks/commit-msg 142*8975f5c5SAndroid Build Coastguard Worker 143*8975f5c5SAndroid Build Coastguard Worker### Making changes 144*8975f5c5SAndroid Build Coastguard Worker 145*8975f5c5SAndroid Build Coastguard Worker1. Commit your changes locally: 146*8975f5c5SAndroid Build Coastguard Worker * `git add src/../FileName.cpp` 147*8975f5c5SAndroid Build Coastguard Worker * `git commit` 148*8975f5c5SAndroid Build Coastguard Worker * A text editor will open. Add a description at the top of the file. 149*8975f5c5SAndroid Build Coastguard Worker * Associate the CL with an issue in the issue tracker (e.g. a fix for a reported bug) 150*8975f5c5SAndroid Build Coastguard Worker by adding the following line to the commit message: `Bug: angleproject:<issue number>`. 151*8975f5c5SAndroid Build Coastguard Worker * If necessary please file a new bug at http://anglebug.com/new 152*8975f5c5SAndroid Build Coastguard Worker * Save. 153*8975f5c5SAndroid Build Coastguard Worker * Close the text editor. 154*8975f5c5SAndroid Build Coastguard Worker * Use `git commit --amend` to update your CL with new changes. 155*8975f5c5SAndroid Build Coastguard Worker * Use `git cl format` to amend the style of your CL. This saves both your time and the reviewers'! 156*8975f5c5SAndroid Build Coastguard Worker2. Ensure your code is landed on top of latest changes 157*8975f5c5SAndroid Build Coastguard Worker * `git pull --rebase` 158*8975f5c5SAndroid Build Coastguard Worker * Resolve conflicts if necessary 159*8975f5c5SAndroid Build Coastguard Worker3. Upload the change list 160*8975f5c5SAndroid Build Coastguard Worker * `git cl upload` 161*8975f5c5SAndroid Build Coastguard Worker * The change list and modified files will be uploaded to [ANGLE Gerrit][ANGLE-Gerrit]. 162*8975f5c5SAndroid Build Coastguard Worker * Follow the generated URL to the new issue. 163*8975f5c5SAndroid Build Coastguard Worker * Take a moment to perform a self-review of your code. Gerrit's viewer makes it easy to see 164*8975f5c5SAndroid Build Coastguard Worker whitespace errors, erroneous tabs, and other simple style problems. 165*8975f5c5SAndroid Build Coastguard Worker * [Select reviewers](#selecting-reviewers). If you don't do this, reviewers may not realize 166*8975f5c5SAndroid Build Coastguard Worker you're requesting a review! 167*8975f5c5SAndroid Build Coastguard Worker * Make changes, upload and repeat as necessary. 168*8975f5c5SAndroid Build Coastguard Worker * Project members and others will review your code as described in the 169*8975f5c5SAndroid Build Coastguard Worker [CodeReviewProcess](CodeReviewProcess.md). 170*8975f5c5SAndroid Build Coastguard Worker5. If your change list needs revision: 171*8975f5c5SAndroid Build Coastguard Worker * If you have correctly installed the commit hook from the section above, Gerrit will be able to 172*8975f5c5SAndroid Build Coastguard Worker track your changes by Change-Id. 173*8975f5c5SAndroid Build Coastguard Worker * You should need only to update your commit with `git commit --amend` and re-upload with 174*8975f5c5SAndroid Build Coastguard Worker `git cl upload`. 175*8975f5c5SAndroid Build Coastguard Worker6. Landing change after it receives +2 Code Review: 176*8975f5c5SAndroid Build Coastguard Worker * If you are a committer, you may submit the change yourself via the Gerrit web interface. 177*8975f5c5SAndroid Build Coastguard Worker * If you are not a committer, ask your reviewer to submit the change list. 178*8975f5c5SAndroid Build Coastguard Worker7. Pull and integrate reviewed CL: 179*8975f5c5SAndroid Build Coastguard Worker * `git pull --rebase` 180*8975f5c5SAndroid Build Coastguard Worker 181*8975f5c5SAndroid Build Coastguard Worker[ANGLE-Gerrit]: https://chromium-review.googlesource.com/q/project:angle/angle 182*8975f5c5SAndroid Build Coastguard Worker 183*8975f5c5SAndroid Build Coastguard Worker### Selecting reviewers 184*8975f5c5SAndroid Build Coastguard Worker 185*8975f5c5SAndroid Build Coastguard WorkerWhen your CL is ready to review, you can use the "Find Owners" button in 186*8975f5c5SAndroid Build Coastguard WorkerGerrit to select appropriate code reviewers. They will be able to route your 187*8975f5c5SAndroid Build Coastguard WorkerCL to additional reviewers as neccessary and answer any questions you may have 188*8975f5c5SAndroid Build Coastguard Workerabout the process. 189*8975f5c5SAndroid Build Coastguard Worker 190*8975f5c5SAndroid Build Coastguard Worker### Rules for submission 191*8975f5c5SAndroid Build Coastguard Worker 192*8975f5c5SAndroid Build Coastguard Worker * At least one **Owner** must give approval. 193*8975f5c5SAndroid Build Coastguard Worker * The owner must be from the **most specific** directory. 194*8975f5c5SAndroid Build Coastguard Worker * At least two **Committers** must give approval for non-trival CLs. 195*8975f5c5SAndroid Build Coastguard Worker For trivial CLs, a single Owner approval is sufficient. 196*8975f5c5SAndroid Build Coastguard Worker * Only **Committers** may submit CLs. If you aren't a committer please ask for help submitting. 197*8975f5c5SAndroid Build Coastguard Worker * Committers may submit high-priority small CLs immediately using **TBR**. 198*8975f5c5SAndroid Build Coastguard Worker See [the Chromium docs][TBR] for more info. 199*8975f5c5SAndroid Build Coastguard Worker * There are exceptions to these rules. Use your best judgement. 200*8975f5c5SAndroid Build Coastguard Worker 201*8975f5c5SAndroid Build Coastguard Worker[TBR]: https://chromium.googlesource.com/chromium/src/+/main/docs/code_reviews.md#tbr-to-be-reviewed 202*8975f5c5SAndroid Build Coastguard Worker 203*8975f5c5SAndroid Build Coastguard Worker### Reverting a CL 204*8975f5c5SAndroid Build Coastguard Worker 205*8975f5c5SAndroid Build Coastguard WorkerSometimes a change will cause an unforseen problem, e.g. on a platform that's not tested with 206*8975f5c5SAndroid Build Coastguard Workerpre-submit testing. In those cases, a CL may be reverted; often by a "[Wrangler][wrangler]", who is 207*8975f5c5SAndroid Build Coastguard Workeran engineer who keeps the testing infrastructure healthy/green. 208*8975f5c5SAndroid Build Coastguard Worker 209*8975f5c5SAndroid Build Coastguard Worker[wrangler]: ../infra/ANGLEWrangling.md 210*8975f5c5SAndroid Build Coastguard Worker 211*8975f5c5SAndroid Build Coastguard WorkerThe best and easiest way to create a revert change is with Gerrit's **REVERT** button, in the 212*8975f5c5SAndroid Build Coastguard Workerupper-right corner of the original change. Pressing this will pop up a dialog with a template 213*8975f5c5SAndroid Build Coastguard Workercommit message, and an optional checkbox for automatically sending the revert CL to CQ. Please edit 214*8975f5c5SAndroid Build Coastguard Workerthe commit message with the reason for the revert. When satisfied, press the dialog's **REVERT** 215*8975f5c5SAndroid Build Coastguard Workerbutton. It is wise to add the author and reviewers of the original CL as reviewers of the revert 216*8975f5c5SAndroid Build Coastguard WorkerCL. If it's been less than 24 hours since the original CL landed, the revert Cl will land 217*8975f5c5SAndroid Build Coastguard Workerimmediately and bypass the try bots. 218*8975f5c5SAndroid Build Coastguard Worker 219*8975f5c5SAndroid Build Coastguard WorkerIf you cannot use Gerrit's **REVERT** button, you can create a revert CL with the "git revert" 220*8975f5c5SAndroid Build Coastguard Workercommand. When doing so, the commit message should include a short description for why the original 221*8975f5c5SAndroid Build Coastguard Workercommit needs to be reverted, and potentially a bug; similar to this example [revert CL][RevertCL]. 222*8975f5c5SAndroid Build Coastguard Worker 223*8975f5c5SAndroid Build Coastguard Worker[RevertCL]: https://chromium-review.googlesource.com/c/chromium/src/+/2453504 224*8975f5c5SAndroid Build Coastguard Worker 225*8975f5c5SAndroid Build Coastguard Worker 226*8975f5c5SAndroid Build Coastguard Worker### Relanding a reverted CL 227*8975f5c5SAndroid Build Coastguard Worker 228*8975f5c5SAndroid Build Coastguard WorkerWhen you re-land a reverted CL, follow this process: 229*8975f5c5SAndroid Build Coastguard Worker 230*8975f5c5SAndroid Build Coastguard Worker * Prefix the CL title with "Reland: ". 231*8975f5c5SAndroid Build Coastguard Worker * Keep the commit message of the original CL and add a description of what changed in the re-land. 232*8975f5c5SAndroid Build Coastguard Worker * Ensure the re-land CL has a unique Change-Id. 233*8975f5c5SAndroid Build Coastguard Worker * First upload the reverted CL as Patchset 1 with no changes applied. 234*8975f5c5SAndroid Build Coastguard Worker * Then, apply your fixes, and upload your CL as a new Patchset. The reviewers will be able to see 235*8975f5c5SAndroid Build Coastguard Worker the diff between Patchset 1 and the fixed/final Patchset. 236*8975f5c5SAndroid Build Coastguard Worker 237*8975f5c5SAndroid Build Coastguard WorkerHere is an example [reland CL][RelandCL]. This [link][RelandCLDiff] shows the difference between Patchset 1 238*8975f5c5SAndroid Build Coastguard Workerand the fixed/final Patchset. Notice how a reviewer can easily see the fix to the original CL. 239*8975f5c5SAndroid Build Coastguard Worker 240*8975f5c5SAndroid Build Coastguard Worker[RelandCL]: https://chromium-review.googlesource.com/c/angle/angle/+/2197735 241*8975f5c5SAndroid Build Coastguard Worker[RelandCLDiff]: https://chromium-review.googlesource.com/c/angle/angle/+/2197735/1..3 242*8975f5c5SAndroid Build Coastguard Worker 243*8975f5c5SAndroid Build Coastguard WorkerIf you do not need to make any changes to your CL to re-land, you can instead use Gerrit's **CREATE 244*8975f5c5SAndroid Build Coastguard WorkerRELAND** button. 245*8975f5c5SAndroid Build Coastguard Worker 246*8975f5c5SAndroid Build Coastguard Worker### Committer status 247*8975f5c5SAndroid Build Coastguard Worker 248*8975f5c5SAndroid Build Coastguard WorkerSimilar to [Chromium's committer status][Committer-status], long-term contributors to the ANGLE 249*8975f5c5SAndroid Build Coastguard Workerproject may request to join the `angle-committers` group. This allows you to give `+2` on code 250*8975f5c5SAndroid Build Coastguard Workerreviews and land patches without assistance. After about 6 months of regular contributions, you may 251*8975f5c5SAndroid Build Coastguard Workerrequest committer status from a core ANGLE team member via email or code review. Chromium 252*8975f5c5SAndroid Build Coastguard Workercommitters and Googlers may ask at any time. 253*8975f5c5SAndroid Build Coastguard Worker 254*8975f5c5SAndroid Build Coastguard Worker### OWNERS files and becoming an Owner 255*8975f5c5SAndroid Build Coastguard Worker 256*8975f5c5SAndroid Build Coastguard WorkerSee these Chromium docs for some good guidelines: [link][Owners]. 257*8975f5c5SAndroid Build Coastguard Worker 258*8975f5c5SAndroid Build Coastguard Worker### More info 259*8975f5c5SAndroid Build Coastguard Worker 260*8975f5c5SAndroid Build Coastguard WorkerSee also: 261*8975f5c5SAndroid Build Coastguard Worker 262*8975f5c5SAndroid Build Coastguard Worker* [ANGLE Gerrit][ANGLE-Gerrit] 263*8975f5c5SAndroid Build Coastguard Worker* [Chromium Projects: Contributing Code][Contributing-code] 264*8975f5c5SAndroid Build Coastguard Worker* [depot_tools tutorial][depot-tools-tutorial] 265*8975f5c5SAndroid Build Coastguard Worker* [angle_perftests README][Perftest-README] 266*8975f5c5SAndroid Build Coastguard Worker* [ANGLE Testing and Processes](TestingAndProcesses.md) 267*8975f5c5SAndroid Build Coastguard Worker 268*8975f5c5SAndroid Build Coastguard Worker[Committer-status]: https://dev.chromium.org/getting-involved/become-a-committer 269*8975f5c5SAndroid Build Coastguard Worker[Contributing-code]: http://www.chromium.org/developers/contributing-code/ 270*8975f5c5SAndroid Build Coastguard Worker[depot-tools-tutorial]: http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html 271*8975f5c5SAndroid Build Coastguard Worker[Perftest-README]: ../src/tests/perf_tests/README.md 272*8975f5c5SAndroid Build Coastguard Worker[Owners]: https://chromium.googlesource.com/chromium/src/+/main/docs/code_reviews.md#expectations-of-owners 273