Engineering Effectiveness Newsletter (Q1 2026 Edition)

17 views
Skip to first unread message

David Lawrence

unread,
Apr 7, 2026, 11:43:02 AMApr 7
to firef...@mozilla.org, dev-pl...@mozilla.org

Welcome to the Q1 edition of the Engineering Effectiveness Newsletter! The Engineering Effectiveness org makes it easy to develop, test and release Mozilla software at scale. See below for some highlights, then read on for more detailed info!


Highlights

  • Suhaib Integrated Review Helper with Phabricator and moz-phab making AI-powered code review quick and simple.

  • Connor Sheehan implemented ETL from Lando to STMO, which allows us to get better visibility into lando's performance and usage.

  • Firefox 150 will ship with new PDF editing features completed by Calixte, letting users delete, copy, move, and export pages to a new PDF.


Detailed Project Updates

AI for Development

  • Suhaib Mujahid integrated Review Helper with Phabricator, enabling AI-powered code review directly from patches by clicking a "Request AI Review" button, allowing it to analyze the patch and post comments with any findings.

  • Suhaib Mujahid extended moz-phab to support requesting an AI review at patch submission time, enabling contributors to trigger Review Helper analysis directly from the command line via moz-phab --ai.

Bugzilla

  • Marco trained a new model in bugbug to detect bugs that are accessibility-related and missing the “access” keyword, to bring them to the attention of the accessibility team

  • Two fixes from dkl to improve the reliability of the background bot that syncs Phabricator revisions with Bugzilla bugs.

  • Kohei updated the markdown comment editor now intelligently handles pasting URLs. When you paste a URL while text is selected, it automatically formats it as a markdown link “[selected text](url)”.

  • Kohei has also done significant improvements to the Guided Bug Entry page for new Bugzilla pages that should be going live soon. 

Build System and Mach Environment

  • Better scheduling of rust dependencies through Bug 2011880 leads to ~1m saving in build time for opt build with hot cache.

  • Warning flags can no longer be added directly to  CFLAGS or CXXFLAGS in moz.build, they have to go in COMPILE_FLAGS["WARNINGS_CXXFLAGS"] (resp. COMPILE_FLAGS["WARNINGS_CFLAGS"]) (see Bug 1986258)


Firefox-CI, Taskcluster and Treeherder

  • Matt Boris upgraded FxCI to use RabbitMQ quorum queues and upgraded pulse to the latest available version for performance, security, and reliability.

  • Abhishek Madan migrated schema validation from Voluptuous to msgspec across taskgraph, mozilla-taskgraph, and firefox, resulting in a 30% improvement to decision task times.

  • Abhishek Madan moved Firefox from a vendored copy of taskgraph to PyPI installs at setup time, enabling support for packages that include compiled components.

  • Andrew Halberstadt made lots of progress migrating CI to Github, currently being used by mozilla/enterprise-firefox:

  • Andrew Halberstadt wrote a patch implementing the ability for the Taskcluster Github service to trigger hooks listed in .taskcluster.yml files. This will pave the way to share cross-project workflows and simplify in-repo configuration.

  • Cameron Dawson upgraded major frontend libraries of Treeherder

Lint, Static Analysis and Code Coverage

  • New linter for header guards, through bug 2009182, triggered by mach lint --linter header-guards . It enforces our code style.

  • A limited subset of clang-tidy’s static analysis is now run and enforced on our whole codebase. It is also reported during review on phabricator (see Bug 2023518 and related bugs)

  • ESLint and Prettier have been updated to the latest versions.

  • eslint-env comments are being removed as ESLint v9 does not support them (use eslint-file-globals.config.mjs instead). ESLint v10 (currently in rc) will raise errors for them.

  • More eslint-plugin-jsdoc rules have been enabled across the whole tree. These are the ones relating to valid-jsdoc. A few remain, but will need work by teams to fix the failur

  • The "Black" python formatter has now been replaced by "Ruff".

  • Marco greatly simplified the code coverage infrastructure, getting rid of two Heroku services, a frontend service, and a lot of code. The code coverage official UI is now Searchfox.

  • Marco added a new mach command (“./mach coverage-report”) to generate a coverage report from a push. The command is documented on the code coverage page in the Firefox source docs.

  • Teklia added added support for Github pull requests to Code Review Bot (prototype)

PDF.js

  • Calixte finished the implementation of the new reorganize and split functionality in PDF, which will ship in Firefox 150! Users will be able to delete, copy, move pages, and to export a subset of pages to a new PDF.

  • Nicolò Ribaudo implemented the ability to open context menus on images in PDFs, allowing users to perform actions they are used to (such as downloading images). This was a long standing feature request (11 years!).

  • Calixte added support for generating shading patterns thanks to webgpu.

Firefox Translations

  • Leonardo Paffi improved our testing capabilities by allowing us to serve inline HTML on the fly, rather than having to add an HTML file into the repository. This eases the burden of overhead to test special-case language characteristics, and ultimately helped us release Norwegian Bokmål (Bug 1996967).

  • Leonardo Paffi improved our handling of the macro language tag for Norwegian (no) to be compatible with our support for Norwegian Bokmål translations (Bug 2019123).

  • Tyler Etchart removed in-code references to quality estimation models, which are not utilized during translation inference within Firefox (Bug 1889753).

  • Tyler Etchart updated the generated Translations WASM JavaScript code to have explicit. comments expressing that the file is generated and should not be modified (Bug 1968038).

  • Tyler Etchart removed some old dead code related to prior ideas for Translations within Firefox (Bug 1996681).

  • Emilio Cobos Álvarez fixed an issue where the checkboxes within the Full-Page Translations Panel settings menu were no longer appearing (Bug 2010234).

Phabricator , moz-phab, and Lando

Release Engineering and Release Management

  • Ben Hearsum added new tests to verify update integrity on mozilla-central.

  • Julien Cristau updated the docker images for many build and related tasks from Debian 12 to Debian 13

  • Relman streamlined the release process by removing the Nightly soft code freeze and adjusting the Beta schedule to reduce end-of-cycle friction, create more effective stabilization time, and simplify release candidate workflows.

  • We now ship to the Xiaomi Store.

  • Delivered mid-cycle ESR dot releases to address critical security fixes ahead of the standard cadence, improving responsiveness while coordinating across multiple ESR versions and release channels.

  • Andrew Halberstadt helped support and build out the Firefox Enterprise release pipeline.

Release Operations 🔧

  • Mark Cornmesser improved Windows hardware management, including self-configuration and self-deployment capabilities, automated BIOS management, and standardization of BIOS settings across performance testing environments to ensure consistency and reliability.


Other

  • Thanks to Bug #2013401 mozilla::Maybe<scalar_type> generates better and denser code, 

which led to a reduction of 300kB for libxul.so


Thanks for reading and see you next quarter!


Reply all
Reply to author
Forward
0 new messages