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:
For more information see:
You can chat with the mozregression developers on Mozilla's instance of Matrix: https://chat.mozilla.org/#/room/#mozregression:mozilla.org
Building And Developing mozregression
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
python3 --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.
virtualenv -p python venv venv\Scripts\activate pip install -r requirements\build.txt -r requirements\linters.txt pip install -e .
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:
For the GUI version:
python gui/build.py test
If it turns up errors, try using the
lint-fix.sh script to fix any errors which can be addressed automatically:
Making 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/*