The State of - February 2015

Hello all! It’s already been a month since last we spoke and much has happened! Let’s get to it.

Note: It appears that monthly will be a better schedule for these than every 2 weeks, at least for me. I’ll try to keep to that. Please call me out if I fail.

Theme for February: ZOMG BUSY!

February is always a busy month for we developers in the Engagement team, at least since Mozilla broke into the mobile world with Fennec and Firefox OS. This is because the first of March is Mobile World Congress (MWC) time, and it’s always a scramble to get things done in time. I concentrate mostly on the server side of the Web, but my colleagues in Web Prod who deal in HTML, CSS, and JS were more than a little busy. They launched a new page for MWC, a new Firefox OS main page, a new consolidated nav for all of that, and updates to various other FxOS related pages to support announcements. It was a herculean effort, the results are amazing, and I’m more than a little proud to work with them all. Special thanks to our new staff-member teammate Schalk Neethling for going way above and beyond to get it all done.

Also, long time friend of Craig Cook knocked out a refresh of the Mozilla Leadership page. Nice work Craig!

Not only all of that, but February saw a major overhaul of how bedrock handles static assets (CSS, LESS, JS, Fonts, Images, etc.). It’s all part of the plan. There’s more to come.

  1. We have finally moved into the modern world (speaking in Django terms) and are using the staticfiles system. We are now free to do things like handle user-uploaded media, use new and cool tools, and not feel bad about ourselves.
  2. We’ve switched from jingo-minify to django-pipeline. Pipeline hooks into Django’s static media system and is therefore easier to integrate with other parts of the Django ecosystem as well as more customizable. It is also a much more active project and supports a lot of fun new things (e.g. Babel-JS for sweet sweet ES6 goodness in our ES5 world).
  3. Good Olde Apacheā„¢ used to be how we served our static assets, but we’re now doing that from bedrock itself using Whitenoise. Since we have a CDN the traffic for these files on the server is quite low so getting cache headers, CORS, and gzipping right is the most important thing. Whitenoise handles all of this efficiently and automatically. I highly recommend it.

With these new toys came the ability to generate what are called “Immutable Files”. This means that the system will now copy all static files to new filenames that include the md5 hash of the file contents. This means that the file name (e.g. site.4d72c30b1a11.js) will always necessarily refer to the same contents. The advantage of this is that we can set the cache headers to basically never expire. Any time the file content changes, the generated file name will be different and cached separately.

We’re also generating gzipped versions of all files at deploy time. Whitenoise will see that these files exist (e.g. site.4d72c30b1a11.js.gz) and serve up the compressed version when the browser says it can handle it (and nearly all can these days). This is good because this is no longer happening at request time in Apache, thus reducing load, and we can use better and slower compression since it’s happening outside of the request process.

Much more happened, but I’m loath to make this much longer. Skim the git log below for the full list.


Even more new contributors! HOORAY!

Thank you all for your contributions to bedrock and the Open Web \o/

Git Log for February

