MDN Changelog for March 2018
| Editor’ s note: A changelog is “ the log or record of all significant changes made to a project. [It] usually includes records associated with changes such as bug fixes, brand new features, etc . ”
Publishing the changelog is kind of a custom in open source, and a long-time practice on the web. We thought visitors of Hacks and folks who make use of and contribute to MDN Web Docs would be interested in learning more about the job of the MDN engineering team, as well as the impact they have in a given 30 days. We’ ll also introduce program code contribution opportunities, interesting projects, plus new ways to participate.
Done in March
Here’ s what happened in 03 to the program code, data, and tools that support MDN Web Docs :
Here’ s the plan pertaining to April:
Improved suitability data at the Hack on MDN event
In Mar, the MDN team focused on the particular Browser Compatibility Data project, conference in Paris with dozens of collaborators for the “ Hack on MDN” event. The work resulted in 221 Pull Requests within the BCD repo , as well as extra work in other repos. See Jean-Yves Perrier’ s Hack on MDN article for details about the tools developed and data updated during the 7 days.
We reviewed plus merged over 250 PRs within March. The compatibility data transformation jumped from 57% to 63% complete. Jeremie Patonnier led the time and effort to convert SVG data ( BCD PR 1371 ). API data seemed to be a focus, both converting the present MDN tables and using other information sources to fill out missing APIs.
There’ s right now 264 open up PRs in the BCD repo, about a month’ s really worth, and the contributions keep coming in. BCD is one of the most active GitHub repositories at Mozilla this year by draw requests (880) and by authors (95), only second to rust (1268 PRs, 267 authors). The rate associated with contributions continue to increase, so BCD may be #1 for Q2 2018.
Tried brotli compression
Brotli is really a Google-developed compression algorithm designed for providing web assets, which can outperform the particular widely used gzip algorithm. By the end associated with 2017, all major browsers assistance the br
content-encoding method, and Florian requested a test of brotli upon MDN in bug 1412891 . Maton Anthony wrote a Python-2 compatible brotli middleware in PR 4686 , with the arrears compression level of 11. This proceeded to go live on March 7th.
Brotli does compress our content material better than gzip. The homepage will go from 36k uncompressed to nine. 5k with gzip to 7k with brotli. The results are much better on wiki pages like CSS display web page , which goes from 144k uncompressed to 20k with gzip and 15k with brotli.
However , brotli was a net-negative for MDN performance. Average reaction time measured at the server had been slower, going from 75 microsoft to 120 ms, due to the improved load of the middleware. Google Analytics showed a 6% improvement within page download time (1 microsoft better), but a 23% drop in average server response period (100 ms worse). We noticed no benefit in static possessions, because CloudFront handles gzip compression setting and ignores brotli.
Antony adjusted to compression degree 5 ( Kuma PR 4712 ), which usually a Condition of Brotli article tested to be comparable to gzip nine in compression time but still leads to smaller assets. When this proceeded to go live on March 26th, we noticed similar results, with our response time for pre-brotli levels, but with a slight enhancement in HTML size when br
had been used.
When we ship CloudFront in April, the CDN is going to take care of compression, and brotli goes away again. It looks like a good technology, but requires a CDN that will supports it, and works best having a “ pre-compress” workflow rather than a “ when requested” middleware workflow, meaning it won’ t be a great fit for MDN for a while.
Shipped tweaks and repairs
There were 370 PRs merged in March:
137 of these were from new contributors:
- SpeechGrammar API ( BCD PR 976 ), through Jeremy Wilken .
- Add UC (international and Chinese) for Google android as a browsers ( PR 1077 ), Include QQ browser identifier (qq_android) ( PR 1078 ), and 2 more PRs to BCD from Philip Jä genstedt .
- Adds DOMTokenList compat data ( BCD PR 1121 ), through Jared Fowler .
- Add WEB ADDRESS API ( BCD PR 1122 ), through Jeremy Karlsson .
- Add compat data for DocumentFragment ( BCD PR 1184 ), from Juang, Yi-Lin .
- Add compat data for MediaRecorder ( PR 1186 ), Add compat information for Slotable api ( PR 1232 ), and four more PRs in order to BCD from Lucian Condrea .
- Adding compat data for MediaStream ( PR 1212 ), Add compat information for MediaStreamContraints ( PR 1244 ), plus 4 a lot more PRs to BCD from Mec .
- Add compat data for SVGAnimateElement ( BCD PR 1236 ), from Djam Saidmuradov .
- Prevent tag auto-closing and properly syntax highlight ( BCD PR 1246 ), from Scott Buchanan .
- Up-date display: contents compat table ( BCD PR 1271 ), from Guylian .
- Add Safari and Node WebAssembly results ( BCD PR 1280 ), through Sergey Rubanov .
- Added required applicationServerKey for chrome ( PR 1281 ), from Safwan Rahman (first share to BCD).
- Include compat data for AnimationEffectTimingProperties ( BCD PR 1299 ), from Terry .
- Adding compat data for PerformanceLongTaskTiming ( BCD PAGE RANK 1316 ), from Matthieu Bergel .
- Add compat information for: scope selector: Not backed in Edge ( BCD PR 1323 ), from Bert Verhelst .
- Up-date PerformanceResourceTiming support since safari(mac/ios) eleven ( BCD PAGE RANK 1334 ), from Mike Li .
- Updates css. property or home. display compat for Edge designed for Grid value ( BCD PR 1340 ), from Bryan Robinson .
- Repair note about “ defer” feature in IE ( BCD PR 1341 ), from vlakoff .
- Trailing antelope function parameter commas do work within node ( BCD PR 1365 ), through coolreader18 .
- Opera support ( PR 1366 ), and Opera 36 facilitates default parameters ( PR 1639 ), in order to BCD from Andrea Giammarchi .
- Create version_name ( BCD PR 1380 ), from Vitaly Zdanevich .
- Up-date structure of BCD data to get WebRTC interfaces ( PR 1397 ), Revise structure of BCD data meant for Service Worker interfaces ( PR 1398 ), and twenty-seven more PRs through Dominique Hazael-Massieux (first contributions in order to BCD).
- Add compat data for SVG < feBlend> ( PR 1420 ), Add compat information for SVG < feColorMatrix> ( PR 1423 ), and 35 more PRs to BCD from maximelore .
- Fixed Windows issue related to schema validation of browser info ( PR 1433 ), from Sebastian Zartner (first contribution to BCD).
- Update to Edge browser launch dates ( PAGE RANK 1482 ), and Include release dates for Edge Cellular browser ( PAGE RANK 1483 ), to BCD from He Wojciakowski .
- Upgrade Edge support data based on MicrosoftEdge-Documentation ( BCD PAGE RANK 1518 ), from Mark Dittmer .
- Update Edge information ( PR 1619 ), and Update set-cookie info for Edge and FOR INSTANCE ( PR 1642 ), from patrick kettner (first contributions to BCD).
- Rewrite the Object. create illustration. ( Interactive Good examples PR 634 ), through Mathias Arens .
- Use system. error() method to display errors ( Interactive Examples PAGE RANK 638 ), from Rudz Boy .
- Better example just for
sort
use case ( Interactive Examples PR 642 ), from Marek Pepke . - Update justify-content. html ( Interactive Examples PR 649 ), from Clé ment P .
- Update: add calc() values in grid-gap demo ( Interactive Examples PAGE RANK 665 ), from 一 丝 .
- Fix no-wrap ( Interactive Examples PAGE RANK 666 ), from Nikolay Puzyrev .
- Add example pertaining to CSS font-kerning property ( Interactive Examples PR 667 ), from Ian Sanders .
- More illustrative example meant for
Proxy. apply
( Online Examples PR 677 ), from Tanker Lienau . - Upgrade object-assign. html ( Interactive Examples PR 678 ), from Abhishek .
- Set typo ( Online Examples PR 687 ), from Claire Wö rner .
- Fix: ArrayBuffer. byteLength() => byteLength ( Interactive Good examples PR 689 ), through Martijn Thé .
- Upgrade whiten to 2 . 1 . 3 ( Kuma PR 4697 ), from Greg Guthe .
- Switch to node. js 7. 10. 0 ( PR 640 ), through Maton Anthony (first contribution in order to KumaScript).
- Added The spanish language translation ( KumaScript PR 642 ), through Sergio Gonzá lez Collado .
- Update URL structure for IETF RFCs for HTTPS ( KumaScript PR 647 ), from David Beitey .
- Update main. js ( learning-area PR 62 ), from Ann Cascarano .
- Replace bgtile. png ( PR 63 ), can-store patches ( PRR65 ), and nytimes patches ( PAGE RANK 66 ), to learning-area from Adilson Sandoval .
- Very first complete version of bob ( PR 2 ), Small update to README ( PR a few ), and 2 more PRs from Schalk Neethling (first contributions to bob).
- Eslint + Webpack + Travis CI setup ( PR 1 ), plus Revert ES2015 modules configuration ( PR 2 ), from Maton Anthony (first contributions to browser-compat-toolkit).
- js13kPWA ( PAGE RANK 1 ), and Repairs and icons ( PR 2 ), in order to pwa-examples from Andrzej Mazur .
- Fixed function call when starting database fails ( webassembly-examples PR 12 ), from Serta McCarthy .
- Internet for all link demos ( pab PR 18 ), from r12a .
- Up-dates to licenses as well as README plus index page ( PR 3 ), through Schalk Neethling (first contribution in order to mdn-fiori).
Additional significant PRs:
- Standardize signal handlers and applications ( Kuma PAGE RANK 4689 ), from me .
- Upgrade node. js within our KS image to 8. ten. 0 ( Kuma PR 4692 ), through Maton Anthony .
- Update feeder app, allow calling as job ( Kuma PAGE RANK 4694 ), from me .
- Fix checkbox labels within Edit Profile ( Kuma PR 4696 ), from Donovan Glover .
- Get rid of font observer lib, replace along with font-display ( Kuma PR 4699 ), through
- Preload title plus body fonts for improved efficiency ( Kuma PAGE RANK 4709 ), from Schalk Neethling .
- Make lang choice cookie persistent ( Kuma PR 4718 ), from Maton Anthony .
- Display error message to users upon 500 internal server error ( Kuma PR 4720 ), from Schalk Neethling .
- Replaced hard-coded strings along with translatable ones ( Kuma PR 4722 ), from В і т а л і й К р у т ь к о .
Planned for 04
We’ ll become busy in April with the outcome of the Hack on MDN occasion , reviewing PRs and switching prototypes into production code. We’ ll continue working on our various other projects as well.
Obtain HTML interactive examples ready for manufacturing
The interactive illustrations are transitioning from rapid testing to a shipping feature. Will Bamberg published Getting interactive examples to MDN in March, which information how this project went through idea to implementation.
The interactive examples team may firm up the code and procedures, to build a better foundation for contributing factors and for future support. At the same time, they are going to firm up the design for HTML illustrations, which often require a mix of CSS plus HTML to illustrate usage.
Ship the CDN plus Django 1 . 11
Ryan Johnson finished up caching headers for the 60 or so MDN endpoints, and he and Dave Parfitt additional CloudFront in front of the staging site. We’ ll spend some time with automated plus manual testing, and then reconfigure manufacturing to also be behind a CDN.
We’ ve skipped the April 1 deadline for your Django 1 . 11 update. We all plan to focus on the minimum jobs needed to update in April, and can defer other tasks, like upgrading out-of-date but compatible 3rd-party your local library, until later.
Enhance the front-end developer experience
Schalk Neethling has had some time to learn the front-end code of MDN, using tools like Sonarwhal plus Chrome devtools’ performance and system panels to find performance issues confronted by Chrome visitors to MDN. He’ s put together a list of changes which he think will improve development and efficiency.
1 quick win is to replace FontAwesome’ s custom font face along with SVG symbols . Instead of loading all the symbols in a single file, only the icons utilized by a page will be loaded. The SVG will be included in the HTML, avoiding extra HTTP requests. SVG icons are usually automatically scaled, so they will look great on all devices. This should furthermore improve the development experience. It’ s i9000 easy to make mistakes when using character encodings like "f108 020eae6"
, and much clearer to use names such as "icon-ie icon-mobile"
.
Schalk is thinking of other challenges to front-end advancement, and how to bring in current tools plus techniques. He’ s cleaning up program code to make it more consistent, and formalizing the rules in MDN Fiori , a front end style guide and pattern collection. This may be the first step to switching to some UI component structure, such as React .
A bigger improvement would be upgrading the front-end build pipeline. MDN’ s build system was developed in years past (by Python developers) when JavaScript was less mature, and the program hasn’ t kept up. Webpack is widely used to bundle program code and assets for deployment, plus a new pipeline could allow programmers to use a broader ecosystem of equipment like Babel to write modern JavaScript.
Finally, we still look for the right way to test JavaScript. We’ re currently using Selenium in order to automate testing in a browser atmosphere. We’ ve had issues obtaining a stable set of tools for consistent Selenium testing, and it has proven to be too heavy intended for unit testing of JavaScript. Schalk has had good experiences with Jest , plus wants to start testing MDN Javascript with Jest in April.
John is a web developer focusing on the engine of MDN Internet Docs
If you liked MDN Changelog for March 2018 by John Whitlock Then you'll love Web Design Agency Miami