Fuchsia 中的每个文件都有一组所有者。这些内容在名为 OWNERS
的文件中进行跟踪。其中一个文件位于代码库的根目录中,许多目录也有自己的 OWNERS
文件。
目录
每个 OWNERS
文件都列出了许多熟悉的个人(通过其电子邮件地址),并且可以针对该目录的内容提供代码审核。
职责
Fuchsia 要求进行更改才能获得 Code-Review +2
审核,“OWNERS”文件中的任何人都可以提供该审核。此外,许多 OWNERS
文件都包含 *
,从而允许任何人提供此类 +2
。
工具
Gerrit 有一个“suggest owner”按钮,用于列出在指定更改中修改的所有文件的全部所有者。如需了解详情,请参阅 Gerrit code-owners 插件页面。
格式
Fuchsia 对 OWNERS
文件使用 Gerrit 文件语法。
以下是一个示例 OWNERS
文件:
# 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
文件中至少应包含两个人,这一点很重要。如果 Fuchsia 的某些区域只有一个所有者,会导致单点故障。拥有多位所有者可确保在 Fuchsia 的各个区域共享知识和所有权。 - 在适用情况下,
include
是其他文件的所有者,而不是列出个人。这样可以减少“可信来源”的数量,并让 OWNERS 的维护工作更容易。
所有者覆盖
在某些情况下,变更的作者可能希望覆盖所有者的批准决定。这主要适用于以下情况:更改主要是机械操作,但涉及大部分代码库,例如对常用 API 签名进行细微更改。CL 作者可以将 Owner-override@fuchsia.dev 添加到审核者列表,以请求 Owner 覆盖。此过程应谨慎使用,如果不存在且会给开发者带来不必要的负担,最好由本地所有者进行审核。