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:
- start with our installation guide, then
- take a look at our Quick Start document.
Status
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:
-
Be sure you are using Python 3.6 or above: earlier versions are not supported (if you are not sure, run
python --versionorpython3 --versionon 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 .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 runTo run the unit tests for the console version:
pytest testsFor the GUI version:
python gui/build.py testBefore submitting a pull request, please lint your code for errors and formatting (we use black, flake8 and isort)
./bin/lint-check.shIf it turns up errors, try using the lint-fix.sh script to fix any errors which can be addressed automatically:
./bin/lint-fix.shMaking a release
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/*