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