1--- 2title: 'Skia Gardener Documentation' 3linkTitle: 'Skia Gardener Documentation' 4 5weight: 8 6--- 7 8### Contents 9 10- [What does a Skia Gardener do?](#what_is_a_skia_gardener) 11 - [Skia tree](#skia_tree) 12 - [AutoRollers](#autorollers) 13 - [Gold and Perf](#gold_and_perf) 14 - [Documentation](#skia_gardener_doc) 15- [View current and upcoming rotations](#view_current_upcoming_rotations) 16- [How to swap rotation shifts](#how_to_swap) 17- [Tips for Skia Gardeners](#tips) 18 - [When to file bugs](#when_to_file_bugs) 19 - [How to close or re-open the tree](#how_close_tree) 20 - [How to revert a CL](#how_to_revert) 21 - [What to do if DEPS roll fails to land](#deps_roll_failures) 22 - [How to rebaseline](#how_to_rebaseline) 23 24<a name="what_is_a_skia_gardener"></a> What does a Skia Gardener do? 25 26--- 27 28A Skia Gardener keeps an eye on the tree, DEPS rolls, Gold tool, the Perf tool, 29and triages Chrome bugs. 30 31Below is a brief summary of what the gardener does for each task: 32 33<a name="skia_tree"></a> 34 35### Skia tree 36 37- Understand the 38 [testing infrastructure](https://skia.org/docs/dev/testing/automated_testing). 39- Start watching the [status page](https://status.skia.org) for bot breakages. 40- Track down people responsible for breakages and revert broken changes if there 41 is no easy fix. You can use [blamer](#blamer) to help track down such changes. 42- Close and open the [tree](http://tree-status.skia.org). 43- Keep the builder comments on the [status page](https://status.skia.org) up to 44 date. 45- File or follow up with 46 [BreakingTheBuildbots bugs](https://bugs.chromium.org/p/skia/issues/list?q=label:BreakingTheBuildbots). 47 See the tip on [when to file bugs](#when_to_file_bugs). 48- Read and update the 49 [Ongoing Issues section](https://docs.google.com/document/d/1y2jUf4vXI0fwhu2TiCLVIfWC1JOxFcHXGw39y7i-y_I/edit#heading=h.tpualuc3p7z0) 50 in the handoff doc. 51- (Optional) Document significant events that occurred during your shift in the 52 [Weekly Handoff Notes section](https://docs.google.com/document/d/1y2jUf4vXI0fwhu2TiCLVIfWC1JOxFcHXGw39y7i-y_I/edit#heading=h.y49irwbutzr) 53 in the handoff doc. 54 55<a name="triage"></a> 56 57### Triage 58 59You should triage Chromium and Skia bugs that show up under "Untriaged Bugs" on 60the [status page](https://status.skia.org). The Android Gardener will triage the 61untriaged Android Bugs. For a more detailed view of bugs see 62[Skia Bugs Central](https://bugs-central.skia.org/). 63 64<a name="blamer"></a> 65 66### Blamer 67 68If you have Go installed, a command-line tool is available to search through git 69history and do text searches on the full patch text and the commit message. To 70install blamer run: 71 72 go get go.skia.org/infra/blamer/go/blamer 73 74Then run blamer from within a Skia checkout. For example, to search if the 75string "SkDevice" has appeared in the last 10 commits: 76 77 $ $GOPATH/bin/blamer --match SkDevice --num 10 78 79 commit ea70c4bb22394c8dcc29a369d3422a2b8f3b3e80 80 Author: robertphillips <robertphillips@google.com> 81 Date: Wed Jul 20 08:54:31 2016 -0700 82 83 Remove SkDevice::accessRenderTarget virtual 84 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167723002 85 86 Review-Url: https://codereview.chromium.org/2167723002 87 88<a name="autorollers"></a> 89 90### Autorollers 91 92- Ensure that all AutoRollers listed on the 93 [status page](https://status.skia.org) are successfully landing. 94 95<a name="gold_and_perf"></a> 96 97### Gold and Perf 98 99- Pay attention for new [Perf](https://perf.skia.org/) and 100 [Gold](https://gold.skia.org/) alerts (by clicking on the bell at the top 101 right of the [status page](https://status.skia.org)). 102- The gardener's duty here is to make sure that when developers introduce new 103 images or new perf regressions, that they are aware of what happened, and they 104 use these tools to take appropriate action. 105 106<a name="skia_gardener_doc"></a> 107 108### Documentation 109 110- Improve/update this documentation page for future gardeners, especially the 111 [Tips section](#tips). 112 113In general, gardeners should have a strong bias towards actions that keep the 114tree green and then open; if a simple revert can fix the problem, the gardener 115<b>should revert first and ask questions later</b>. 116 117<a name="view_current_upcoming_rotations"></a> View current and upcoming 118rotations 119 120--- 121 122The list of Skia Gardeners is specified 123[here](https://rotations.corp.google.com/rotation/4699606003744768). The 124gardeners widget on the [status page](https://status.skia.org) also displays the 125current gardeners. 126 127<a name="how_to_swap"></a> How to swap rotation shifts 128 129--- 130 131If you need to swap shifts with someone (because you are out sick or on 132vacation), please get approval from the person you want to swap with and 133directly make the swap via the 134[rotations page](https://rotations.corp.google.com/rotation/4699606003744768). 135 136<a name="tips"></a> Tips for Skia Gardeners 137 138--- 139 140<a name="when_to_file_bugs"></a> 141 142### When to file bugs 143 144Pay close attention to the "Failures" view in the 145[status page](https://status.skia.org). Look at all existing 146[BreakingTheBuildbots bugs](https://bug.skia.org/?q=label:BreakingTheBuildbots). 147If the list is kept up to date then it should accurately represent everything 148that is causing failures. If it does not, then please file/update bugs 149accordingly. 150 151<a name="how_close_tree"></a> 152 153### How to close or re-open the tree 154 1551. Go to [tree-status.skia.org](https://tree-status.skia.org). 1562. Change the status. 157 158- To close the tree, include the word "closed" in the status. 159- To open the tree, include the word "open" in the status. 160- To caution the tree, include the word "caution" in the status. 161 162<a name="how_to_submit_when_tree_closed"></a> 163 164### How to submit when the tree is closed 165 166- Submit manually using the "git cl land" with the --bypass-hooks flag. 167- Add "No-Tree-Checks: true" to your CL description and use the CQ as usual. 168 169<a name="how_to_revert"></a> 170 171### How to revert a CL 172 173See the revert documentation [here](https://skia.org/docs/dev/contrib/revert). 174 175<a name="deps_roll_failures"></a> 176 177### What to do if DEPS roll fails to land 178 179A common cause of DEPS roll failures are layout tests. Find the offending Skia 180CL by examining the commit hash range in the DEPS roll and revert (or talk to 181the commit author if they are available). If you do revert then keep an eye on 182the next DEPS roll to make sure it succeeds. 183 184If a Skia CL changes layout tests, but the new images look good, the tests need 185to be rebaselined. See [Rebaseline Layout Tests](#how_to_rebaseline). 186 187<a name="how_to_rebaseline"></a> 188 189### Rebaseline Layout Tests (i.e., add suppressions) 190 191- First create a Chromium bug: 192 193 - goto [crbug.com](https://crbug.com) 194 - Make sure you're logged in with your Chromium credentials 195 - Click “New Issue” 196 - Summary: “Skia image rebaseline” 197 - Description: 198 - DEPS roll #, 199 - Helpful message about what went wrong (e.g., “Changes to how lighting is 200 scaled in Skia r#### changed the following images:”) 201 - Layout tests affected 202 - You should copy the list of affected from stdio of the failing bot 203 - Status: Assigned 204 - Owner: yourself 205 - cc: reed@, bsalomon@, robertphillips@ & developer responsible for changes 206 - Labels: OS-All & Cr-Blink-LayoutTests 207 - If it is filter related, cc senorblanco@ 208 209- (Dispreferred but faster) Edit 210 [skia/skia_test_expectations.txt](https://chromium.googlesource.com/chromium/+/refs/heads/trunk/skia/skia_test_expectations.txt) 211 212 - Add # comment about what has changed (I usually paraphrase the crbug text) 213 - Add line(s) like the following after the comment: 214 - crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ ImageOnlyFailure ] 215 - Note: this change is usually done in the DEPS roll patch itself 216 217- (Preferred but slower) Make a separate Blink patch by editing 218 LayoutTests/TestExpectations 219 220 - Add # comment about what has changed (I usually paraphrase the crbug text) 221 - Add line(s) like the following after the comment: 222 - crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ Skip ] # needs 223 rebaseline 224 - Commit the patch you created and wait until it lands and rolls into Chrome 225 226- Retry the DEPS roll (for the 1st/dispreferred option this usually means just 227 retrying the layout bots) 228- Make a Blink patch by editing LayoutTests/TestExpectations 229 230 - Add # comment about what has changed 231 - Add line(s) like the following after the comment: 232 - crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ Skip ] # needs 233 rebaseline 234 - (if you took the second option above you can just edit the existing 235 line(s)) 236 237- If you took the first/dispreferred option above: 238 - Wait for the Blink patch to roll into Chrome 239 - Create a Chrome patch that removes your suppressions from 240 skia/skia_test_expectations.txt 241