如何为 Firefox 贡献代码¶
整个过程可能有点长,并且可能需要时间才能正确设置。如果在任何时候遇到困难,请不要犹豫,在 https://chat.mozilla.org 的 #introduction 频道提问。此外,以下是一些礼仪提示,以便在寻求帮助时有所帮助
请不要先询问是否可以提问,请直接提出你的问题并提供相关的上下文,有人会在有时间时提供帮助。
使用面向公众的渠道提出你的问题,而不是直接发送消息给个人。
其他人可以从你的问题中学习,并且由于 #introduction 频道中有很多人,因此你的问题更有可能得到快速解答。
你的问题可能不会立即得到解答,这是正常的!如果在一小时左右后仍未收到反馈,可以随时重新发布问题。
有时消息会被忽略或通知会在其他事情中丢失,因此在这种情况下重新发布问题是正常的。
请搜索相关频道的最近滚动记录,查看你的问题是否已被提出和/或解答。
大多数设置问题之前都遇到过,因此很有可能你的问题最近已被解答。
我们通过编写补丁、测试补丁并将它们推送到“树”(我们用于 Mozilla-Central 中所有代码的术语)来更改 Firefox。让我们开始吧。
请参阅 Firefox 贡献者快速参考 获取简单的清单。
寻找工作内容¶
查找我们已识别为适合新贡献者的错误。¶
Bugzilla 中有数百万个错误报告,因此可能难以知道从哪里开始,因此我们创建了这些错误类别,以便更容易参与其中
Codetribute - 我们的网站,用于查找有指导的错误,有些是良好的第一个错误,有些稍微难一些。你的导师将帮助你指导错误修复以及提交和落地过程。
良好的第一个错误 - 是进入 Mozilla 生态系统的最佳方式。它们都与微小的更改有关,有时只有几行,但它们是了解如何设置你的开发环境、浏览 Bugzilla 以及为 Mozilla 代码库做出贡献的好方法。
学生项目 - 是更大的项目,例如可能适合大学学生获得学分。当然,如果你不是学生,也可以随意修复这些错误之一。我们维护两个列表:一个用于基于现有代码库的项目 项目。
修复该错误¶
如果你想修复关于 Firefox、Thunderbird 或你其他喜欢的 Mozilla 应用程序的特定错误,这可能是一个很好的起点。有多种方法可以做到这一点
搜索 bugzilla 获取相关关键词。请参阅有关 Bugzilla 和搜索 Bugzilla 的页面以获取更多帮助
了解你的错误所在的 bugzilla 组件,使用组件列表。浏览 bugzilla 上的此组件以查找相关的错误
修复你的错误¶
我们将其交由你处理。以下是一些其他资源以帮助你
获取代码审查¶
修复错误后,你可以进入代码审查阶段。
Mozilla 使用 Phabricator 进行代码审查。
应该找谁进行审查?
如果你有一个指导的错误:询问你的导师。他们会提供帮助,或者很容易找到合适的人。可能是他们自己!
在该文件上运行
{hg, git} blame
并查找触碰你正在处理的函数的人。他们也是不错的选择。运行{hg, git} log
并查找定期审查的人也可能是一种解决方案。错误本身可能包含明确指示最适合进行审查的人员的信息
是否有关于类似主题的相关错误?这些错误的审阅者可能是另一个不错的选择
我们有一个 模块列表,其中列出了模块的同行和所有者。其中一些将是优秀的审阅者。在最坏的情况下,将模块所有者设置为审阅者,并在评论中要求他们选择更合适的人员
请仅选择一位审阅者。
跟进和回复¶
请求审查后,审阅者通常会在 一两天内回复,审查补丁或说明他们何时能够审查,这可能是由于积压的工作造成的。如果你在这段时间内没有收到回复,请自然地与他们联系:在错误中添加一条评论,内容为“审查 ping?”,选中“需要更多信息来自”框,并添加审阅者的姓名。如果他们在一两天内没有回复,你可以在 Matrix 上的 #introduction:mozilla.org 或 #developers:mozilla.org 频道寻求帮助。
如果进展不顺利,也不要犹豫,联系你的导师。
对于大多数新贡献者,甚至对于长期贡献的 Mozillian 来说,他们补丁的第一次审查将是“请求更改”(或 Bugzilla 中的“r-”)。这并不意味着你做得不好。在将代码合并到树中之前,还需要做更多工作。你的补丁可能需要一些更改——可能是小更改,也可能是大更改——并且你的审阅者会为你提供一些关于接下来需要做什么的指导。
这是一个重要的流程,所以不要气馁!凭借我们长期存在的代码库以及数亿用户,帮助贡献者提供优质补丁的关怀和关注是 Mozilla 项目的基石。进行审阅者要求的任何更改;如果你不确定如何操作,请务必提问!将你的新补丁再次推送到 Phabricator 并请求同一审阅者进一步审查。如果他们接受了你的更改,则表示你的补丁可以落地到树中!
将代码集成到 Firefox 中¶
一旦你的补丁被接受,它就可以投入使用了。在将其合并到树中之前,你的补丁需要通过我们的 Try 服务器 进行成功的运行,确保没有意外的回归。如果你还没有 Try 服务器访问权限,你的导师或审查你的补丁的人员将能够提供帮助。
请审阅者为你落地补丁。有关更多详细信息,请参阅 在代码库中推动更改
重复以上步骤!¶
谢谢。你已经修复了你的第一个错误,开放网络因此变得更加强大。但不要就此止步。
返回步骤 3,因为还有很多事情要做。你的导师可能会建议你处理一个新的错误,或者 找到一个你感兴趣的错误。现在你已经修复了第一个错误,你应该请求对存储库的 1 级访问权限,以便推送到 Try 服务器并在多个平台上获取有关更改的自动化反馈。修复一定数量的错误后,你应该请求 3 级访问权限,以便在代码经过审查后自行落地。
更多信息¶
我们正在改进此页面上的信息,以便项目的新手更容易上手。我们很快就会将这些页面中的一些信息整合进来,但在那之前,你可能会发现它们目前的格式很有趣