Getting reviews
Thorough code reviews are one of Mozilla’s ways of ensuring code quality. Every patch must be reviewed by the module owner of the code, or one of their designated peers.
Commit message syntax
When submitting your commit(s), use the following syntax to request review for your patch:
Request |
Syntax |
Description |
|---|---|---|
Single reviewer |
|
Request a review from a single reviewer ( |
Multiple reviewers |
|
Request reviews from both |
Blocking review |
|
Request a blocking review from |
Both optional and blocking reviews |
|
Request a blocking review from |
Review groups |
|
Request a review from members of |
Blocking review groups |
|
Request a blocking review from a review group. This will require at least one member of the group to approve before landing. |
For example, the commit syntax to request review from group group-name or developer-nickname would be:
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
Reviews, and review groups, can be selected or adjusted after submission in the phabricator UI.
Sometimes when publishing a patch, groups will automatically be added as blocking reviewers due to the code being touched. In this case, you may want to check that the reviewers you requested review from are set to blocking as well.
Choosing reviewers
Prefer a review group over an individual reviewer. Groups spread the load across several people, so your patch is far less likely to sit waiting on someone who is on holiday, sick, or busy with another project. Only request a specific person when no group covers the code you are touching, or when someone is already the obvious owner of that change.
If your code fits into one of the review groups below, request review from that group.
If you have a mentor assigned on the bug you are fixing, the mentor can usually either also review or find a suitable reviewer on your behalf.
Otherwise, try looking at the history of the file to see who has modified it recently (for example,
git log <modified-file>).Finally if you are still unable to identify someone, try asking in the #introduction channel on Matrix.
Getting attention
We expect reviews to happen within a day or two, and most of them do. Requesting review from a group rather than an individual is the best way to get a quick answer, as any member of the group can pick the patch up.
If a reviewer hasn’t responded after two or three days:
Ping the review group’s channel, or contact the reviewer directly (either via e-mail or on Matrix).
Join developers on Mozilla’s Matrix server, and ask if anyone knows why a review may be delayed. Please link to the bug too.
If the review is still not addressed after a week, request review from a group covering that code, or from another peer or the module owner listed in mots.
Remember that reviewers are human too, and may have complex reasons that prevent them from reviewing your patch in a timely manner. Be confident in reaching out to your reviewer, but be mindful of the Mozilla Community Participation Guidelines while doing so.
For simple documentation changes, reviews are not required.
For more information about the review process, see the Code Review FAQ.
Review groups
Name |
Owns |
Members |
|---|---|---|
#anchor-positioning-reviewers |
Anchor positioning - related style and layout code |
|
#anti-tracking |
||
#build or #firefox-build-system-reviewers |
The configure & build system |
|
#cookies |
||
#cubeb-reviewers |
cubeb, Gecko’s audio input/output library and associated projects (audioipc, cubeb-rs, rust cubeb backends) |
|
#desktop-theme-reviewers |
||
#devtools-reviewers |
||
#dom-core |
||
#dom-worker-reviewers |
DOM Workers |
|
#dom-storage-reviewers |
DOM Storage |
|
#extension-reviewers |
||
#fluent-reviewers |
Fluent (FTL) files (translation). |
|
#firefox-source-docs-reviewers |
Documentation files and its build |
|
#firefox-ux-team |
User experience (UX) |
|
#firefox-svg-reviewers |
SVG-related changes |
|
#frontend-codestyle-reviewers |
ESLint, Prettier or Stylelint configurations. |
|
#android-reviewers |
Fenix, Focus and Android Components. |
|
#geckoview-reviewers |
GeckoView |
|
#gfx-reviewers |
Graphics code |
|
#gtk-reviewers |
GTK/Linux-specific widget code (widget/gtk) |
|
#intermittent-reviewers |
Test manifest changes |
|
#ipc-reviewers |
||
#layout-reviewers |
Layout |
|
#layout-grid-reviewers |
layout/grid |
|
#linter-reviewers |
tools/lint/* |
|
#mac-reviewers |
Mac-specific code |
|
#media-playback-reviewers |
||
#mozbase |
Mozbase |
|
#mozbase-rust |
Mozbase in Rust |
|
#necko-reviewers |
network code (aka necko, aka netwerk) |
|
#nss-reviewers |
Network Security Services (NSS) |
|
#perftest-reviewers |
Perf Tests |
|
#permissions or #permissions-reviewers |
||
#places-reviewers |
||
#platform-i18n-reviewers |
Platform Internationalization |
|
#preferences-reviewers |
Firefox for Desktop Preferences (Options) user interface |
|
#recomp-reviewers or #reusable-components-reviewers |
UI Widgets, Design Tokens, Storybook |
|
#remote-debugging-reviewers |
Remote Debugging UI & tools |
|
#search-reviewers |
||
#sessionstore or #sessionstore-reviewers |
||
#spidermonkey-reviewers |
SpiderMonkey JS/Wasm Engine |
|
#static-analysis-reviewers |
Static Analysis |
|
#style or #firefox-style-system-reviewers |
Firefox style system (servo, layout/style). |
|
#supply-chain-reviewers |
Third-party audits and vendoring (cargo-vet, supply_chain). |
|
#tabbrowser or #tabbrowser-reviewers |
||
#theme or #desktop-theme-reviewers |
||
#translations-reviewers |
||
#urlbar-reviewers |
||
#view-transitions-reviewers or #view-transitions or #vt |
View Transitions (dom/view-transitions, and the relevant style / layout / gfx code). |
|
#webcompat-reviewers |
System addons maintained by the Web Compatibility team |
|
#webdriver-reviewers |
Marionette and geckodriver (including MozBase Rust), and Remote Protocol with WebDriver BiDi, and CDP. |
|
#webgpu-reviewers |
WebGPU code |
|
#webidl |
WebIDL |
|
#xpcom-reviewers |
XPCOM |
To create a new group, fill a new bug in Conduit::Administration. See bug 1613306 as example.