We work hard as an organization to ship the best browser possible every 4 weeks with about 1000 new patches per release. We ship new features to make our browser useful and easy to use. We also do platform work to be able to render new sites and web applications while remaining compatible with millions of websites created a decade (or more) ago. This ongoing...
We have recently implemented a solution to integrate code coverage results into Phabricator. This article was initially published on Marco Casteluccio's blog. Coverage information is uploaded either automatically for revisions after they are landed in mozilla-central (for example for release managers when looking at uplift requests), or on-demand for in-progress revisions. For revisions under review, in order to upload coverage you just need to trigger...
Firefox is shipped using a train model. Without going into too much details, this means that we maintain several channel in parallel (Nightly, Beta, Release and ESR). Normal changes happen in Nightly. When a change needs to be cherry-picked from Nightly to another branch, the process is called “Uplift”. Uplifting is a key tool in the Firefox release management world. When developers want to apply...
One of the nice things we can do with code coverage data is looking at which files are completely not covered by any test. This article was initially published on Marco Casteluccio's blog. These files might be interesting for two reasons. Either they are: dead code; code that is not tested at all. Dead code can obviously be removed, bringing a lot of advantages for...
Crash-stop is a webextension I wrote for Bugzilla to display crash stats by builds and patch information. The goal is to have enough information to be able to decide if a patch helped (hence its name) and, if needed, uplift it to the Beta/ESR/Release trains as appropriate. This project was initially meant to assist release-managers but it’s been useful for developers who fix/monitor crashes or...
Jan Keromnes is a Senior Software Engineer working for the Release Management team on tools and automation and is the lead developer for Janitor.Janitor offers developer environments as a service for Firefox, Servo and other open source projects. It uses Cloud9 IDE (front-end), Docker servers (back-end), and is 100% web-based so you can jump straight into fresh on-demand environments that are pre-configured and ready for...
Like every year, Brussels will host on February 3 & 4 the largest European Open Source event gathering thousands of developers, namely FOSDEM. Sylvestre, head of the Firefox Release Management team, will explain on Saturday how we ship Firefox to hundreds of millions of users every 6 weeks and how our test suites, pre-release channels, static analyzers, data mining on uplifts, code coverage, fuzzers and...
Jan Keromnes is a Senior Software Engineer working for the Release Management team on tools and automation and is the lead developer for Janitor.Janitor offers developer environments as a service for Firefox, Servo and other open source projects. It uses Cloud9 IDE (front-end), Docker servers (back-end), and is 100% web-based so you can jump straight into fresh on-demand environments that are pre-configured and ready for...
Project Dawn will change the Firefox release train model by eliminating the Aurora phrase. (See the Hacks blog for more). We have completed all of the required infrastructure changes and are now ready to migrate the Aurora populations for Firefox Desktop and Firefox for Android. We have different migration paths for these two products as described below. Desktop For Firefox Desktop, the existing Developer Edition...
As described in the post on the Hacks blog, we are changing the release mechanism of Firefox. What In order to address the complexity and cycle length issues, the release management team, in coordination with Firefox product management and engineering, is going to remove the Aurora stabilization phase from the cycle. When On April 18th, Firefox 55 will remain on Nightly. This means Firefox 55...
Firefox releases (based on the train release model) go live every 6 weeks. However, this December instead of pushing a new mainline release, we plan to push a dot release 50.1.0 mid December. This will be a limited scope release and will only include fixes for recent severe regressions, crashes and security issues. The motivation behind this dot release is to minimize code churn and...
The original 2016 Firefox release schedule had the release of Firefox 49 shipping on September 13, 2016. During our release qualification period for Firefox 49, we discovered a bug in the release that causes some desktop and Android users to see a slow script dialog more often than we deem acceptable. In order to allow time to address this issue, we have rescheduled the release...