{"id":18118022,"url":"https://github.com/mozilla/mozregression","last_synced_at":"2026-02-18T16:02:59.999Z","repository":{"id":37579845,"uuid":"512679","full_name":"mozilla/mozregression","owner":"mozilla","description":"Regression range finder for Mozilla nightly builds","archived":false,"fork":false,"pushed_at":"2026-02-11T18:21:10.000Z","size":8590,"stargazers_count":182,"open_issues_count":78,"forks_count":108,"subscribers_count":11,"default_branch":"main","last_synced_at":"2026-02-11T22:39:29.673Z","etag":null,"topics":["python","regression"],"latest_commit_sha":null,"homepage":"https://mozilla.github.io/mozregression/","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mozilla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2010-02-11T05:49:14.000Z","updated_at":"2026-02-10T20:55:05.000Z","dependencies_parsed_at":"2025-12-11T22:09:00.884Z","dependency_job_id":null,"html_url":"https://github.com/mozilla/mozregression","commit_stats":{"total_commits":1747,"total_committers":84,"mean_commits":"20.797619047619047","dds":0.7086433886662851,"last_synced_commit":"f558f7daa067ef4b354b56575d33a8556ff0042c"},"previous_names":[],"tags_count":185,"template":false,"template_full_name":null,"purl":"pkg:github/mozilla/mozregression","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fmozregression","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fmozregression/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fmozregression/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fmozregression/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mozilla","download_url":"https://codeload.github.com/mozilla/mozregression/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fmozregression/sbom","scorecard":{"id":113434,"data":{"date":"2025-08-04","repo":{"name":"github.com/mozilla/mozregression","commit":"fd9a8af13a11c3e0d25164f0d21029e360ec7e6c"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":4.2,"checks":[{"name":"Code-Review","score":9,"reason":"Found 9/10 approved changesets -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Maintained","score":3,"reason":"4 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/compile-requirements.yml:1","Warn: no topLevel permission defined: .github/workflows/deploy-gui.yml:1","Warn: no topLevel permission defined: .github/workflows/deploy.yml:1","Warn: no topLevel permission defined: .github/workflows/glean-probe-scraper.yml:1","Warn: no topLevel permission defined: .github/workflows/run-compile-requirements.yml:1","Warn: no topLevel permission defined: .github/workflows/upload-gui-to-workflow.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Mozilla Public License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing job operating system: .github/workflows/compile-requirements.yml:47","Info: Possibly incomplete results: error parsing job operating system: .github/workflows/compile-requirements.yml:51","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:74: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:96: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:103: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:167: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:171: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compile-requirements.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/compile-requirements.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compile-requirements.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/compile-requirements.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compile-requirements.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/compile-requirements.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compile-requirements.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/compile-requirements.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compile-requirements.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/compile-requirements.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy-gui.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/deploy-gui.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy-gui.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/deploy-gui.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy-gui.yml:105: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/deploy-gui.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy-gui.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/deploy-gui.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy-gui.yml:122: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/deploy-gui.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy-gui.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/deploy-gui.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy-gui.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/deploy-gui.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy-gui.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/deploy-gui.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/deploy.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/glean-probe-scraper.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/glean-probe-scraper.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/upload-gui-to-workflow.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/upload-gui-to-workflow.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/upload-gui-to-workflow.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/upload-gui-to-workflow.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:86: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/upload-gui-to-workflow.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:96: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/upload-gui-to-workflow.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/upload-gui-to-workflow.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:113: update your workflow using https://app.stepsecurity.io/secureworkflow/mozilla/mozregression/upload-gui-to-workflow.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:56","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:57","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:58","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:110","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:111","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:112","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:149","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:150","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:151","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:21","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:22","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:23","Warn: pipCommand not pinned by hash: .github/workflows/deploy-gui.yml:38","Warn: pipCommand not pinned by hash: .github/workflows/deploy-gui.yml:39","Warn: pipCommand not pinned by hash: .github/workflows/deploy-gui.yml:40","Warn: pipCommand not pinned by hash: .github/workflows/deploy-gui.yml:80","Warn: pipCommand not pinned by hash: .github/workflows/deploy-gui.yml:81","Warn: pipCommand not pinned by hash: .github/workflows/deploy-gui.yml:82","Warn: pipCommand not pinned by hash: .github/workflows/deploy.yml:24","Warn: pipCommand not pinned by hash: .github/workflows/deploy.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/deploy.yml:26","Warn: pipCommand not pinned by hash: .github/workflows/deploy.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:77","Warn: pipCommand not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:78","Warn: pipCommand not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:79","Warn: pipCommand not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:39","Warn: pipCommand not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:40","Warn: pipCommand not pinned by hash: .github/workflows/upload-gui-to-workflow.yml:41","Info:   0 out of  34 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of  28 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 6.4.0.dev2 not signed: https://api.github.com/repos/mozilla/mozregression/releases/238347623","Warn: release artifact 6.4.0.dev1 not signed: https://api.github.com/repos/mozilla/mozregression/releases/238069090","Warn: release artifact 6.4.0.dev0 not signed: https://api.github.com/repos/mozilla/mozregression/releases/235755627","Warn: release artifact 6.3.0 not signed: https://api.github.com/repos/mozilla/mozregression/releases/185514456","Warn: release artifact 6.2.2 not signed: https://api.github.com/repos/mozilla/mozregression/releases/160541082","Warn: release artifact 6.4.0.dev2 does not have provenance: https://api.github.com/repos/mozilla/mozregression/releases/238347623","Warn: release artifact 6.4.0.dev1 does not have provenance: https://api.github.com/repos/mozilla/mozregression/releases/238069090","Warn: release artifact 6.4.0.dev0 does not have provenance: https://api.github.com/repos/mozilla/mozregression/releases/235755627","Warn: release artifact 6.3.0 does not have provenance: https://api.github.com/repos/mozilla/mozregression/releases/185514456","Warn: release artifact 6.2.2 does not have provenance: https://api.github.com/repos/mozilla/mozregression/releases/160541082"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":6,"reason":"4 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-9548-qrrj-x5pj","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-48p4-8xcf-vxj5","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-15T18:34:58.761Z","repository_id":37579845,"created_at":"2025-08-15T18:34:58.761Z","updated_at":"2025-08-15T18:34:58.761Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29585441,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T13:56:48.962Z","status":"ssl_error","status_checked_at":"2026-02-18T13:54:34.145Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","regression"],"created_at":"2024-11-01T05:07:54.374Z","updated_at":"2026-02-18T16:02:59.935Z","avatar_url":"https://github.com/mozilla.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mozregression\n\nmozregression is an interactive regression rangefinder for quickly tracking down the source of bugs in Mozilla nightly and integration builds.\n\nYou can start using mozregression today:\n\n- [start with our installation guide](https://mozilla.github.io/mozregression/install.html), then\n- take a look at [our Quick Start document](https://mozilla.github.io/mozregression/quickstart.html).\n\n## Status\n\n[![Latest Version](https://img.shields.io/pypi/v/mozregression.svg)](https://pypi.python.org/pypi/mozregression/)\n[![License](https://img.shields.io/pypi/l/mozregression.svg)](https://pypi.python.org/pypi/mozregression/)\n\nBuild status:\n\n- Linux:\n  [![Coverage Status](https://img.shields.io/coveralls/mozilla/mozregression.svg)](https://coveralls.io/r/mozilla/mozregression)\n\nFor more information see:\n\nhttps://mozilla.github.io/mozregression/\n\n## Contact\n\nYou can chat with the mozregression developers on Mozilla's instance of [Matrix](https://chat.mozilla.org/#/room/#mozregression:mozilla.org): https://chat.mozilla.org/#/room/#mozregression:mozilla.org\n\n## Issue Tracking\n\nFound a problem with mozregression? Have a feature request? We track bugs [on bugzilla](https://bugzilla.mozilla.org/buglist.cgi?quicksearch=product%3ATesting%20component%3Amozregression\u0026list_id=14890897).\nYou can file a new bug [here](https://bugzilla.mozilla.org/enter_bug.cgi?product=Testing\u0026component=mozregression).\n\n## Building And Developing mozregression\n\nWant to hack on mozregression ? Cool!\n\n### Installing dependencies\n\nTo make setup more deterministic, we have provided requirements files to use a known-working\nset of python dependencies. From your mozregression checkout, you can install these inside\na virtual development environment.\n\nAfter checking out the mozregression repository from GitHub, this is a two step process:\n\n1. Be sure you are using Python 3.8 or above: earlier versions are not supported (if you\n   are not sure, run `python --version` or `python3 --version` on the command line).\n\n2. 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.\n\n\nOn Windows:\n\n```bash\npython3 -m venv venv\nvenv\\Scripts\\activate\npip install -r requirements\\requirements-3.9-Windows.txt\npip install -e .\n```\n\nOn Linux:\n\n```bash\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements/requirements-3.9-Linux.txt\npip install -e .\n```\n\nOn macOS:\n\n```bash\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements/requirements-3.9-macOS.txt\npip install -e .\n```\n\nNOTE: You should replace the Python version with the one that matches with the virtual environment.\n\n### Hacking on mozregression\n\nAfter running the above commands, you should be able to run the command-line version of\nmozregression as normal (e.g. `mozregression --help`) inside the virtual environment. If\nyou wish to try running the GUI, use the provided helper script:\n\n```bash\npython gui/build.py run\n```\n\nTo run the unit tests for the console version:\n\n```bash\npytest tests\n```\n\nFor the GUI version:\n\n```bash\npython gui/build.py test\n```\n\nBefore submitting a pull request, please lint your code for errors and formatting (we use [black](https://black.readthedocs.io/en/stable/), [flake8](https://flake8.pycqa.org/en/latest/) and [isort](https://isort.readthedocs.io/en/latest/))\n\n```bash\n./bin/lint-check.sh\n```\n\nIf it turns up errors, try using the `lint-fix.sh` script to fix any errors which can be addressed automatically:\n\n```bash\n./bin/lint-fix.sh\n```\n\n### Making a release\n\nCreate 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.\n\nFollow the following conventions for pre-releases:\n\n- For development releases, tags should be appended with .devN, starting with N=0. For example, 6.2.1.dev0.\n- 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...\n\nFor more info, see [PEP 440](https://peps.python.org/pep-0440/).\n\n#### Signing and notarizing macOS releases\n\nUploading the signed artifacts is a manual process at this time. To sign and notarize a macOS release, follow these steps:\n\n- Copy the signing manifest output from the build job.\n- Create a pull request to update `signing-manifests/mozregression-macOS.yml` in the [adhoc-signing](https://github.com/mozilla-releng/adhoc-signing) repo with those changes.\n- Wait for pull request to be merged, and the signing task to finish.\n- After the signing task is finished, download `mozregression-gui-app-bundle.tar.gz` and extract it in `gui/dist`.\n- Run `./bin/dmgbuild`.\n- Upload new dmg artifact (gui/dist/mozregression-gui.dmg) to the corresponding release.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fmozregression","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozilla%2Fmozregression","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fmozregression/lists"}