xref: /aosp_15_r20/external/angle/doc/ContributingCode.md (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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