所有者

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 覆盖。此过程应谨慎使用,如果不存在且会给开发者带来不必要的负担,最好由本地所有者进行审核。