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