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.
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.
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
.
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.
Fuchsia uses the Gerrit file syntax for OWNERS
files.
Here's an example OWNERS
file:
# These users are owners validuser1@example.com validuser2@example.com # 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 = validuser3@example.com
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.include
owners from another file rather than listing individuals. This creates fewer “sources of truth” and makes OWNERS maintenance easier.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 owners-override@fuchsia.dev 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.