Each file in Fuchsia has a set of owners. These are tracked in files
named OWNERS
. One of these files is present in the root of the
repository, and many directories have their own OWNERS
files too.
Contents
Each OWNERS
file lists a number of individuals (by their email address) who are
familiar with and can provide code reviews for the contents of that directory.
Responsibilities
Fuchsia requires changes to have an Code-Review +2
review, which anyone in the
'OWNERS' file can provide. In addition, many OWNERS
files
contain a *
allowing anyone to provide such a +2
.
Tools
Gerrit has a "suggest owners" button that will list all the owners for all the files modified in a given change. More information on this is available on the Gerrit code-owners plugin page.
Format
Fuchsia uses the Gerrit file syntax for OWNERS
files.
Here's an example OWNERS
file:
# These users are owners
[email protected]
[email protected]
# Users listed elsewhere are also owners
include /path/to/another/OWNERS
# This user is only an owner of the listed file
per-file main.c = [email protected]
Best practices
- It's important to have at least two individuals in an
OWNERS
file. Having areas of Fuchsia with a single owner leads to single points of failure. Having multiple owners ensures that knowledge and ownership is shared over areas of Fuchsia. - When applicable,
include
owners from another file rather than listing individuals. This creates fewer "sources of truth" and makes OWNERS maintenance easier.
Owners override
In some cases, the author of a change may wish to override OWNERS approval. This is appropriate primarily in cases where a change is mostly mechanical but touches a large fraction of the codebase, for example a trivial change to the signature of a commonly used API. CL authors can add [email protected] to the reviewer list to request owners override. This process should be used sparingly and review by local owners is preferred whenever it does not present and undue burden on developers.