Fuchsia 中的每个文件都有一组所有者。这些所有者会在名为 OWNERS 的文件中进行跟踪。其中一个文件位于代码库的根目录中,许多目录也有自己的 OWNERS 文件。
目录
每个 OWNERS 文件都会列出一些个人(按其电子邮件地址),这些人熟悉相应目录的内容,并且可以提供代码审核。
职责
Fuchsia 要求更改具有 Code-Review +2 审核,OWNERS 文件中的任何人都可以提供此审核。此外,许多 OWNERS 文件都包含 *,允许任何人提供此类 +2。
工具
Gerrit 有一个“建议所有者”按钮,该按钮会列出给定更改中所有已修改文件的所有所有者。如需了解详情,请参阅 Gerrit 代码所有者插件页面。
格式
Fuchsia 对 Gerrit 文件语法 用于 OWNERS 文件。
以下是一个示例 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维护更加轻松。
所有者替换
在某些情况下,更改的作者可能希望替换 OWNERS 审批。
这主要适用于以下情况:更改主要是机械性的,但涉及代码库的很大一部分(例如,对常用 API 的签名进行微不足道的更改)。
如需请求所有者替换,请按以下步骤操作:
验证资格:确保更改适合替换。 此过程应谨慎使用;如果本地所有者的审核不会给开发者带来不必要的负担,则最好使用本地所有者的审核。
添加替换审核者:将
owners-override@fuchsia.dev添加到 Gerrit 更改中的审核者列表。
不过,当您需要添加或更新 OWNERS 文件时,最好在专用的 Gerrit 更改 中管理这些更改。这种方法是首选方法,因为它支持所有者替换,并允许单独提交文件。通过将其分开,您还可以避免在 Gerrit 更改的其他部分需要进行其他更改时重新标记 OWNERS 修改。此过程通常用于引入新目录时,
例如在 //src 或 //src/lib 中。