* 8547262 (Pascal Chevrel) Bug 1128957 - Fix block parsing errors in jinja templates
* bb8aa7a (Kohei Yoshino) Fix Bug 1129130 - Hyperlinking bios to Steering Committee page
* f67af74 (Kohei Yoshino) Fix Bug 1129214 - Please add Rust and Cargo to our trademark list
* 80c4b28 (Kohei Yoshino) Fix Bug 1128885 - Plugincheck-site considers 31.4.0ESR out of date
* 7664dc5 (Alex Gibson) Update UITour documentation
* d0c20a4 (Tim) updated sumo link to be locale-neutral
* f588ff8 (Craig Cook) Fix bug 1124826 - Net Neutrality home promo
* 5475a14 (Paul McLanahan) Add new contributors to humans.txt
* 68a927c (Kohei Yoshino) Fix Bug 1124724 - Tiles product page update copy
* 64c4f17 (Paul McLanahan) Fix bug 1130285: Treat hsb/dsb locales as de for number formatting.
* ea43c4e (Kohei Yoshino) Fix Bug 1129911 - Text error in
* e5496d6 (Francesco Lodolo (:flod)) Bug 1115066 - Add ‘si’ to Thunderbird start page redirect
* 776cff3 (Alex Gibson) Add test suite for browser-tour.js
* 73295a6 (Tin Aung Lin) Updated with new Facebook Page Link
* 43909f2 (Kohei Yoshino) Fix Bug 1131142 - Update Firefox Refresh SUMO article link on /firefox/new/
* 9a4de71 (Alex Gibson) [fix bug 1131680] Stop redirecting Firefox Geolocation page to Mozilla Taiwan website
* a502fe1 (Kohei Yoshino) Fix Bug 1130160 - Extra ‘#’ in section headers for roll up pages
* 6aaee9f (Paul McLanahan) Fix bug 1131738: Mark advisory reporter as safe.
* 90aabcb (Paul McLanahan) Bug 906176: Move to using Django staticfiles for media.
* 66541a9 (Paul McLanahan) Bug 906176: Enable caching static storage and remove cachebusts.
* 63da90f (Paul McLanahan) Update references to “media()” in docs.
* 286c35c (Paul McLanahan) Bug 906176: Move to django-pipeline from jingo-minify.
* 6fdbc53 (Paul McLanahan) Add futures, a dependency of pipeline.
* 3a200c0 (Paul McLanahan) Add node dependencies less and yuglify.
* a3b0895 (Paul McLanahan) Reorder deployment to keep the git repo clean.
* 56b89a1 (Paul McLanahan) Serve static files with Whitenoise.
* c96ba80 (Paul McLanahan) No longer test Python 2.6 in Travis.
* ae040d4 (Paul McLanahan) Fix unicode issue with image helpers.
* f9849c7 (Kohei Yoshino) Fix Bug 1131111 - PN Changes (Snippets/SMS Campaign, default Search provider, and SSL Error reporting)
* a61fd11 (Paul McLanahan) Disable locale sync from crons temporarily.
* c5cbfd7 (Paul McLanahan) Enable locale update cron jobs; they are now fixed.
* f8ced59 (Paul McLanahan) Fix missing image referenced in thunderbird base template.
* 1592de3 (Paul McLanahan) Fix bug 1132317: Fix gigabit pages errors.
* b8e2afd (Paul McLanahan) Remove remaining date-based cache busting query params.
* 6eb5107 (Logan Rosen) fix Bug 1132323: change Tabzilla heading ID
* cdadc8a (Logan Rosen) fix Bug 1108278: congstar link is incorrect
* 453ae78 (Paul McLanahan) Encourage use of humans.txt
* d3c553d (Alex Gibson) [fix bug 1132289] Plugin check minify JS error
* 375b3b3 (schalkneethling) Syncing content with Google doc, part of the l10n hand-over
* b4c217e (Jon Petto) Bug 1128726. Add 2 new firstrun tests, each with 2 variants.
* 8ccad60 (Alex Gibson) [fix bug 1132313] Venezuela community page references missing images
* f74b2a7 (Paul McLanahan) Fix bug 1132454: Update platform_img helper for new static files.
* fd4215b (Alex Gibson) [bug 1132454] Add missing high-res ios platform image to firefox/new
* 5184b79 (Alex Gibson) Update Mozilla.ImageHelper JS tests
* 03d7b14 (Kohei Yoshino) Fix Bug 1132835 - 404 linking to /contribute/local from /about/governance/organizations
* ec262fe (Paul McLanahan) Fix bug 1132961: Add cache to twitter feeds.
* a420c03 (Kohei Yoshino) Fix Bug 1132956 - Legal-docs pages for hu and hr throwing errors.
* 61dea65 (Kohei Yoshino) Fix pep8 errors: W503 line break before binary operator
* ad3f3c8 (Francesco Lodolo (:flod)) Bug 1124894 - Add Swahili (sw) to PROD_LOCALES
* 6193a4f (Jon Petto) Bug 1130565. Add more localized videos to Hello page.
* e41a55f (blisman) fix bug  1132942, removed url for missing html template  (/bedrock/mozorg/about/governance/policies/commit/faq.html)
* 89ad7c1 (blisman) Bug 1134492 - move assets from to
* 43ac8cd (Alex Gibson) [fix bug 1053214] Missing Mozilla Estonia from Contact Pages
* a3cb7e5 (Stephanie Hobson) Fix Bug 1134058: Show .form-details when form has focus
* 0307a5b (Paul McLanahan) Only build master in Travis.
* 4990787 (Cory Price) [fix bug 1130198] Update Hello FTU for GA36 * Send Custom Variable to GA containing the referral * Add referral to localStorage on copy/email link * Retreve referral from localStorage on tour connect and send to GA * Hide info panels when Contacts tab is clicked (it’s okay that they don’t see it if they switch back to Rooms) * Update docs * Add Test
* 4f7a542 (Paul McLanahan) Add author link tag to base templates for humans.txt
* c452ac0 (Kohei Yoshino) Fix Bug 1134936 - Firefox download pages: filter localized builds as you type
* d681e78 (Josh Mize) Add backend for fxos feed links: bug 1128587
* 4a81001 (Josh Mize) Restore dev update crons: fix bug 1133942
* f0ab7b5 (Steven Garrity) Bug 1120689 MWC Preview page for 2015
* e6d9ada (blisman) fix bug 1129961: reps ical feed update fail silently
* 54b27ed (Paul McLanahan) Remove accidentially committed print statement.
* d406fb0 (Steven Garrity) Bug 1120689 Update MWC map reference
* 2592f4f (Alex Gibson) [fix bug 1135496] Missing Firefox OS wordmark on devices page
* 259f1d2 (Alex Gibson) [fix bug 1099471 1084200] Implement Firefox Hello tours GA 36
* eb6471a (Jon Petto) Add firstrun and whatsnew pages. Bug 1099471.
* e797b42 (Alex Gibson) Update Hello fx36 tour logic and add tests
* 93a6f2e (Alex Gibson) Add Fx36 Hello tour GA tracking events
* 2500616 (Jon Petto) Hello tour updates:
* 7b7329e (Steven Garrity) Bug 1120689 Last minute MWC preview text tweaks
* 8859e9c (Alex Gibson) Fx36 Hello tour template updates
* 5dde0d1 (Kohei Yoshino) Improve the Share widget, part of Bug 1131309
* d6d4ab6 (Kohei Yoshino) Fix Bug 1131309 - Add share buttons to ‘Check your plugins’ page
* 0a3dea6d (Steven Garrity) Bug 1120689 Update map for MWC 2015 Removed the link to the PDF and used a single PNG for mobile/desktop
* b0eced3 (Paul McLanahan) Bug 1116511: Add script to sync data from Tableau.
* acca704 (Paul McLanahan) Bug 1116511: Add view for serving JSON contributor data.
* b807b1a (Paul McLanahan) Bug 1116511: Add cron jobs for stage and prod tableau data.
* e27fa38 (Kohei Yoshino) Fix Bug 1128579 - Finish moving certs/included and certs/pending web pages to wiki pages
* 34f032d (Paul McLanahan) Fix a potential error in the TwitterCacheManager.
* 5fa4fb3 (Steven Garrity) Bug 1120667 Remove “over” from MWC preview page
* d627564 (Francesco Lodolo (:flod)) Bug 1111597 - Set up Santali (sat) for production
* 20afbf3 (Craig Cook) Update home page promos
* f727d1a (Cory Price) [fix bug 1130194] Add FTU tracking to Hello product page
* 3ec1f54 (Kohei Yoshino) Fix Bug 1136224 - firefox hello privacy policy link to tokbox privacy policy broken
* 59b7b09 (Paul McLanahan) Fix bug 1136307: Catch all errors and report exceptions for MFSA import.
* c4d1534 (schalkneethling) Fix Bug 1132298 Moves mustache script above the share script
* 41c8b12 (Craig Cook) Bug 1132231 - fix copy for Webmaker and Hello promos
* 0963b2a (Kohei Yoshino) Standardize the header share button
* 4fdd9f0 (Kohei Yoshino) Fix Bug 1131304 - Add share buttons to ‘Download Firefox in your language’ page
* f53b05f (Kohei Yoshino) Fix Bug 1131299 - Add share buttons to Firefox Developer Edition page
* 2c8a27f (Steven Garrity) Bug 1120689 Update title on MWC preview for 2015
* 9ab3132 (Paul McLanahan) Fix bug 1136559: Add dev deploy cron scripts to repo.
* 4b36ba5 (Stephanie Hobson) Fix Bug 1126578: iOS CTA updates and newsletter
* c8b7a5f (Stephanie Hobson) Bug 1126578: iOS CTA updates and newsletter
* d53c578 (Kohei Yoshino) Fix Bug 1126837 - Make Fx38 Win64 build of Dev Edition Available on
* acf34be (Kohei Yoshino) Fix Bug 1137213 - Sky theme is not applied to Firefox channel page if Developer Edition is selected first
* 934fe4c (Jon Petto) Bug 1135092. Fx family nav V1.
* 5e8d55d (Paul McLanahan) Get current hash from local file and run dev autodeploy every 20min.
* 6984385 (Paul McLanahan) No output for dev autoupdate unless deploying.
* f6a6fad (Kohei Yoshino) Fix Bug 1137061 - Firefox Release Notes list shows unsorted sub-versions
* f8a5358 (Kohei Yoshino) Fix Bug 1137604 - /security/advisories: abbreviation mismatch: MSFA vs. MFSA
* d8572fe (Jon Petto) Bug 1135092. Add small IE fixes to fx family nav v1.
* 8847d9f (Jon Petto) Bug 1137260. Add GA to fx family nav.
* 4f16a2b (Josh Mize) Update firefox os feeds on dev deploy
* 05bc712 (Craig Cook) Fix bug 1134522 - New leadership page
* b966d62 (Paul McLanahan) Remove locale update from deployment.
* 9ed05bc (Steven Garrity) Bug 1120686 Update Fx Partners page for MWC 2015
* d0bf649 (Jon Petto) Bug 1137904. Add headlines to MWC page.
* 97685f5 (Steven Garrity) Bug 1137347 Add temporary links to static logos
* b03989e (Steven Garrity) Add All press link
* b0440e9 (schalkneethling) Fix Bug 1120700, implement new design for firefox/os
* 5ac9fe3 (Steven Garrity) Bug 1120686 Fix overlaping menus Mobile partners nav was overlapping family nav submneu due to excessive z-index
* 1de1bfc (Steven Garrity) Bug 1137347 Use https for static images
* 431aea6 (Paul McLanahan) Update static files, product-details, and external files in SRC dir.
* ebfd67a (Craig Cook) Bug 1120700 - Misc tweaks and fixes for new FxOS page
* b6225ee (Paul McLanahan) Update revision.txt before collectstatic.
* e8c9f28 (Craig Cook) Bug 1124734 - remove Net Neutrality promo after Feb 26
* c0066c1 (Craig Cook) Fix bug 1138169 - MWC partner logo updates
* 90bec7a (Francesco Lodolo (:flod)) Bug 1120700 - Fx OS consumer page: restore page title on old template
* c0dfdee (Steven Garrity) Bug 1137347 Replace temporary MWC logos

Improve this page