doc: initial version of branch sheriff doc.
Bug: 1034648 Change-Id: I622b68ad3d410b2eb4e528ef705acdc7b5b1d8fc Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2090730 Reviewed-by: Eric Foo <efoo@chromium.org> Commit-Queue: John Budorick <jbudorick@chromium.org> Cr-Commit-Position: refs/heads/master@{#748869}
This commit is contained in:

committed by
Commit Bot

parent
5f8de7cc70
commit
db5451c3bc
103
docs/branch_sheriff.md
Normal file
103
docs/branch_sheriff.md
Normal file
@ -0,0 +1,103 @@
|
||||
# Chromium Branch Sheriffing
|
||||
|
||||
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][sheriff-md].
|
||||
|
||||
[TOC]
|
||||
|
||||
## Philosophy
|
||||
|
||||
The goals of a branch sheriff are quite similar to those of a trunk sheriff.
|
||||
Branch sheriffs need to ensure that:
|
||||
|
||||
1. **Compile failures get fixed**, because compile failures on branches block
|
||||
all tests (both automated and manual) and consequently reduce our confidence
|
||||
in the quality of what we're shipping, possibly to the point of blocking
|
||||
releases.
|
||||
2. **Consistent test failures get repaired**, because they similarly reduce
|
||||
our confidence in the quality of our code.
|
||||
|
||||
**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.
|
||||
|
||||
## Processes
|
||||
|
||||
In general, you'll want to follow the same processes outlined in
|
||||
[//docs/sheriff.md][sheriff-md]. There are some differences, though.
|
||||
|
||||
### Checkout
|
||||
|
||||
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.
|
||||
|
||||
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][#chromiumdash] or check [milestone.json][milestone-json] directly.
|
||||
|
||||
### Flaky 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.
|
||||
|
||||
### Landing changes
|
||||
|
||||
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][chromiumdash-schedule].
|
||||
|
||||
## Tools
|
||||
|
||||
### Sheriff-o-Matic
|
||||
|
||||
Use the [branch SoM console][sheriff-o-matic] rather than the main chromium console.
|
||||
|
||||
### Consoles
|
||||
|
||||
Use the [beta][main-beta] and [stable][main-stable] branch consoles rather than the main console.
|
||||
|
||||
### Chromiumdash
|
||||
|
||||
[chromiumdash][chromiumdash] can help you determine the branch number for a
|
||||
particular milestone or channel, along with a host of other useful information:
|
||||
|
||||
* [Branches][chromiumdash-branches] lists the branches for each milestone.
|
||||
* [Releases][chromiumdash-releases] lists the builds currently shipping to
|
||||
each channel, which can help map from channel to milestone or to branch.
|
||||
* [Schedule][chromiumdash-schedule] lists the relevant dates for each
|
||||
milestone and includes the release TPMs responsible for each milestone by
|
||||
platform.
|
||||
|
||||
### Rotation
|
||||
|
||||
The current branch sheriff is listed [here][rotation-home]. The configuration
|
||||
and source of truth for the schedule lives [here][rotation-config]. To swap,
|
||||
simply send a CL changing schedule at the bottom of the file.
|
||||
|
||||
[chromiumdash]: https://chromiumdash.appspot.com
|
||||
[chromiumdash-branches]: https://chromiumdash.appspot.com/branches
|
||||
[chromiumdash-releases]: https://chromiumdash.appspot.com/releases
|
||||
[chromiumdash-schedule]: https://chromiumdash.appspot.com/schedule
|
||||
[main-beta]: https://ci.chromium.org/p/chromium/g/main-beta/console
|
||||
[main-stable]: https://ci.chromium.org/p/chromium/g/main-stable/console
|
||||
[milestone-json]: https://goto.google.com/chrome-milestone-json
|
||||
[rotation-home]: https://goto.google.com/chrome-branch-sheriff-amer-west
|
||||
[rotation-config]: https://goto.google.com/chrome-branch-sheriff-amer-west-config
|
||||
[sheriff-md]: /docs/sheriff.md
|
||||
[sheriff-o-matic]: https://sheriff-o-matic.appspot.com/chrome_browser_release
|
Reference in New Issue
Block a user