• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 and Skia 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
75<a name="blamer"></a>
76
77### Blamer
78
79If you have Go installed, a command-line tool is available to search through git
80history and do text searches on the full patch text and the commit message. To
81install blamer run:
82
83    go get go.skia.org/infra/blamer/go/blamer
84
85Then run blamer from within a Skia checkout. For example, to search if the
86string "SkDevice" has appeared in the last 10 commits:
87
88    $ $GOPATH/bin/blamer --match SkDevice --num 10
89
90    commit ea70c4bb22394c8dcc29a369d3422a2b8f3b3e80
91    Author: robertphillips <robertphillips@google.com>
92    Date:   Wed Jul 20 08:54:31 2016 -0700
93
94        Remove SkDevice::accessRenderTarget virtual
95        GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167723002
96
97        Review-Url: https://codereview.chromium.org/2167723002
98
99<a name="autorollers"></a>
100
101### Autorollers
102
103- Ensure that all AutoRollers listed on the
104  [status page](https://status.skia.org) are successfully landing.
105
106<a name="gold_and_perf"></a>
107
108### Gold and Perf
109
110- Pay attention for new [Perf](https://perf.skia.org/) and
111  [Gold](https://gold.skia.org/) alerts (by clicking on the bell at the top
112  right of the [status page](https://status.skia.org)).
113- The gardener's duty here is to make sure that when developers introduce new
114  images or new perf regressions, that they are aware of what happened, and they
115  use these tools to take appropriate action.
116
117<a name="skia_gardener_doc"></a>
118
119### Documentation
120
121- Improve/update this documentation page for future gardeners, especially the
122  [Tips section](#tips).
123
124In general, gardeners should have a strong bias towards actions that keep the
125tree green and then open; if a simple revert can fix the problem, the gardener
126<b>should revert first and ask questions later</b>.
127
128<a name="preparations"></a>
129
130## Preparing for your rotation
131
132---
133
134<a name="useful_bookmarks"></a>
135
136### Useful bookmarks
137
138- [The Chromium main console](https://ci.chromium.org/p/chromium/g/main/console).
139- [The Flutter engine console](https://ci.chromium.org/p/flutter/g/engine/console).
140- [Skia client search](https://brianosman.users.x20web.corp.google.com/www/skia-client-search.html),
141  a tool for searching the codebases of all skia clients at once.
142
143<a name="chat_rooms"></a>
144
145### Chat rooms
146
147- [Flutter Engine Sherriff](https://chat.google.com/room/AAAAm69vf-M) room to
148  watch for Flutter issues that are caused by Skia bugs or need assistance from
149  our team.
150
151<a name="view_current_upcoming_rotations"></a>
152
153## View current and upcoming rotations
154
155---
156
157The list of Skia Gardeners is specified
158[here](https://rotations.corp.google.com/rotation/4699606003744768). The
159gardeners widget on the [status page](https://status.skia.org) also displays the
160current gardeners.
161
162<a name="how_to_swap"></a>
163
164## How to swap rotation shifts
165
166---
167
168If you need to swap shifts with someone (because you are out sick or on
169vacation), please get approval from the person you want to swap with and
170directly make the swap via the
171[rotations page](https://rotations.corp.google.com/rotation/4699606003744768).
172
173<a name="tips"></a>
174
175## Tips for Skia Gardeners
176
177---
178
179<a name="when_to_file_bugs"></a>
180
181### When to file bugs
182
183Pay close attention to the "Failures" view in the
184[status page](https://status.skia.org). Look at all existing
185[BreakingTheBuildbots bugs](https://bug.skia.org/?q=label:BreakingTheBuildbots).
186If the list is kept up to date then it should accurately represent everything
187that is causing failures. If it does not, then please file/update bugs
188accordingly.
189
190<a name="how_close_tree"></a>
191
192### How to close or re-open the tree
193
1941. Go to [tree-status.skia.org](https://tree-status.skia.org).
1952. Change the status.
196
197- To close the tree, include the word "closed" in the status.
198- To open the tree, include the word "open" in the status.
199- To caution the tree, include the word "caution" in the status.
200
201<a name="how_to_submit_when_tree_closed"></a>
202
203### How to submit when the tree is closed
204
205- Submit manually using the "git cl land" with the --bypass-hooks flag.
206- Add "No-Tree-Checks: true" to your CL description and use the CQ as usual.
207
208<a name="how_to_revert"></a>
209
210### How to revert a CL
211
212See the revert documentation [here](https://skia.org/docs/dev/contrib/revert).
213
214<a name="deps_roll_failures"></a>
215
216### What to do if DEPS roll fails to land
217
218A common cause of DEPS roll failures are layout tests. Find the offending Skia
219CL by examining the commit hash range in the DEPS roll and revert (or talk to
220the commit author if they are available). If you do revert then keep an eye on
221the next DEPS roll to make sure it succeeds.
222
223If a Skia CL changes layout tests, but the new images look good, the tests need
224to be rebaselined. See [Rebaseline Layout Tests](#how_to_rebaseline).
225
226<a name="how_to_rebaseline"></a>
227
228### Rebaseline Layout Tests (i.e., add suppressions)
229
230- First create a Chromium bug:
231
232  - goto [crbug.com](https://crbug.com)
233  - Make sure you're logged in with your Chromium credentials
234  - Click “New Issue”
235  - Summary: “Skia image rebaseline”
236  - Description:
237    - DEPS roll #,
238    - Helpful message about what went wrong (e.g., “Changes to how lighting is
239      scaled in Skia r#### changed the following images:”)
240    - Layout tests affected
241    - You should copy the list of affected from stdio of the failing bot
242  - Status: Assigned
243  - Owner: yourself
244  - cc: bsalomon@, robertphillips@ & developer responsible for changes
245  - Labels: OS-All & Cr-Blink-LayoutTests
246  - If it is filter related, cc senorblanco@
247
248- (Dispreferred but faster) Edit
249  [skia/skia_test_expectations.txt](https://chromium.googlesource.com/chromium/+/refs/heads/trunk/skia/skia_test_expectations.txt)
250
251  - Add # comment about what has changed (I usually paraphrase the crbug text)
252  - Add line(s) like the following after the comment:
253    - crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ ImageOnlyFailure ]
254  - Note: this change is usually done in the DEPS roll patch itself
255
256- (Preferred but slower) Make a separate Blink patch by editing
257  LayoutTests/TestExpectations
258
259  - Add # comment about what has changed (I usually paraphrase the crbug text)
260  - Add line(s) like the following after the comment:
261    - crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ Skip ] # needs
262      rebaseline
263  - Commit the patch you created and wait until it lands and rolls into Chrome
264
265- Retry the DEPS roll (for the 1st/dispreferred option this usually means just
266  retrying the layout bots)
267- Make a Blink patch by editing LayoutTests/TestExpectations
268
269  - Add # comment about what has changed
270  - Add line(s) like the following after the comment:
271    - crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ Skip ] # needs
272      rebaseline
273      - (if you took the second option above you can just edit the existing
274        line(s))
275
276- If you took the first/dispreferred option above:
277  - Wait for the Blink patch to roll into Chrome
278  - Create a Chrome patch that removes your suppressions from
279    skia/skia_test_expectations.txt
280