MDN Changelog for August 2018

Here’s what happened in August to the code, data, and tools that support MDN Web Docs:

Here’s the plan for September:

Done in August

Migrated 95% of compatibility data

The MDN content team prioritized reviewing and merging Browser Compatibility Data pull requests (PRs) in August, and met their goal of getting the open PRs to less than 50. The team reviewed and merged 85 PRs that were open at the start of the month, including a schema change to catch duplicate identifiers (PR 1415) from Dominique Hazael-Massieux. The team also merged 123 PRs that were opened during the month, including Visual Studio Code configurations for BCD editing (PR 2498) from ExE Boss.

A lot of these were migration PRs, and the migration is now 95% complete, with 10,000 features over 6,300 pages. Some of the remaining migration work will be straightforward. Other data sources will require strategy and format discussions, such as Event support and summary pages. These discussions will be easier with the experience of migrating thousands of simpler features.

Existing data also got some love. Contributors fixed incorrect data, clarified if and when a browser supported a feature, and celebrated support in new browser releases. We expect a steady stream of maintenance PRs as the project transitions from migration to ongoing maintenance.

Florian Scholz has worked to make this a community project, organizing the effort with spreadsheets and transitioning to issues as the remaining work becomes manageable. This has been a successful effort, and GitHub insights shows that most contributions were not from MDN staff.

Bar chart of top contributors, mentioned by name and count below

Top BCD contributors for August 2018










Thanks to ExE Boss (24 PRs), Connor Shea (23 PRs), Claas Augner (18 PRs), David Ross (17 PRs), Lucian Condrea (13 PRs), Joe Medley (8 PRs), and all our contributors, and thanks to the staff and tool builders that keep the review queue moving!

Improved performance and experience

Tim Kadlec audited MDN in July, and created performance metrics and goals, as well as recommending changes. In August, we started implementing these changes. Schalk Neethling improved the load time for the homepage by optimizing the hero image (PR 4903) and removing a section with an image (PR 4912). Ryan Johnson automated recording deployments and re-calculating metrics with Speedcurve (PR 4902). We’ll continue working on performance in the coming months.

Previously, if you wanted to link to a section in a page, such as MDN’s advice on why you should use labels for <input> elements, you had to use the Developer Tools to get the section ID. Schalk added section-level anchor links (PR 4901), so that you can quickly grab the link and paste it into a code review:

A chain link icon next to section titles links to that section

The new section links on MDN











Maintained the platform

Anthony Maton is switching Kuma to Python 3. Our memcached library hasn’t been updated for Python 3, and instead of a library swap, Anthony simplified the caching configuration and switched to Redis (PR 4870). He continues to make incremental changes (PR 4899) to get to a shared Python 2 / Python 3 codebase, with a goal of switching to Python 3 by the end of the year.

I completed the ElasticSearch 5.6 update, which was harder than expected. The update from 1.7 to 2.4 only required updating the servers (PR 4192), and didn’t even merit a mention in the April 2017 report. ElasticSearch no longer provides libraries that span major versions. The upgrade from 2.5 to 5.6 required updating the client libraries, the Kuma code that uses them (PR 4906), and the server (PR 4904), all at the same time. This update included some minor fixes, and search with 5.x appears faster, but site search still needs a lot of work. The next update, to ElasticSearch 6.x, will be in March 2019.

Ryan Johnson is continuing the work of migrating from MozMEAO to Mozilla IT support. Ed Lim provisioned the new Kubernetes cluster (PR 24) and backing services (PR 31), with support from Dave Parfitt and Josh Mize. Ryan configured the new Jenkins server to run parallel tests and deployments (PR 4931), and to publish Docker images to a new repository (PR 4933). We’re now deploying to both the MozMEAO staging environment and the MozIT staging environment.

We’ll continue with production and disaster-recovery environments in September, and prioritize the infrastructure issues. The goal is to switch traffic in October.

Shipped tweaks and fixes

There were 400 PRs merged in August:

This includes some important changes and fixes:

78 pull requests were from first-time contributors:

Planned for September

In September, we’ll continue working on new and improved interactive examples, converting compatibility data, migrating MDN services, and other long-term projects.

Hack on accessibility

We’re happy with the results of the Paris Hack on MDN event in March, and are doing it again in September. MDN staff will meet in London for a week of meetings and 2019 planning, and then have the fourth Hack on MDN event, focusing on accessibility. We plan to write docs, build tools, and explore ways to help web developers make the internet more accessible for all users.

Ship more performance improvements

We’ll continue working on the suggested performance improvements, to meet the performance goals for the year.

One area for improvement is optimizing MDN’s use of custom web fonts. These fonts often need to be downloaded, increasing page load time. Some plugins and clients, like Firefox Focus, improve the mobile experience by blocking these by default. Our goal is to improve the experience for desktop users by downloading optimized fonts after the initial page load, and avoiding required custom fonts like FontAwesome for icons.

Another focus is Interactive Examples, which are useful but have a large impact on page load time. James Hobin is working through the requirements to load the examples directly into the page, rather than via an <iframe>. Schalk is improving the asset builder for new features and for optimized asset building.

About John Whitlock

John is a web developer working on the engine of MDN Web Docs

More articles by John Whitlock…