mozdownload 1.18 released

Today we have released mozdownload 1.18 to PyPI. The reason why I think it’s worth a blog post is that with this version we finally added support for a sane API. With it available using the mozdownload code in your own script is getting much easier. So there is no need to instantiate a specific scraper anymore but a factory scraper is doing all the work depending on the options it gets.

Here some examples:

from mozdownload import FactoryScraper
scraper = FactoryScraper('release', version='40.0.3', locale='de')
from mozdownload import FactoryScraper
scraper = FactoryScraper('candidate', version='41.0b9', platform='win32')
from mozdownload import FactoryScraper
scraper = FactoryScraper('daily', branch='mozilla-aurora')

If you are using mozdownload via its API you can also easily get the remote URL and the local filename:

from mozdownload import FactoryScraper
scraper = FactoryScraper('daily', branch='mozilla-aurora')
print scraper.url
print scraper.filename

Hereby the factory class is smart enough to only select those passed-in options which are appropriate for the type of scraper. If you have to download different types of builds you will enjoy that feature given that only the scraper type has to be changed and all other options could be still passed-in.

We hope that this new feature will help you by integrating mozdownload into your own project. There is no need anymore by using its command line interface through a subprocess call.

The complete changelog can be found here.

mozdownload 1.12 has been released

The Firefox Automation team would like to announce the release of mozdownload 1.12. Without any other release of our universal download tool in the last 7 months, a couple of nice new features and bug fixes will make this release even more useful. You can upgrade your installation easily via pip, or by downloading it from PyPI.

Changes in 1.12

  • Display selected build when downloading (#149)
  • Add support for downloading B2G desktop builds (#104)
  • Download candidate builds from candidates/ and not nightly/ (#218)
  • Add Travis CI build status and PyPI version badges to README (#220)
  • Add Python 2.6 to test matrix (#210)
  • Fix broken download of mac64 tinderbox builds (#144)
  • Allow download even if content-length header is missing (#194)
  • Convert run_tests script to Python (#168)
  • Ensure that –date option is a valid date (#196)

Firefox Automation report – week 5/6 2014

A lot of things were happening in weeks 5 and 6, and we made some good progress regards the stability of Mozmill.


The unexpected and intermittent Jenkins crashes our Mozmill CI system was affected with are totally gone now. Most likely the delayed creation of jobs made that possible, which also gave Jenkins a bit more breath and not bomb it with hundreds of API calls.

For the upcoming release of Mozmill 2.0.4 a version bump for package dependencies was necessary for mozdownload. So we released mozdownload 1.11. Sadly a newly introduced regression in packaging caused us to release mozdownload 1.11.1 a day later.

After a lot of work for stability improvements we were able to release Mozmill 2.0.4. This version is one with the largest amount of changes in the last couple of months. Restarts and shutdowns of the application is way better handled by Mozmill now. Sadly we noticed another problem during restarts of the application on OS X (bug 966234) which forced us to fix mozrunner.

Henrik released mozrunner 5.34 which includes a fix how mozrunner retrieves the state of the application during a restart. It was failing here by telling us that the application has quit while it was still running. As result Mozmill started a new Firefox process, which was not able to access the still used profile. A follow-up Mozmill release was necessary, so we went for testing it.

As another great highlight for community members who are usually not able to attend our Firefox Automation meetings, we have started to record our meetings now. So if you want to replay the meetings please check our archive.

Individual Updates

For more granular updates of each individual team member please visit our weekly team etherpad for week 5 and week 6.

Meeting Details

If you are interested in further details and discussions you might also want to have a look at the meeting agenda and notes from the Firefox Automation meetings of week 5 and week 6.

Mozdownload 1.10 released

As of now we have released a new version of mozdownload. The 1.10 release contains a couple of new features, bug fixes, and absolutely to mention a suite of tests. A big thank you goes here to Johannes and Jarek. Both spend a lot of time again, to make it a successful and lesser bug prone release.

Here some major items to highlight:

  • Addition of tests for all types of scrapers and a lot for command line options
  • Output of all candidate builds founds if build number has been specified
  • Add support for tinderbox stub installer
  • Allow to download files with different extensions than exe

A full list of features can be found in the changelog

Automation Development report – week 34 2013

Last week was a really productive week, when we look over the accomplished tasks. Across different test frameworks and tools we got a lot done. Especially the mozdownload project raises interests by even more people, who want to help with their own contribution. Thank you all who were involved!


To appreciate all the hard work done by Johannes Vogel on the mozdownload project we promoted him to the reviewer status. With this recognition he is now able to help us driving this project forward with a faster pace by doing code reviews. A delicacy was also his patch for getting the long outstanding test infrastructure working for mozdownload. It landed last week, and gave Dave Hunt the opportunity to get Travis CI support added.

Over the past couple of Firefox branch merges we experienced troubles with our Mozmill tests execution within mozmill-ci. This was caused by a bug in one of the plugins in use, which only checks the default branch of a Mercury repository for changes, but not any other named branch. Henrik Skupin landed a workaround as an interim solution, which replaced the SCM trigger with a timed trigger in Jenkins. Now the CI is checking for updates each 5 minutes. For details please also see his post on the mailing list.

Further Henrik was able to finish off his patch for pulsetranslator on bug 857980. With it in place it let us send out individual normalized Pulse notifications for beta and release candidate builds produced by repack jobs. As result individual locales beside en-US can be tested with mozmill-ci now. Step by step our team will constantly increase the number of locales to test over the curse of the next few weeks. For details and a follow-up discussion please check the thread on the mailing list.

To stay on top of running our Mozmill tests on the latest OS versions, Henrik added 6 new Ubuntu 13.04 nodes to our CI cluster. Three of them are running a 32bit version while the other three have 64bit installed. Most likely as of today we will remove the Ubuntu 12.10 machines from the cluster.

Sadly we are still scratching our head around the current problems with Windows 8.1 preview release. Due to issues with the LoginManager we most likely see our nodes getting disconnected when an user is logging into such a machine via VNC. The failure thrown doesn’t seem to be that known yet, so fixing the problem and bringing those nodes online will not happen soon. If anyone has ideas what it could be, please let us know!

Thanks to our automation members from the Softvision team (Andreea Matei, Andrei Eftimie, Mario Garbi, and Cosmin Malutan) we were able to close out 4 of our existing mozmill-test failures and also got 2 enhancements landed for Mozmill 2.0.

Last but not least we want to thank Johannes for his contribution on the mozmill-dashboard project. With one of his latest patches it’s now possible to correctly bookmark our individual dashboard instances with unique bookmark names.

Individual Updates

For more granular updates of each individual team member please visit our weekly team etherpad.