Autobisect
Autobisect is a python module that automates bisection of Mozilla Firefox and SpiderMonkey bugs.
Installation
git clone git@github.com:MozillaSecurity/autobisect.git
cd autobisect
poetry install
Usage
Firefox bug bisection supports the following arguments:
python -m autobisect firefox --help
usage: __main__.py firefox [-h] [--log-level LOG_LEVEL] [--start START] [--end END] [--timeout TIMEOUT] [--repeat REPEAT] [--config CONFIG] [--find-fix] [--os {Android,Darwin,Linux,Windows}]
[--cpu {AMD64,ARM64,aarch64,arm,arm64,i686,x64,x86,x86_64}] [--central | --release | --beta | --esr-stable | --esr-next | --try | --autoland] [-d] [-a] [-t] [--fuzzing]
[--fuzzilli] [--coverage] [--valgrind] [--no-opt] [--launch-timeout LAUNCH_TIMEOUT] [-p PREFS] [--xvfb] [--ignore [IGNORE [IGNORE ...]]]
testcase
positional arguments:
testcase Path to testcase
optional arguments:
-h, --help show this help message and exit
--log-level LOG_LEVEL
Configure console logging. Options: DEBUG, INFO, WARN, ERROR, CRIT (default: INFO)
Boundary Arguments:
Accepts revision or build date in YYYY-MM-DD format)
--start START Start build id (default: earliest available build)
--end END End build id (default: latest available build)
Bisection Arguments:
--timeout TIMEOUT Maximum iteration time in seconds (default: 60)
--repeat REPEAT Number of times to evaluate testcase (per build)
--config CONFIG Path to optional config file
--find-fix Identify fix date
Target Arguments:
--os {Android,Darwin,Linux,Windows}
Specify the target system. (default: Linux)
--cpu {AMD64,ARM64,aarch64,arm,arm64,i686,x64,x86,x86_64}
Specify the target CPU. (default: x86_64)
Branch Arguments:
--central Download from mozilla-central (default)
--release Download from mozilla-release
--beta Download from mozilla-beta
--esr-stable Download from esr-stable
--esr-next Download from esr-next
--try Download from try
--autoland Download from autoland
Build Arguments:
-d, --debug Get debug builds w/ symbols (default=optimized).
-a, --asan Download AddressSanitizer builds.
-t, --tsan Download ThreadSanitizer builds.
--fuzzing Download --enable-fuzzing builds.
--fuzzilli Download --enable-js-fuzzilli builds.
--coverage Download --coverage builds.
--valgrind Download Valgrind builds.
--no-opt Download non-optimized builds.
Launcher Arguments:
--launch-timeout LAUNCH_TIMEOUT
Number of seconds to wait before LaunchError is raised (default: 300)
-p PREFS, --prefs PREFS
Optional prefs.js file to use
--xvfb Use Xvfb (Linux only)
Reporter Arguments:
--ignore [IGNORE [IGNORE ...]]
Space separated list of issue types to ignore. Valid options: log-limit memory timeout (default: log-limit memory timeout)
Simple Bisection
python -m autobisect firefox trigger.html --prefs prefs.js --asan --end 2017-11-14
By default, Autobisect will cache downloaded builds (up to 30GBs) to reduce bisection time. This behavior can be modified by supplying a custom configuration file in the following format:
[autobisect]
storage-path: /home/ubuntu/cached
persist: true
; size in MBs
persist-limit: 30000
Development
Autobisect includes a pre-commit hook for black and flake8. To install the pre-commit hook, run the following.
pre-commit install
Furthermore, all tests should be executed via tox.
poetry run tox
Metadata
Release files for autobisect 9.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| autobisect-9.2.2.tar.gz | 929.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| autobisect-9.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 959.9 kB
Release files / autobisect-9.2.2.tar.gz
| Download URL | autobisect-9.2.2.tar.gz |
|---|---|
| Size | 929.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
71563c9e1786dcfc26fb5c2b19dbdd4165c34bf48b5ee40225364c73a4d290ef
|
|
BLAKE2b-256 checksum How to use checksums |
23da50a538645fb52169047b6223c09860d524788ee3bcff2b42b54e9b3fb966
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / autobisect-9.2.2-py3-none-any.whl
| Download URL | autobisect-9.2.2-py3-none-any.whl |
|---|---|
| Size | 30.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7e9de4951f062363024d44f1136136f18afab4bf3ae64a254b83a7cf9e831a6f
|
|
BLAKE2b-256 checksum How to use checksums |
56c11761762ef096957eb068846a749d38cd5d4b4cabc6fa3e44e1f8c1d9f54c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency log