mozilla/mozregression

Regression range finder for Mozilla nightly builds

Python

187

1,880 commits

updated Oct 15, 2026

See the code

See what people are saying

SourceMessageScoreDate

Mozregression is an interactive regression range finder for Firefox and others

2

Jan 27, 2025

Bisecting is also useful for end users. They might be able to reproduce bugs on their hardware or software configuration that the developers don’t have access to. Mozilla has a tool (command line or user-friendly-ish GUI front end) called “mozregression” that Firefox users can use to bisect…

on Keeping a project bisectable

0

Aug 5, 2022

Wow, with the line of code found in under an hour. Mozregression looks amazing: https://mozilla.github.io/mozregression/

on You Don't Know GIF – An analysis of a GIF file and some weird GIF features

0

Mar 10, 2022

Mozregression – interactive regression range finder for Mozilla Firefox etc.

3

Nov 25, 2021

Mozregression - https://mozilla.github.io/mozregression/ should help you figure out where it broke. You can open a bug with the commit you found as "regressed by" - https://wiki.mozilla.org/BMO/UserGuide/BugFields#regressed_b... to help developers track down how what they need to change to resolve…

on Graphics Team ships WebRender MVP

0

May 21, 2019

Granularity is pretty good for the Nightly builds, since a new update is normally built and pushed out at least once a day. The mozregression tool is useful for narrowing down when a bug first appeared: http://mozilla.github.io/mozregression/

on Simplifying Firefox Release Channels

0

Apr 17, 2017

Mozregression is an interactive regression range finder for Mozilla builds

3

Jul 27, 2016

Can you find a regression window using http://mozilla.github.io/mozregression/? That will help us figure out what broke and fix it.

on Firefox Now Offers a More Private Browsing Experience

0

Nov 5, 2015

README

mozregression

mozregression is an interactive regression rangefinder for quickly tracking down the source of bugs in Mozilla nightly and integration builds.

You can start using mozregression today:

Status

Latest Version License

Build status:

  • Linux: Coverage Status

For more information see:

https://mozilla.github.io/mozregression/

Contact

You can chat with the mozregression developers on Mozilla's instance of Matrix: https://chat.mozilla.org/#/room/#mozregression:mozilla.org

Issue Tracking

Found a problem with mozregression? Have a feature request? We track bugs on bugzilla. You can file a new bug here.

Building And Developing mozregression

Want to hack on mozregression ? Cool!

Installing dependencies

To make setup more deterministic, we have provided requirements files to use a known-working set of python dependencies. From your mozregression checkout, you can install these inside a virtual development environment.

After checking out the mozregression repository from GitHub, this is a two step process:

  1. Be sure you are using Python 3.8 or above: earlier versions are not supported (if you are not sure, run python --version or python3 --version on the command line).

  2. From inside your mozregression checkout, create a virtual environment, activate it, and install the dependencies. The instructions are slightly different depending on whether you are using Windows or Linux/MacOS.

On Windows:

python3 -m venv venv
venv\Scripts\activate
pip install -r requirements\requirements-3.9-Windows.txt
pip install -e .

On Linux:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements/requirements-3.9-Linux.txt
pip install -e .

On macOS:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements/requirements-3.9-macOS.txt
pip install -e .

NOTE: You should replace the Python version with the one that matches with the virtual environment.

Hacking on mozregression

After running the above commands, you should be able to run the command-line version of mozregression as normal (e.g. mozregression --help) inside the virtual environment. If you wish to try running the GUI, use the provided helper script:

python gui/build.py run

To run the unit tests for the console version:

pytest tests

For the GUI version:

python gui/build.py test

Before submitting a pull request, please lint your code for errors and formatting (we use black, flake8 and isort)

./bin/lint-check.sh

If it turns up errors, try using the lint-fix.sh script to fix any errors which can be addressed automatically:

./bin/lint-fix.sh

Making a release

Create a new GitHub release and give it a tag name identical to the version number you want (e.g. 4.0.20). CI should automatically upload new versions of the GUI applications to the release and to TestPyPI and PyPI.

Follow the following conventions for pre-releases:

  • For development releases, tags should be appended with .devN, starting with N=0. For example, 6.2.1.dev0.
  • For alpha, beta, or release candidates, tags should be appended with aN, bN, or rcN, starting with N=0. For example, 6.2.1a0.dev4, 6.2.1rc2, etc...

For more info, see PEP 440.

Signing and notarizing macOS releases

Uploading the signed artifacts is a manual process at this time. To sign and notarize a macOS release, follow these steps:

  • Copy the signing manifest output from the build job.
  • Create a pull request to update signing-manifests/mozregression-macOS.yml in the adhoc-signing repo with those changes.
  • Wait for pull request to be merged, and the signing task to finish.
  • After the signing task is finished, download mozregression-gui-app-bundle.tar.gz and extract it in gui/dist.
  • Run ./bin/dmgbuild.
  • Upload new dmg artifact (gui/dist/mozregression-gui.dmg) to the corresponding release.
python
regression

mozilla/mozregression

Regression range finder for Mozilla nightly builds

Python

187

1,880 commits

updated Oct 15, 2026

See the code

See what people are saying

SourceMessageScoreDate

Mozregression is an interactive regression range finder for Firefox and others

