mozregression update

A good while ago I made a regression range finder for Firefox nightlies. It was a Python script intended to make it easier for people to manually find the regression ranges of bugs on the nightlies. The other day, someone actually used it! So I decided to revisit it and fix it up and make it easier to install. There’s more info about it here, but here’s a quick summary:

install with setuptools or pip if you know how to do that, otherwise checkout out the OS-specific installation instructions

run on the command line:

mozregression --good=2010-03-19 --bad=2010-09-12

Several nightlies will be downloaded and automatically run for you, asking you to check for the existence of the bug in each one, ending up with something like:

Last good nightly: 2010-09-08 First bad nightly: 2010-09-09


if you have questions, ask harth on #qa at

9 thoughts on “mozregression update

  1. Sounds like it might be useful when finding the regression range next time. I installed it, running it shows me:

    Traceback (most recent call last):
    File “c:\mozilla-build\python25\Scripts\”, line 8, in
    load_entry_point(‘mozregression==0.1.3’, ‘console_scripts’, ‘mozregression’)()
    File “build\bdist.win32\egg\mozregression\”, line 80, in cli
    File “build\bdist.win32\egg\mozregression\”, line 24, in get_date
    TypeError: expected string or buffer

    Is that error supposed to come up if you run it without parameters? Maybe show some usage info instead?

    Running like in your example I get:

    Downloading nightly…

    Traceback (most recent call last):
    File “c:\mozilla-build\python25\Scripts\”, line 8, in
    load_entry_point(‘mozregression==0.1.3’, ‘console_scripts’, ‘mozregression’)()
    File “build\bdist.win32\egg\mozregression\”, line 80, in cli
    File “build\bdist.win32\egg\mozregression\”, line 23, in bisect
    File “build\bdist.win32\egg\mozregression\”, line 128, in start
    File “build\bdist.win32\egg\mozregression\”, line 45, in install
    File “build\bdist.win32\egg\mozregression\”, line 197, in __init__
    File “build\bdist.win32\egg\mozregression\”, line 254, in installZip
    AttributeError: ZipFile instance has no attribute ‘extractall’

    Needs something newer than Python 2.5 I guess?

      1. Actually, looks like I have Python 2.6.5 – Mozilla Build simply kept the directory name despite having installed a new version. So ZipFile.extractall probably needs Python 2.7 or higher.

    1. Looks like it really doesn’t want to work for me 🙂 The current version throws this exception after unpacking the zip file:

      Traceback (most recent call last):
      File “c:\mozilla-build\python\Scripts\”, line 8, in
      load_entry_point(‘mozregression==0.1.4’, ‘console_scripts’, ‘mozregression’)()
      File “build\bdist.win32\egg\mozregression\”, line 84, in cli
      File “build\bdist.win32\egg\mozregression\”, line 22, in bisect
      File “build\bdist.win32\egg\mozregression\”, line 125, in start
      TypeError: __init__() got an unexpected keyword argument ‘create_new’

      1. Strange, can’t seem to hit your errors on my Windows box, but I think I fixed that one, uploaded 0.1.5. Let me know how that works out.

      2. I think the issue in my case was a broken MozillaBuild update. Anyway, it is gone now. And after I switched away from rxvt I can even see the output of the script. So everything is working now, looks great.

  2. Heather, this tool is awesome and works great for regression testing! Thank you for creating this because I’ve wished someone would make something like this for years.

    everyone else: It is simple to use, only downloads builds that are needed by cutting the regression range in half each time, automatically launches each build, and even cleansup after itself!

  3. Oh my, just spent another 2 hours finding a regression window (only 2nd time I’ve done it, so takes a while), then I find this…doh!

    Will check it out – thanks 😀

Leave a Reply to Ed Cancel reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s