• 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  - [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