Mozilla Central 贡献者指南

目录

使用 Git 提交补丁到 Firefox

本指南将指导您作为 Git 用户提交和更新 mozilla-central 的补丁。您需要已经 设置好使用 Git 为 mozilla-central 贡献代码

执行 Bug 修复

所有 Firefox 问题的未解决 Bug 都可以在 Bugzilla 中找到。如果您知道要贡献的组件,可以使用 Bugzilla 搜索该项目的 Bug。如果您不确定自己感兴趣的组件,可以搜索 新手 Bug 列表,找到您想参与的 Bug。

  • 找到 Bug 后,在 Bugzilla 中将其分配给自己。

  • 更新您本地 Firefox 代码库副本,使其与服务器上的最新版本一致,以确保您使用的是最新的代码。

git remote update
  • 创建一个新的功能分支,跟踪 Central 或 Inbound。

git checkout -b bugxxxxxxx [inbound|central]/default
  • 处理 Bug,根据您首选的工作流程检入 Git。请尽量确保每个提交都能编译并通过其组件的所有测试。如果您使用 ``moz-phab`` 提交 (稍后在本帖中详述),这将使其更容易合并。

拥有 Mozilla 提交权限(至少 1 级)可能会有所帮助。提交权限有三个级别,它们允许您访问越来越多的存储库。

1 级:Try/用户访问。您需要此级别的访问权限才能提交到 Try 服务器。

2 级:通用访问。这将使您能够完全访问任何不需要 3 级访问权限的 Mercurial 或 SVN 存储库。

3 级:核心访问。您需要此级别才能直接提交到任何核心存储库(Firefox/Thunderbird/Fennec)。

如果您希望申请提交权限,请遵循 Mozilla 提交权限策略 中的指南。

提交修改 C/C++ 代码的补丁

如果您的补丁对任何 C 或 C++ 代码进行了更改,并且您的编辑器不支持 clang-format,则应在提交补丁之前运行 clang-format linter,以确保您的代码格式正确。

mach clang-format -p path/to/file.cpp

请注意,./mach bootstrap 将提供设置提交钩子的选项,该钩子将自动为您执行此操作。

使用 1 级提交权限提交到 try

如果您只有 1 级访问权限,您仍然需要通过 Phabricator 提交补丁,但可以先在 Try 服务器上测试它。

  • 使用 ./mach try fuzzy 选择要运行的任务并推送到 Try。

通过 Phabricator 提交补丁

要向存储库提交任何内容,您需要设置 moz-phab 和 Phabricator。如果您使用的是 git-cinnabar,则需要使用这些工具的 Git 版本。

设置 Phabricator
  • 在浏览器中,访问 Mozilla 的 Phabricator 实例 https://phabricator.services.mozilla.com/

  • 点击页面顶部的“登录”

    Log in to Phabricator

    替代文本

  • 点击下一页上的“登录或注册”按钮。这将带您到 Bugzilla 登录或注册新账户。

    Log in or register a Phabiricator account

    替代文本

  • 使用您的 Bugzilla 凭据登录,或创建一个新账户。

    Log in with Bugzilla

    替代文本

  • 您将被重定向回 Phabricator,在那里您需要创建一个新的 Phabricator 账户。

  • 填写/修改表单中的任何字段,然后点击“注册账户”。

  • 您现在拥有了一个 Phabricator 账户,可以提交和审查补丁。

安装 moz-phab
pip install MozPhab [--user]
使用 moz-phab 提交补丁
  • 确保您位于包含要提交的提交的分支上。

git checkout your-branch
  • 检查要提交的提交的修订号。

git log
  • 运行 moz-phab。指定起始提交将提交该提交之后的所以提交。指定结束提交将提交截止到该提交的所有提交。如果没有提供位置参数,则范围将确定为从第一个非公开、非过时的变更集(对于 Mercurial)开始,到当前检出的变更集结束。

moz-phab submit [start_rev] [end_rev]
  • 您将收到每个提交的 Phabricator 链接。

更新补丁

  • 通常,您需要在补丁提交后对其进行修改以解决审查意见。为此,像往常一样将您的提交添加到修复程序的基础分支。

对于 moz-phab,以与初始提交相同的方式运行,并使用相同的参数,即指定完整的原始提交范围。请注意,虽然插入和修改提交应该可以正常工作,但尚未支持重新排序提交,删除提交将使关联的修订保持打开状态,应手动放弃。