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: Linux Build Status Coverage Status
  • Windows: Windows Build 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.6 or above: earlier versions are not supported (if you are not sure, run python --version or python3 --version on the command line).

  2. If you don't have it already, install virtualenv.

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

On Windows:

virtualenv -p python venv
venv\Scripts\activate
pip install -r requirements\build.txt -r requirements\linters.txt
pip install -e .

On Linux/MacOS:

virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements/build.txt -r requirements/linters.txt
pip install -e .

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

This is currently a multi-step process:

  1. 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.
  2. Fetch the tag locally and make a new release. The recommended workflow is something like this (this assumes you have twine installed):
git fetch origin  # assumes origin is mozilla/mozregression
git checkout 4.0.20
python3 setup.py sdist bdist_wheel
python3 -m twine upload dist/*

Repo Not Found