Engineering Effectiveness Newsletter (November 2023 Edition)

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

  • Ray Kraesig has moved the Windows file picker out of process and made it async (in Nightly for now). This keeps the parent process’s main thread more responsive.
  • Greg Tatum shipped a new single-process architecture in Gecko for the translations engine, a requirement for shipping on Android.
  • Speedometer3 is now used as part of the PGO training set.
  • Fenix remains on track to ship version 121 with the AAB packaging format, allowing for more aggressive optimizations to land which were previously blocked on unacceptable APK size regressions in the past due to how close to the size limit we were. Focus shouldn’t be far behind!

Contributors

Detailed Project Updates

Bugzilla and Bugbug

Build System and Mach Environment

  • Speedometer3 is now used as part of the PGO training set.
  • Documentation for vendoring third party projects through mach vendor is now available.
  • Sccache 0.7.4 has been released with direct preprocessor access (similar to ccache)

Crash Management

OS Integration and Security

  • Ray Kraesig has moved the Windows file picker out of process and made it async (in Nightly for now). This keeps the parent process’s main thread more responsive.
  • Yannis Juglaret fixed a race condition in our DLL interception code that could lead to crashes.
  • Paul Bone has kicked off the first PHC-in-release experiment and we’re already seeing PHC annotated crash reports from this sample of the release channel. PHC is the Probabilistic heap checker, it annotates crash reports with allocation and free stacks - so these crashes are a good thing and this is a success.

PDF.js

  • The first bits of the new highlighting feature have been landing.

Firefox Translations

  • Greg Tatum shipped a new single-process architecture in Gecko for the translations engine, a requirement for shipping on Android.
  • Erik adjusted our language distribution so that Nightly now contains all experimental languages.
  • Teklia (contractor) is building out Weights and Biases integration with our training pipeline.
  • Evgeny integrated OpusTrainer in the training pipeline, which will allow us to perform data augmentation to fix some specific problems with translations (such as ALL CAPS sentences)

Phabricator , moz-phab, and Lando

  • Connor Sheehan added parsing of git remote -v when running mach try –push-to-lando, fixing a problem where pushes would fail with an incorrect base commit.
  • Alexandre Lissy added notifications when a Lando try push requires authentication, and Paul Adenot added support for opening the browser automatically.
  • Connor Sheehan dropped support for Python 3.7 in moz-phab.
  • Connor Sheehan made Lando-try failure emails less Phabricator-specific and more readable.

Release Engineering and Management

  • Fenix remains on track to ship version 121 with the AAB packaging format, allowing for more aggressive optimizations to land which were previously blocked on unacceptable APK size regressions in the past due to how close to the size limit we were. Focus shouldn’t be far behind!
  • whattrainisitnow.com : “QA Test Plan approval due” milestone has been to the calendar and we now display the rough number of working days for staff before getting to a specific milestone.
  • We started promoting all small platform wins on nightly using the X and Mastodon FirefoxNightly accounts managed by the Release Management team
  • Our new Debian package reached Beta and Developer Edition. Communication began at the end of November.
  • RelEng is in touch with a contractor to address the long duration of the Gecko decision task. Improve performance of the gecko decision task
  • Heitor Neiva tested the recent changes in rcodesign to sign Firefox (we currently use it for notarization only). Initial results are promising, and we will continue to investigate its viability for signing our macOS and iOS packages.
  • Michelle Mounde will join the Release Engineering team for an outreachy internship on Balrog! Gabriel Bustamante and Ben Hearsum will mentor her. Welcome aboard, Michelle!
  • Andrew Halberstadt converted Releng’s treescript worker to use Github app authentication (rather than a bot account). To support this, he also created a new Python library called simple-github.

Version Control

  • Chris Knowles and Connor Sheehan scheduled and performed maintenance upgrades on the Zeus load balancer in front of hg.mozilla.org.
  • Connor Sheehan and Rob Lemley configured and generated a comm-unified repo, containing the entire history of Thunderbird development in the same fashion as mozilla-unified.
  • Connor Sheehan published compatibility fixes for client-side extensions on Mercurial 6.6.

Thanks for reading and see you next month!