Homebrew/brew 维护者指南

本文档描述了 Homebrew/brew 存储库的几个组件,维护者了解这些组件很有用,但对于大多数用户和贡献者来说,不一定需要在文档中显示这些组件。

合并 PR

合并使用 Homebrew/brew 存储库中的标准“合并”按钮进行,以保留历史记录和 GPG 提交签名。“合并并压缩”和“变基并合并”按钮已禁用。

PR 必须满足以下条件才能合并

如果可能,PR 还应具有 GPG 签名的提交(有关如何设置此项的说明,请参见私有 ops 存储库)。

自动批准

为了确保非紧急 PR 有机会让任何其他想要查看的维护者看到和审阅,所有 PR 在合并之前都需要获得批准。

CI

Homebrew/brew 中的每个 PR 都会运行一系列 CI 测试,以尝试防止引入错误。PR 必须在合并之前通过 CI。

每个 PR 上都会运行许多检查。以下是各种检查及其代表内容的快速列表

请注意,此列表并非详尽无遗,并且会随着时间的推移而改变。

brew tests 和 Codecov

Codecov 为每个 PR 生成覆盖率报告,其结果显示为 CI 作业。这些报告可在 Homebrew/brew 的 Codecov 页面 上公开查看。此外,注释将出现在 PR 的“已更改文件”选项卡中,其中添加了 brew tests 未命中的代码行。如果 Codecov 作业失败,则表明应该添加更多测试来测试 PR 中添加的功能。

Codecov 应作为指南来指示何时可能需要更多测试,但期望每行代码都与测试相关是不现实的,尤其是在测试需要缓慢的集成测试时。因此,如果需要,可以合并未通过 Codecov 检查的 PR,但如果可能,应避免这样做。

brew tests 和 BuildPulse

BuildPulse 监视每次推送到 Homebrew/brew 的 CI 作业,以检测不稳定的测试并随着时间的推移跟踪它们。报告可供 Homebrew 维护人员在 buildpulse.io 上获取,每日摘要发布到 Slack 中的 #buildpulse-health

BuildPulse 可用作指南,以识别哪些不稳定的测试对 CI 套件造成最大的破坏。为了对构建的可靠性进行最大的改进,我们可以首先关注最具破坏性的不稳定测试(即导致最多间歇性故障的测试)。

为了帮助找到特定不稳定测试的根本原因,buildpulse.io 提供了指向最近的 CI 作业和提交的链接,其中测试失败,然后在不更改基础代码的情况下通过。您可能希望查看该提交处的代码,以尝试在本地重现失败。您还可以在 buildpulse.io 上查看最近失败的列表,以确定测试是否总是以相同的方式失败。

手册页和 Shell 补全

Homebrew 的手册页和 shell 补全由 brew generate-man-completions 命令自动生成。欢迎贡献者运行此命令并在 PR 中提交更改,但他们不必这样做。如果他们不这样做,一旦合并原始 PR,@BrewTestBot 将自动打开一个后续 PR 以进行必要的更改。如果更改看起来正确,则可以立即合并这些后续 PR。

可以通过从“操作”选项卡下的 更新赞助商、维护者、手册页和补全 部分触发工作流来手动请求更新。单击“运行工作流”下拉菜单,然后单击“运行工作流”按钮。如果有任何更改,将很快打开一个 PR。

Fork me on GitHub