获取代码审查

彻底的代码审查是 Mozilla 保证代码质量的方法之一。每个补丁都必须由代码的模块所有者或其指定的同行之一进行审查。

提交信息语法

提交补丁时,请使用以下语法请求审查。

请求

语法

描述

单个审查者

r=reviewer

请求单个审查者 (reviewer) 进行审查。从历史上看,语法 r?reviewer 用于请求审查,而 r=reviewer 用于标记在落地前接受补丁的审查者。现在,在请求审查时,两种语法都可以互换使用。

多个审查者

r=reviewer1,reviewer2

请求 _同时_ 由 reviewer1reviewer2 进行审查。

阻塞审查

r=reviewer!

请求 reviewer 进行 _阻塞_ 审查。这意味着 reviewer _必须_ 审查补丁才能落地。

可选和阻塞审查

r=reviewer1,reviewer2!

请求 reviewer2 进行 _阻塞_ 审查,并请求 reviewer1 进行 _可选_ 审查。

审查小组

r=#review-group

请求 #review-group 中的成员进行审查。完整的列表可在下方找到。

阻塞审查小组

r=#review-group!

请求审查小组进行阻塞审查。这将需要 _至少一名_ 小组成员批准才能落地。

例如,请求 group-name 或 developer-nickname 小组进行审查的提交语法如下:

Bug xxxx - explain what you are doing and why r?#group-name

or

Bug xxxx - explain what you are doing and why r?developer-nickname

可以在 Phabricator UI 中提交后选择或调整审查和审查小组。

有时在发布补丁时,由于代码被修改,系统会自动添加一些小组作为阻塞审查者。在这种情况下,您可能需要检查您请求审查的审查者是否也设置为阻塞。

选择审查者

  • 如果您在修复的 Bug 上分配了导师,则导师通常可以自己进行审查或代表您找到合适的审查者。

  • 如果您没有导师,请查看您的代码是否符合以下审查小组之一,并向该小组请求审查。

  • 否则,尝试查看文件的历史记录以查看最近是谁修改了它。(例如,hg log <modified-file>git log <modified-file>

  • 最后,如果您仍然无法识别合适的人选,请尝试在 #introduction 频道上 Matrix 中询问。

获得关注

通常,大多数审查将在大约一周内完成。但是,如果审查者在一周左右的审查请求后没有回复

  • 直接联系审查者(通过电子邮件或 Matrix)。

  • 加入 Mozilla 的 Matrix 服务器上的开发者,并询问是否有其他人知道审查为何延迟。请同时提供 Bug 链接。

  • 如果审查仍然未得到解决,请直接发送邮件给审查者,询问他们是否有时间审查补丁,或者是否有其他方式可以审查它。

请记住,审查者也是人,他们可能有很多复杂的原因导致他们无法及时审查您的补丁。请放心地联系您的审查者,但在这样做时请注意 Mozilla 社区参与准则

对于简单的文档更改,不需要审查。

有关审查流程的更多信息,请参阅 代码审查常见问题

审查小组

名称

拥有

成员

#anchor-positioning-reviewers

锚点定位 - 相关的样式和布局代码

成员列表

#anti-tracking

核心:反跟踪

成员列表

#build 或 #firefox-build-system-reviewers

配置和构建系统

成员列表

#cookies

核心:Cookie

成员列表

#cubeb-reviewers

cubeb,Gecko 的音频输入/输出库和相关项目(audioipc、cubeb-rs、Rust cubeb 后端)

成员列表

#desktop-theme-reviewers

用户界面 CSS

成员列表

#devtools-reviewers

Firefox DevTools

成员列表

#dom-worker-reviewers

DOM 工作线程

成员列表

#dom-storage-reviewers

DOM 存储

成员列表

#fluent-reviewers

Fluent (FTL) 文件(翻译)。

成员列表

#firefox-source-docs-reviewers

文档文件及其构建

成员列表

#firefox-ux-team

用户体验 (UX)

成员列表

#firefox-svg-reviewers

与 SVG 相关的更改

成员列表

#frontend-codestyle-reviewers

ESLint、Prettier 或 Stylelint 配置。

成员列表

#android-reviewers

Fenix、Focus 和 Android 组件。

成员列表

#geckoview-reviewers

GeckoView

成员列表

#gfx-reviewers

图形代码

成员列表

#intermittent-reviewers

测试清单更改

成员列表

#layout-reviewers

布局

成员列表

#layout-grid-reviewers

layout/grid

成员列表

#linter-reviewers

tools/lint/*

成员列表

#mac-reviewers

Mac 特定代码

成员列表

#media-playback-reviewers

媒体播放

成员列表

#mozbase

Mozbase

成员列表

#mozbase-rust

Rust 中的 Mozbase

成员列表

#necko-reviewers

网络代码(又名 necko,又名 netwerk)

成员列表

#nss-reviewers

网络安全服务 (NSS)

成员列表

#perftest-reviewers

性能测试

成员列表

#permissions 或 #permissions-reviewers

权限

成员列表

#places-reviewers

书签和历史记录(Places)

成员列表

#platform-i18n-reviewers

平台国际化

成员列表

#preferences-reviewers

桌面版 Firefox 的首选项(选项)用户界面

成员列表

#recomp-reviewers 或 #reusable-components-reviewers

UI 小部件、设计令牌、Storybook

成员列表

#remote-debugging-reviewers

远程调试 UI 和工具

成员列表

#search-reviewers

搜索

成员列表

#sessionstore 或 #sessionstore-reviewers

Firefox:会话恢复

成员列表

#spidermonkey-reviewers

SpiderMonkey JS/Wasm 引擎

成员列表

#static-analysis-reviewers

静态分析

成员列表

#style 或 #firefox-style-system-reviewers

Firefox 样式系统 (servo、layout/style)。

成员列表

#supply-chain-reviewers

第三方审计和引入 (cargo-vet、supply_chain)。

成员列表

#tabbrowser 或 #tabbrowser-reviewers

Firefox:选项卡式浏览器

成员列表

#theme 或 #desktop-theme-reviewers

Firefox:主题和工具包:主题

成员列表

#urlbar-reviewers

Urlbar(地址栏)

成员列表

#view-transitions-reviewers 或 #view-transitions 或 #vt

视图过渡 (dom/view-transitions,以及相关的样式/布局/图形代码)。

成员列表

#webcompat-reviewers

Web 兼容性团队维护的系统附加组件

成员列表

#webdriver-reviewers

Marionette 和 geckodriver(包括 MozBase Rust),以及带有 WebDriver BiDi 和 CDP 的远程协议。

成员列表

#webgpu-reviewers

WebGPU 代码

成员列表

#webidl

WebIDL

成员列表

#xpcom-reviewers

XPCOM

成员列表

要创建新的组,请在 Conduit::Administration 中提交新的 Bug。请参考 Bug 1613306 作为示例。