Engineering Effectiveness Newsletter (December & January 2023-2024 Edition)

Welcome to the December 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

  • MozillaBuild 4.1 was released.
  • Add support for colored highlighting in pdfs.
  • Fenix as a default pdf reader on Android is live in 122.
  • Connor Sheehan added a dedicated landing worker for Lando-try pushes. Pushes will land faster and no longer share a landing queue with regular landings.
  • New releases of moz-phab.
  • Gabriel Bustamante shipped Mozilla’s first official .deb package for Linux users in Firefox 122.

Contributors

Detailed Project Updates

Bugzilla and Bugbug

Build System and Mach Environment

  • MozillaBuild 4.1 was released.

CI and Treeherder

  • Andrew Halberstadt implemented the -E/–use-existing-tasks flag for ./mach try fuzzy and ./mach try chooser. This will detect your previous try push and insert all the tasks that ran there (minus any tasks you explicitly select) into the graph of your new try push. This allows for faster iteration on the task at hand, without needing to wait for its dependencies each time.

Crash Management

Lint, Static Analysis and Code Coverage

OS Integration and Security

  • Paul Bone is continuing the PHC roll-out. PHC is currently enabled for 10% of the Firefox Release population. While most of the crash reports coming in are bad hardware or similar we’re beginning to get actionable information for real memory errors.

PDF.js

  • Add support for highlighting (text or not).
  • Switch from CDP to BiDi driver when running tests: there are almost no more intermittents with Firefox.
  • Fenix as a default pdf reader on Android is live in 122.

Firefox Translations

Phabricator , moz-phab, and Lando

  • Connor Sheehan released moz-phab 1.5.0 and 1.5.1. See release notes below.
  • Connor Sheehan added a dedicated landing worker for Lando-try pushes. Pushes will land faster and no longer share a landing queue with regular landings.
  • Connor Sheehan made mach try –push-to-lando better at identifying the base revision for submission, fixing some issues where patches would submit but fail to apply within Lando.
  • Connor Sheehan fixed an issue with Lando’s Git patch parser where patches would fail to apply within Lando due to incorrectly parsed Git version info in the patch.
  • Connor Sheehan made Lando-uplift re-use existing Phabricator diff information instead of reconstructing from a raw patch, fixing display issues in the diff view and resolving an issue where binary files would be lost at landing time.
  • Connor Sheehan moved the uplift request button to a more discoverable area and the form into a separate modal.

Release Engineering and Management

  • Release Management released Firefox Fx121 and Fx122 on Desktop, Android, and iOS.
    • Fx121 also included 1 dot release on Desktop and 2 dot releases for Android and iOS
    • Fx122 also included 1 dot release on Desktop and 2 dot releases for Android and iOS
  • Gabriel Bustamante shipped Mozilla’s first official .deb package for Linux users in Firefox 122. After 7 days on release, we already gathered 4k DAU and 8k MAU and numbers are still steadily growing. The .deb package was called out in 40 news articles.
  • Heitor Neiva and Haik Aftandilian, thanks to their work on macOS hardened entitlements, enabled the Security Engineering team to ship macOS Passkeys. This major highlight of Firefox 122 was covered in 27 news articles.
  • Geoff Brown and Ryan VanderMeulen enabled a new Android packaging format (AAB) on Firefox for Android. We were close to not being able to ship new features anymore. The new format sets a new size constraint that is twice larger. Moreover Fenix packages got 30% smaller which improves the update experience.
  • Ben Hearsum fixed a bug in Taskcluster that caused live logs and interactive tasks to fail under certain circumstances.
  • Julien Cristau solved the biggest problem we had on the Android repository migration: how do we connect the Firefox build system to the Fenix one when there’s all in the same repo. This was a problem with a lack of knowledge at Mozilla and dozens of parameters to take into account.
  • The work that Ben Hearsum and Heitor Neiva did on macOS Attribution in 2023H2 (Firefox ORK 4.1) is rolling out with Firefox 123. Early data shows a very high attribution rate of ~90%.
  • Andrew Halberstadt made improvements to Ship-It to support arbitrary groups of projects. Previously all projects were assumed to be related to Firefox or mozilla-extensions.
  • Building on the above, Andrew Halberstadt added support for releasing Mozilla VPN client and addons through Ship-It.

Version Control

  • Connor Sheehan and an external contractor worked to resolve issues around corruption in the try repo, allowing us to upgrade the storage format. This provided a moderate improvement in push time.
  • Connor Sheehan added support for clonebundles manifest filtering in newer versions of Mercurial, avoiding bustages in CI.

Thanks for reading and see you next month!