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:
- start with our installation guide, then
- take a look at our Quick Start document.
Build status:
For more information see:
https://mozilla.github.io/mozregression/
You can chat with the mozregression developers on Mozilla's instance of Matrix: https://chat.mozilla.org/#/room/#mozregression:mozilla.org
Found a problem with mozregression? Have a feature request? We track bugs on bugzilla. You can file a new bug here.
Want to hack on mozregression ? Cool!
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:
-
Be sure you are using Python 3.6 or above: earlier versions are not supported (if you are not sure, run
python --version
orpython3 --version
on the command line). -
If you don't have it already, install virtualenv.
-
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 .
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
This is currently a multi-step process:
- 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. - 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/*