Mozregression is a regression rangefinder designed to help developers quickly identify the source of bugs in Mozilla nightly and integration builds. By enabling efficient tracking of regressions, it streamlines the debugging process for those working on Mozilla projects.
Key Features:
Binary Search: Efficiently narrows down the range of builds where a bug was introduced.
Multiple Build Channels: Supports analysis of bugs across different Mozilla build types, including nightly and integration builds.
User-Friendly Interface: Offers both command-line and graphical user interface options for flexible usage.
Audience & Benefit:
Ideal for developers and testers working on Mozilla projects, mozregression accelerates the identification of bug sources, enabling faster resolution and improving software quality.
README
mozregression
mozregression is an interactive regression rangefinder for quickly tracking down the source of bugs in Mozilla nightly and integration builds.
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.8 or above: earlier versions are not supported (if you
are not sure, run python --version or python3 --version on the command line).
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.
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...