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/。
点击页面顶部的“登录”
点击下一页上的“登录或注册”按钮。这将带您到 Bugzilla 登录或注册新账户。
使用您的 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
,以与初始提交相同的方式运行,并使用相同的参数,即指定完整的原始提交范围。请注意,虽然插入和修改提交应该可以正常工作,但尚未支持重新排序提交,删除提交将使关联的修订保持打开状态,应手动放弃。