This document describes how to be a Chromium branch sheriff and how sheriffing on a branch differs from sheriffing on trunk. For trunk sheriffing guidance, see //docs/sheriff.md.
The goals of a branch sheriff are quite similar to those of a trunk sheriff. Branch sheriffs need to ensure that:
Communication is important for sheriffs in general, but it‘s particularly important for branch sheriffs. Over the course of your shift, you may need to coordinate with trunk sheriffs, troopers, release TPMs, and others -- don’t hesitate to do so, particularly if you have questions.
Points of contact (i.e. platform-specific sheriffs) can be found here.
In general, you'll want to follow the same processes outlined in //docs/sheriff.md. There are some differences, though.
You'll need to ensure that your checkout is configured to check out the branch heads. You can do so by running
src $ gclient sync --with_branch_heads
This only needs to be done once, though running it more than once won't hurt.
You may also need to run:
src $ git fetch
Once you‘ve done that, you’ll be able to check out branches:
src $ git checkout branch-heads/$BRANCH_NUMBER # e.g. branch-heads/4044 for M81 src $ gclient sync
To determine the appropriate branch number, you can either use chromiumdash or check milestone.json directly.
As FindIt is not available on branches, one way to try to find culprits is using git bisect
locally and upload changes to a gerrit CL and run the needed trybots to check. This is especially useful when the errors are not reproducible on your local builds or you don't have the required hardware to build the failed tests.
You should largely ignore flaky tests for the time being unless you have specific reason to believe that a flake was introduced by a cherry-pick to the branch in question. If a test is flaky on both trunk and a release branch, the trunk sheriffs should investigate it.
When you need to land a change to a branch, you'll need to go through the same merge approval process as other cherry-picks. You should feel free to ping the relevant release TPM as listed on chromiumdash.
Use the branch SoM console rather than the main chromium console.
Use the beta and stable branch consoles rather than the main console. A new console is created for each milestone. They are named “Chromium M## Console” and can be found under the Chromium Project.
Refer and use the Sheriff-Chrome-Release label to find and tag issues that are of importance to Branch sheriffs.
chromiumdash can help you determine the branch number for a particular milestone or channel, along with a host of other useful information:
The current branch sheriff is listed here. The configuration and source of truth for the schedule lives here. To swap, simply send a CL changing schedule at the bottom of the file.