Welcome to the February & March edition of the Engineering Effectiveness &
OS integration 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
-
PDF.js will ship in Fenix 111! Say goodbye to downloading PDFs on
Android and enjoy reading them in Firefox with maximum security!
-
We are also one of the few readers on Android to support filling
forms, JS in PDF and soon editing
-
A huge performance issue in Windows Defender’s Real-time Protection
feature has been identified
<https://bugzilla.mozilla.org/show_bug.cgi?id=1441918#c87> and reported
<https://bugzilla.mozilla.org/show_bug.cgi?id=1441918#c82>. The patch
from Microsoft will be released soon and appears to reduce CPU usage
from MsMpEng.exe by 75%
<https://bugzilla.mozilla.org/show_bug.cgi?id=1441918#c91> when Firefox
is running. There were also additional fixes
<https://bugzilla.mozilla.org/show_bug.cgi?id=1788004> and workarounds
<https://bugzilla.mozilla.org/show_bug.cgi?id=1733532> for various
crashes and performance issues
<https://bugzilla.mozilla.org/show_bug.cgi?id=1823412> caused by
third-party software on Windows.
-
Code to provide Glean Crash Ping Telemetry in Fenix
<https://bugzilla.mozilla.org/show_bug.cgi?id=1810951> has landed! This
means Fenix now has reliable stability metrics.
-
The minimum Python version for Mach and all commands has been bumped to
3.7 <https://bugzilla.mozilla.org/show_bug.cgi?id=1734402>! This
unblocks a ton of pain points and bugs that were held up due to dependency
conflicts.
-
Windows 11 is now a top tier test platform, running the full gamut of
tests in CI <https://bugzilla.mozilla.org/show_bug.cgi?id=1794900>.
Contributors
-
John Pangas (jpangas)
-
Xuanwo
-
Yogesh Singla (singla007)
-
Anurag Bhandari (WhiteWolf47)
-
Elena McLeod (ElusiveEllie)
-
Joshua Hassan (skynette)
-
Prerna Dabi (prernadabi23)
-
Srishti Gupta (srishtig2412)
Detailed Project UpdatesBugzilla and Bugbug
-
Suhaib Mujahid reduce the swinging on topcrash bugs by making autonag
more restrictive <https://github.com/mozilla/relman-auto-nag/pull/1852>
when re-adding topcrash keywords.
-
Suhaib Mujahid refactored autonag to use the Firefox Trains
<https://whattrainisitnow.com/> API instead of parsing a wiki page
<https://wiki.mozilla.org/index.php?title=Release_Management/Calendar>,
thanks to Pascal Chevrel for building the API!
-
Marco Castelluccio presented @ FOSDEM 2023 - Teaching machines to handle
bugs and test Firefox more efficiently
<https://fosdem.org/2023/schedule/event/firefox_testing/>.
-
John Pangas (first contribution🌟) prepared Bugbug to upgrade to a newer
version of scikit-learn <https://github.com/mozilla/bugbug/pull/3300>.
-
Suhaib Mujahid gave a talk @ Montreal Software Test & Automation Meetup
- Automate tedious tasks in the bug management process at Mozilla
<https://www.meetup.com/software-test-automation/events/291587479/>.
-
glob updated the Bugzilla home page <https://bugzilla.mozilla.org/home>,
adding links to download Firefox Beta and Nightly and refreshing the design.
-
Dave Lawrence added an endpoint to Bugzilla
<https://bugzilla.mozilla.org/show_bug.cgi?id=1802052> that
automatically comments on bugs when an associated pull request on GitHub
lands
-
Suhaib Mujahid implemented a new feature
<https://github.com/mozilla/relman-auto-nag/pull/1916> for autonag that
requests missing information when moving a bug to the Core::Performance
component.
-
We kicked off an effort to reduce open S2 platform bugs by 75%, closing
out around 80 bugs so far.
Build System and Mach Environment
-
Alex Hochheiden added caching to configure compiler checks (15-50%
speed-up on subsequent runs of configure with the same compiler version).
-
Alex Hochheiden bumped the minimum Python version
<https://bugzilla.mozilla.org/show_bug.cgi?id=1734402> for Mach to 3.7
-
Mike Hommey updated the Rust compiler to 1.68
<https://bugzilla.mozilla.org/show_bug.cgi?id=1805805>
-
Mike updated the build system
<https://bugzilla.mozilla.org/show_bug.cgi?id=1821221> to build
libunwind & compiler-rt for Android and upgraded the Android NDK to
r23c <https://bugzilla.mozilla.org/show_bug.cgi?id=1820876>.
-
Serge Guelton improved null build run time
<https://bugzilla.mozilla.org/show_bug.cgi?id=1806617>
-
Alex Hochheiden landed work that restores the ability to vendor Python
code into mozilla-central
CI and Treeherder
-
Sebastian Hengst, Joel Maher and Suhaib Mujahid identified one of the
main reasons for Treeherder performance issues
<https://github.com/mozilla/ci-and-quality-tools/issues/100> (you
know…those pesky times when it closes the trees) landed some fixes and
planned some work.
-
Joel Maher has been reducing the volume of errors
<https://bugzilla.mozilla.org/show_bug.cgi?id=1815963> Treeherder parses
(helps with TH database perf) by >50% already
-
Geoff Brown, Joel Maher and Jonathan Moss migrated Windows 7 from AWS ->
Azure <https://bugzilla.mozilla.org/show_bug.cgi?id=1804790>.
-
Joel Maher finished the pixel2 -> pixel5 migration
<https://bugzilla.mozilla.org/show_bug.cgi?id=1794895> (thanks to Jamie
Nicol for the fix to wrench
<https://bugzilla.mozilla.org/show_bug.cgi?id=1795592> jobs!)
-
Joel Maher and Marco Castelluccio got consensus to turn off Windows
10/Aarch64 tests <https://bugzilla.mozilla.org/show_bug.cgi?id=1813991>
in CI.
-
Joel Maher and Jonathan Moss have turned on win11 tests
<https://bugzilla.mozilla.org/show_bug.cgi?id=1794900> in CI, we will
continue to run a subset on win10
<https://bugzilla.mozilla.org/show_bug.cgi?id=1817884>.
-
Suhaib Mujahid and Joel Maher had the first cycle of variant expiration
<https://docs.google.com/document/d/1U17fEx9D1lRjJMfjNrGPjjbQCOy1qQjjuj9gufsXW9c/edit#heading=h.efozttw5p6fn>.
In Bug 1816141 <https://bugzilla.mozilla.org/show_bug.cgi?id=1816141>,
we tracked the first expiration/renewal cycle:
-
17 Renewed for 6 months
-
3 Removed
-
100% response rate!
-
Sylvestre Ledru created a sccache github action
<https://github.com/marketplace/actions/sccache-action>.
-
It allows very simple usage of sccache with GitHub storage for faster
builds
-
For example, servo is now using sccache actions
<https://github.com/servo/servo/pull/29572> for their builds.
-
Sylvestre Ledru released version 0.4.0 of sccache
<https://github.com/mozilla/sccache/releases/tag/v0.4.0>. This version
brings many more error checks, leverages OpenDAL
<https://github.com/apache/incubator-opendal> for storage access and
other improvements. Thanks to Xuanwo for all the hard work.
-
Marco Castelluccio made some CI artifacts expire sooner, saving dozens
of TBs of cloud storage
-
Glob updated the Build Telemetry Dashboard
<https://sql.telemetry.mozilla.org/dashboard/build> to include “mach
try” latency
<https://sql.telemetry.mozilla.org/queries/90584?p_date=d_last_30_days#224317>
-
Andrew Halberstadt implemented
<https://github.com/taskcluster/taskgraph/commit/5df1c816e24f5ae2f6b36e13de3d2108d147a628>
a taskgraph init subcommand to help projects get bootstrapped
<https://taskcluster-taskgraph.readthedocs.io/en/latest/#getting-started>
with Taskgraph more quickly. He also created a firefox-ci-playground
<https://github.com/mozilla-releng/firefox-ci-playground> repository for
anyone who wants to try Taskgraph out.
-
Andrew Halberstadt created a generic “mozilla” trust domain and pools.
This will allow new projects to get set up much quicker by using
pre-defined resources instead of blocking on project specific ones.
Crash Management
-
Alex Franchuk landed the code to provide Glean Crash Ping Telemetry in
Fenix <https://bugzilla.mozilla.org/show_bug.cgi?id=1810951>. This means
Fenix now will also have reliable stability metrics
<https://mozilla.cloud.looker.com/dashboards/1114>.
Lint, Static Analysis and Code Coverage
-
Valentin Rigal has been making steady progress towards before/after
analysis in the code review bot
-
Michelle Goossens has migrated the code review and the code coverage
services from AWS to GCP
-
Andrew Halberstadt replaced our Python linters
<https://bugzilla.mozilla.org/show_bug.cgi?id=1811850> (flake8, isort,
pylint) with Ruff <https://github.com/charliermarsh/ruff>, a
comprehensive linter written in Rust. Python linting now takes one or two
seconds instead of minutes!
OS Integration and Security
-
Bob Owen landed the code to enable Low Privileged Application Container
support <https://bugzilla.mozilla.org/show_bug.cgi?id=1793972> which we
will use to sandbox some media decoders.
-
Yannis Juglaret identified
<https://bugzilla.mozilla.org/show_bug.cgi?id=1441918#c87> and reported
<https://bugzilla.mozilla.org/show_bug.cgi?id=1441918#c82> a huge
performance issue in Windows Defender’s Real-time Protection feature. The
patch from Microsoft will be released soon and appears to reduce CPU
usage from MsMpEng.exe by 75%
<https://bugzilla.mozilla.org/show_bug.cgi?id=1441918#c91> when Firefox
is running. He also landed a series of fixes
<https://bugzilla.mozilla.org/show_bug.cgi?id=1788004> and workarounds
<https://bugzilla.mozilla.org/show_bug.cgi?id=1733532> for various
crashes and performance issues
<https://bugzilla.mozilla.org/show_bug.cgi?id=1823412> caused by
third-party software on Windows.
-
Stephen A Pohl landed support for macOS session resume
<https://bugzilla.mozilla.org/show_bug.cgi?id=639707> after restarts of
macOS, for example as a result of OS updates. We plan to use telemetry to
measure how this affects users getting back into Firefox after macOS OS
updates. Currently, we are observing that roughly 1% of Firefox starts are
occurring after a macOS restart vs. users manually starting Firefox:
-
Greg Stoll wrote a blog post on hacks about third-party DLLs: Letting
users block injected third-party DLLs in Firefox - Mozilla Hacks - the Web
developer blog
<https://hacks.mozilla.org/2023/03/letting-users-block-injected-third-party-dlls-in-firefox/>
(reddit discussion 1
<https://www.reddit.com/r/firefox/comments/127mpu1/letting_users_block_injected_thirdparty_dlls_in/>,
reddit discussion 2
<https://www.reddit.com/r/programming/comments/126vpe1/letting_users_block_injected_thirdparty_dlls_in/>
)
PDF.js
-
PDF.js will ship in Fenix 111, say goodbye to downloading PDFs on
Android, enjoy reading them in Firefox with maximum security!
-
We are also one of the few readers on Android to support filling
forms, JS in PDF and soon editing
Power use
-
Florian Quèze talked at FOSDEM to explain the work we are doing to
understand
and reduce Firefox’s power use
<https://fosdem.org/2023/schedule/event/mozilla_firefox_energy_use/>. He
also explained how power profiling works
<https://fosdem.org/2023/schedule/event/energy_power_profiling_firefox/>
in the Firefox Profiler.
Phabricator , moz-phab, and Lando
-
Zeid Zabaneh significantly reduced the time it takes Lando to load large
stacks.
-
Zeid Zabaneh implemented various changes in Lando in preparation for
revision worker, including fixes to merge conflict detection and
improvements to how Phabricator data is cached
Release Engineering and Management
-
Ben Hearsum fixed mach try
<https://bugzilla.mozilla.org/show_bug.cgi?id=1816440>, so that –artifact
implies –disable-pgo which makes it easier to get tests or other jobs
that depend on shippable builds to run quickly.
-
Geoff Brown and Johan Lorenzo migrated Fenix (Android) to the new
Android Monorepo (bug 1803130
<https://bugzilla.mozilla.org/show_bug.cgi?id=1803130>). Now
android-components, Focus, and Fenix all reside and are all built in the
same repo.
-
RelMan identified a major regression
<https://bugzilla.mozilla.org/1819096> with the Denmark Digital ID
system via the Local Firefox project started last quarter. One day later,
we shipped a planned dot release with an additional fix for this regression.
-
RelEng, Release SRE and RelMan handled a Chain of Trust rotation
incident immediately prior to shipping Firefox 110. These rotations
normally take months, but we were able to get it done in two days and avoid
delaying the release.
-
Johan Lorenzo ensured Geckoview nightly builds twice daily
<https://bugzilla.mozilla.org/show_bug.cgi?id=1817052>. He also made
Android Fenix/Focus Nightlies and Betas follow the same cadence as desktop
Firefox.
-
Johan Lorenzo gave a talk (in French) at PyCon France - Can a bunch of
Python make Firefox less prone to supply chain attacks?
<https://www.pycon.fr/2023/en/talks/30m.html#une-bonne-quantite-de-python-p>.
It details our use of Taskcluster, Taskgraph and Chain of Trust.
-
Pascal Chevre refreshed and migrated the Release Management Calendar
page from https://wiki.mozilla.org/Release_Management/Calendar (manually
edited) to https://whattrainisitnow.com/calendar/ (automated). The
redirect from the wiki will be set up soon.
-
Pascal Chevre wrote a proof of concept called BzKarma
<https://github.com/pascalchevrel/bzkarma>. It creates an impact field
for bugs that gives a value score for uplifting patches based on a bug
metadata. Early testing proves interesting and seems to highlight some
potential valuable uplifts.
Version Control
-
Connor Sheehan, Zeid Zabaneh, and Frida Kiriakos performed a security
audit of pash
<https://github.com/mozilla/version-control-tools/tree/master/hgserver/pash>
(the code that runs when you ssh into hg.mozilla.org). While no new
issues were found, a number of code quality and test coverage issues were
identified and resolved by Connor Sheehan.
-
Connor Sheehan and Christopher Knowles added rate limiting to
hg.mozilla.org, which will reduce the load impact of spam and improper
service use.
mozregression
-
Zeid Zabaneh <[email protected]> fixed a codesign issue
<https://bugzilla.mozilla.org/show_bug.cgi?id=1817001> when using
mozregression with Thunderbird.
Other
-
Rob Lemley added markdown support
<https://bugzilla.mozilla.org/show_bug.cgi?id=1820780> when exporting
mots.yaml.
-
Zeid Zabaneh improved support for subcommands
<https://bugzilla.mozilla.org/show_bug.cgi?id=1814407> in mots when
using them via mach.
-
Zeid Zabaneh fixed an issue
<https://github.com/mozilla/pyo3-parsepatch/pull/54> with rs-parserpatch
builds that were failing when using the latest rust toolchain.
Org Changes
-
The fuzzing team moved to the Security organization
-
Johan Lorenzo is now the manager of the Release Engineering team
-
Andrew Halberstadt has been promoted to P5 (Sr Staff Software Engineer)
-
Gabriele Svelto has been promoted to P5 (Sr Staff Software Engineer)
-
Stephen Pohl has been promoted to P5 (Sr Staff Software Engineer)
-
Ray Kraesig has been promoted to P3 (Sr Software Engineer)
-
Alex Hochheiden has been promoted to P3 (Sr Software Engineer)
Thanks for reading and see you next month!
--
You received this message because you are subscribed to the Google Groups
"[email protected]" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/CAAJAz%2B4LK4dqKdAW0PmW7navM2dAjnM8PLTnifPisZiGA632ag%40mail.gmail.com.