Tree Sheriffs Documentation

Contents

What does a sheriff do?

A sheriff keeps an eye on the tree, DEPS rolls, Gold tool and the Perf tool.

Below is a brief summary of what the sheriff does for each task:

Skia tree

Blamer

If you have Go installed, a command-line tool is available to search through git history and do text searches on the full patch text and the commit message. To install blamer run:

go get go.skia.org/infra/blamer/go/blamer

Then run blamer from within a Skia checkout. For example, to search if the string “SkDevice” has appeared in the last 10 commits:

$ $GOPATH/bin/blamer --match SkDevice --num 10

commit ea70c4bb22394c8dcc29a369d3422a2b8f3b3e80
Author: robertphillips <robertphillips@google.com>
Date:   Wed Jul 20 08:54:31 2016 -0700

    Remove SkDevice::accessRenderTarget virtual
    GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167723002

    Review-Url: https://codereview.chromium.org/2167723002

Autorollers

  • Ensure that all AutoRollers listed on the status page are successfully landing.

Gold and Perf

  • Pay attention for new Perf and Gold alerts (by clicking on the bell at the top right of the status page).
  • The sheriff's duty here is to make sure that when developers introduce new images or new perf regressions, that they are aware of what happened, and they use these tools to take appropriate action.

Documentation

  • Improve/update this documentation page for future sheriffs, especially the Tips section.

In general, sheriffs should have a strong bias towards actions that keep the tree green and then open; if a simple revert can fix the problem, the sheriff should revert first and ask questions later.

View current and upcoming sheriffs

The list of sheriffs is specified in the skia-tree-status web app. The current sheriff is highlighted in green. The banner on the top of the status page also displays the current sheriff.

How to swap sheriff shifts

If you need to swap shifts with someone (because you are out sick or on vacation), please get approval from the person you want to swap with. Then send an email to skiabot@google.com to have someone make the database change (or directly ping rmistry@).

Tips for sheriffs

When to file bugs

Pay close attention to the “Failures” view in the status page. Look at all existing BreakingTheBuildbots bugs. If the list is kept up to date then it should accurately represent everything that is causing failures. If it does not, then please file/update bugs accordingly.

How to close or re-open the tree

  1. Go to skia-tree-status.appspot.com.
  2. Change the status.
  • To close the tree, include the word “closed” in the status.
  • To open the tree, include the word “open” in the status.
  • To caution the tree, include the word “caution” in the status.

How to submit when the tree is closed

  • Submit manually using the “git cl land” with the --bypass-hooks flag.
  • Add “No-Tree-Checks: true” to your CL description and use the CQ as usual.

How to revert a CL

See the revert documentation here.

What to do if DEPS roll fails to land

A common cause of DEPS roll failures are layout tests. Find the offending Skia CL by examining the commit hash range in the DEPS roll and revert (or talk to the commit author if they are available). If you do revert then keep an eye on the next DEPS roll to make sure it succeeds.

If a Skia CL changes layout tests, but the new images look good, the tests need to be rebaselined. See Rebaseline Layout Tests.

Rebaseline Layout Tests (i.e., add suppressions)

  • First create a Chromium bug:

    • goto crbug.com
    • Make sure you're logged in with your Chromium credentials
    • Click “New Issue”
    • Summary: “Skia image rebaseline”
    • Description:
      • DEPS roll #,
      • Helpful message about what went wrong (e.g., “Changes to how lighting is scaled in Skia r#### changed the following images:”)
      • Layout tests affected
      • You should copy the list of affected from stdio of the failing bot
    • Status: Assigned
    • Owner: yourself
    • cc: reed@, bsalomon@, robertphillips@ & developer responsible for changes
    • Labels: OS-All & Cr-Blink-LayoutTests
    • If it is filter related, cc senorblanco@
  • (Dispreferred but faster) Edit skia/skia_test_expectations.txt

    • Add # comment about what has changed (I usually paraphrase the crbug text)
    • Add line(s) like the following after the comment:
      • crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ ImageOnlyFailure ]
    • Note: this change is usually done in the DEPS roll patch itself
  • (Preferred but slower) Make a separate Blink patch by editing LayoutTests/TestExpectations

    • Add # comment about what has changed (I usually paraphrase the crbug text)
    • Add line(s) like the following after the comment:
      • crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ Skip ] # needs rebaseline
    • Commit the patch you created and wait until it lands and rolls into Chrome
  • Retry the DEPS roll (for the 1st/dispreferred option this usually means just retrying the layout bots)

  • Make a Blink patch by editing LayoutTests/TestExpectations

    • Add # comment about what has changed
    • Add line(s) like the following after the comment:
      • crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ Skip ] # needs rebaseline
        • (if you took the second option above you can just edit the existing line(s))
  • If you took the first/dispreferred option above:

    • Wait for the Blink patch to roll into Chrome
    • Create a Chrome patch that removes your suppressions from skia/skia_test_expectations.txt