Welcome to the October and 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
- Zeid added a Quick Start section to the mots documentation
- Suhaib implemented lots of new features for Autonag.
- BMO is now running on GCP.
- Lots of power profiling and efficiency improvements in Firefox.
- Reading PDFs in Android Nightly.
- MozBuild in glorious color on Windows.
- Improved Whattrainisitnow.com.
Detailed Project Updates
Bugzilla and Bugbug
- Suhaib implemented a feature for autonag to suggest increasing the severity when:
- Suhaib implemented improvements for autonag to better handling status flags:
- Avoid setting status flags to affected if the latest version flag is wontfix or fix-optional.
- Automatically set nightly status flag to affected on newly filed regression bugs.
- Set affected status flags to wontfix when closing intermittent bugs.
- Suhaib implemented a feature for autonag to notify about outdated triage owner rotation configurations.
- Suhaib implemented a feature for autonag to copy metadata from duplicate bugs, this includes:
- Dkl implemented a way to have pull requests automatically create attachments on bugs linking back. Bug 1792986 - Add Github API endpoint to be used for automatically linking PRs to bug attachments
- Dkl worked with dlactin in migrating Bugzilla from AWS to GCP
Build System and Mach Environment
- Alex resolved the last of long standing issues with “mach vendor python”, so you can now easily resume your vendoring ways
- Alex released MozillaBuild 4.0.2, allowing our Windows developers to bathe in the glory of coloured terminal output from our build system
- Alex migrated mach’s virtual environment from the older “virtualenv” module to the newer “venv”
CI and Treeherder
- ahal replaced gecko_taskgraph’s generator.py with the canonical version
- masterwayz and ahal made a ton of progress migrating the long tail of tasks from AWS to GCP
Crash Management
- We now record the microcode version of AMD CPUs correctly on Windows
- Generating inlined functions in symbol files is now more robust
- Non-canonical x86-64 addresses are now reported correctly in crash reports
Fuzzing and Sanitizers
- Improved Grizzly user experience for anyone using “grizzly.replay”
- better error and help messages
- increased reliability with slower builds and debuggers
- “–post-launch-delay 300” and “–timeout 0” can now be used to attach a debugger before running a test case
Lint, Static Analysis and Code Coverage
- Code Review Bot was enabled for Thunderbird thanks to the work of Rob Lemley!
- ./mach cargo {udeps, audit, clippy} have been implemented by Arthur Carcano. More to come
-
storybook and devtools now use mjs file extensions for module files
- Simpler for ESLint and allows to enable more rules
- Fixed an issue when having storybook’s node_modules installed, ./mach eslint would run forever.
- Running the eslint-plugin-mozilla tests now gives better output for failures.
- Python imports are now required to be sorted.
- Adrien Champion removed a bunch of dead code in third party code
- Many thanks to :trickypr who finished the work to switch from ESLint deprecated jsdoc rules to eslint-plugin-jsdoc.
- Next steps are to centralise the configuration to make it easier to roll out to more locations.
- We now have our build-dependent ESLint rules running on CI.
- Documentation is on source docs.
- It runs once a day (UTC midnight), and is tier-2.
- Sheriffs will file bugs if it starts failing, and issues are expected to be fixed within a couple of business days.
- It runs two additional rules:
- Output more precise Phabricator comments in DocUploadTask #1424
- We’ve added a new clang-tidy checker that displays unused include files from translation units.
- libmozevent now migrated from aioredis to redis-py since the first one is no longer updated.
OS Integration and Security
- gstoll added a new about:windows-messages page to show the most recent Windows OS messages sent to Firefox, which should help track down tricky multi-monitor issues.
- rkraesig’s OOM reduction work continued. After previously reducing parent process crashes, the technique has been applied to child processes (after some tweaking) leading to similar drops in OOM rate on Release.
- The blog post about the OOM crash reduction went out and received massive engagement
PDF.js
- Calixte fixed a printing/saving issue when some forms are filled with non-latin alphabets
- Calixte added support for reading PDFs in Firefox for Android Nightly. Pinch to zoom will come soon. Please help us test the feature by setting pdfjs.disabled to false!
Power use
- Power profiling is now also supported on Linux and Intel Macs (shipped in Firefox 107).
- Background content processes now use efficiency mode on Windows 11, saving significant power. (Firefox 108)
- The power overhead of BackgroundHangReporter on Nightly has been dramatically reduced
- Closing a PictureInPicture video no longer keeps animations running in the associated tab.
Phabricator , moz-phab, and Lando
- sheehan resolved outstanding issues with Lando’s automatic formatting during landing and rolled it out to all languages
- sheehan released moz-phab 1.2.0, 1.2.1, and 1.2.2.
- ANSI colour on Windows
- Adds
moz-phab doctor
to help identify common issues - Various perf improvements
Release Engineering and Management
- hneiva completed beetmover work to upload to gcloud GCS in parallel with AWS S3
- SRE is now testing switching the CDN to point to GCS
- Whattrainisitnow.com is now pointing to the fx-trains app, there is now more details on milestones pages as well as timezones information
- Local Firefox Feedback on Firefox release quality for Europe project launched
- 2 Firefox 105 dot releases + Firefox 106 & 5 Firefox 106 dot releases
- gbrown and jlorenzo migrated Android-Components to its new home firefox-android. This new repo will soon also host focus-android and fenix
- ahal implemented release-notify tasks for MozillaVPN
mozregression
- Zeid fixed ‘“Firefox Nightly” is damaged and can’t be opened’ errors on macOS 13 Ventura caused by changes to code signature verification in Ventura. mozregression now re-signs downloaded versions if required.
Other
- Zeid added a Quick Start section to the mots documentation, which documents the most common usages of the mots command. A check for updates was also added to notify users when there is a newer version available.
- Zeid added a new mots command that makes it easy to search for users on Bugzilla in order to add them as peers or owners in the module definition (
mots user search
)
Thanks for reading and see you next month!