2

Jan 27, 2025

Bisecting is also useful for end users. They might be able to reproduce bugs on their hardware or software configuration that the developers don’t have access to. Mozilla has a tool (command line or user-friendly-ish GUI front end) called “mozregression” that Firefox users can use to bisect…

on Keeping a project bisectable

0

Aug 5, 2022

Wow, with the line of code found in under an hour. Mozregression looks amazing: https://mozilla.github.io/mozregression/

on You Don't Know GIF – An analysis of a GIF file and some weird GIF features

0

Mar 10, 2022

Mozregression – interactive regression range finder for Mozilla Firefox etc.

3

Nov 25, 2021

Mozregression - https://mozilla.github.io/mozregression/ should help you figure out where it broke. You can open a bug with the commit you found as "regressed by" - https://wiki.mozilla.org/BMO/UserGuide/BugFields#regressed_b... to help developers track down how what they need to change to resolve…

on Graphics Team ships WebRender MVP

0

May 21, 2019

Granularity is pretty good for the Nightly builds, since a new update is normally built and pushed out at least once a day. The mozregression tool is useful for narrowing down when a bug first appeared: http://mozilla.github.io/mozregression/

on Simplifying Firefox Release Channels

0

Apr 17, 2017

Mozregression is an interactive regression range finder for Mozilla builds

3

Jul 27, 2016

Can you find a regression window using http://mozilla.github.io/mozregression/? That will help us figure out what broke and fix it.

on Firefox Now Offers a More Private Browsing Experience

0

Nov 5, 2015

README

mozregression

mozregression is an interactive regression rangefinder for quickly tracking down the source of bugs in Mozilla nightly and integration builds.

You can start using mozregression today:

Status

Latest Version License

Build status:

  • Linux: Coverage Status

For more information see:

https://mozilla.github.io/mozregression/

Contact

You can chat with the mozregression developers on Mozilla's instance of Matrix: https://chat.mozilla.org/#/room/#mozregression:mozilla.org

Issue Tracking

Found a problem with mozregression? Have a feature request? We track bugs on bugzilla. You can file a new bug here.

Building And Developing mozregression

Want to hack on mozregression ? Cool!

Installing dependencies

To make setup more deterministic, we have provided requirements files to use a known-working set of python dependencies. From your mozregression checkout, you can install these inside a virtual development environment.

After checking out the mozregression repository from GitHub, this is a two step process:

  1. Be sure you are using Python 3.8 or above: earlier versions are not supported (if you are not sure, run python --version or python3 --version on the command line).

  2. From inside your mozregression checkout, create a virtual environment, activate it, and install the dependencies. The instructions are slightly different depending on whether you are using Windows or Linux/MacOS.

On Windows:

python3 -m venv venv
venv\Scripts\activate
pip install -r requirements\requirements-3.9-Windows.txt
pip install -e .

On Linux:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements/requirements-3.9-Linux.txt
pip install -e .

On macOS:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements/requirements-3.9-macOS.txt
pip install -e .

NOTE: You should replace the Python version with the one that matches with the virtual environment.

Hacking on mozregression

After running the above commands, you should be able to run the command-line version of mozregression as normal (e.g. mozregression --help) inside the virtual environment. If you wish to try running the GUI, use the provided helper script:

python gui/build.py run

To run the unit tests for the console version:

pytest tests

For the GUI version:

python gui/build.py test

Before submitting a pull request, please lint your code for errors and formatting (we use black, flake8 and isort)

./bin/lint-check.sh

If it turns up errors, try using the lint-fix.sh script to fix any errors which can be addressed automatically:

./bin/lint-fix.sh

Making a release

Create a new GitHub release and give it a tag name identical to the version number you want (e.g. 4.0.20). CI should automatically upload new versions of the GUI applications to the release and to TestPyPI and PyPI.

Follow the following conventions for pre-releases:

  • For development releases, tags should be appended with .devN, starting with N=0. For example, 6.2.1.dev0.
  • For alpha, beta, or release candidates, tags should be appended with aN, bN, or rcN, starting with N=0. For example, 6.2.1a0.dev4, 6.2.1rc2, etc...

For more info, see PEP 440.

Signing and notarizing macOS releases

Uploading the signed artifacts is a manual process at this time. To sign and notarize a macOS release, follow these steps:

  • Copy the signing manifest output from the build job.
  • Create a pull request to update signing-manifests/mozregression-macOS.yml in the adhoc-signing repo with those changes.
  • Wait for pull request to be merged, and the signing task to finish.
  • After the signing task is finished, download mozregression-gui-app-bundle.tar.gz and extract it in gui/dist.
  • Run ./bin/dmgbuild.
  • Upload new dmg artifact (gui/dist/mozregression-gui.dmg) to the corresponding release.
python
regression

Project health

Overall

4.2/10

Maintained

5/10

Code review

9/10
OpenSSF Scorecard

Latest release

8.0.0.dev1 · Feb 18, 2026

Releases this year

6

Significant stargazers

Benjamin Bouvier

458 followers · starred Feb 2014

Chris Rebert

2,334 followers · starred Jul 2015

Brian Smith

276 followers · starred Jun 2026

Mounir Lamouri

127 followers · starred Jan 2011