gecko-dev/moz.build
Andrew Halberstadt dd673c2fb2 Bug 1811850 - [lint] Replace flake8 linter with ruff, r=linter-reviewers,sylvestre
Ruff is a very fast linter implemented in Rust and it can act as a drop-in
replacement for flake8. When running the same set of rules across all files
in mozilla-central (without mozlint), flake8 takes 900 seconds whereas ruff
takes 0.9 seconds.

Ruff also implements rules from other popular Python linters such as pylint,
isort and pyupgrade. There are even plans to implement feature parity with
black in the future. Ultimately, it can become our one stop shop for all Python
linting and formatting.

This stack will swap out all our Python lint tools for ruff (excluding black
for now).

Differential Revision: https://phabricator.services.mozilla.com/D172313
2023-03-20 13:06:27 +00:00

217 lines
5.9 KiB
Python

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
with Files("AUTHORS"):
BUG_COMPONENT = ("mozilla.org", "Licensing")
with Files("LICENSE"):
BUG_COMPONENT = ("mozilla.org", "Licensing")
with Files("mots.yaml"):
BUG_COMPONENT = ("Conduit", "mots")
with Files("aclocal.m4"):
BUG_COMPONENT = ("Firefox Build System", "General")
with Files("Cargo.*"):
BUG_COMPONENT = ("Firefox Build System", "General")
with Files("client.*"):
BUG_COMPONENT = ("Firefox Build System", "General")
with Files("CLOBBER"):
BUG_COMPONENT = ("Firefox Build System", "General")
with Files("*configure*"):
BUG_COMPONENT = ("Firefox Build System", "General")
with Files("docs/**"):
BUG_COMPONENT = ("Firefox Build System", "Generated Documentation")
SCHEDULES.exclusive = ["docs"]
with Files("mach*"):
BUG_COMPONENT = ("Firefox Build System", "Mach Core")
with Files("pyproject.toml"):
BUG_COMPONENT = ("Developer Infrastructure", "Lint and Formatting")
with Files("*moz*"):
BUG_COMPONENT = ("Firefox Build System", "General")
with Files("GNUmakefile"):
BUG_COMPONENT = ("Firefox Build System", "General")
with Files("*gradle*"):
BUG_COMPONENT = ("GeckoView", "General")
SCHEDULES.exclusive = ["android"]
with Files("*.json"):
BUG_COMPONENT = ("Firefox Build System", "General")
with Files("**/l10n.toml"):
BUG_COMPONENT = ("Core", "Localization")
FINAL = True
with Files("README.txt"):
BUG_COMPONENT = ("Core", "General")
with Files("nsprpub/**"):
BUG_COMPONENT = ("NSPR", "NSPR")
with Files("**/Makefile.in"):
BUG_COMPONENT = ("Firefox Build System", "General")
FINAL = True
with Files("**/*.rst"):
SCHEDULES.inclusive += ["docs"]
with Files("**/*.md"):
SCHEDULES.inclusive += ["docs"]
with Files("**/*.rs"):
SCHEDULES.inclusive += ["rusttests"]
with Files("**/reftest.list"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["reftest"]
with Files("**/reftest-qr.list"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["reftest"]
with Files("**/crashtest*.list"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["crashtest"]
with Files("**/a11y.ini"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["mochitest-a11y"]
with Files("**/mochitest.ini"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["mochitest-plain"]
with Files("**/browser.ini"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["mochitest-browser-chrome"]
with Files("**/test*/**browser_*"):
SCHEDULES.exclusive = ["mochitest-browser-chrome"]
with Files("**/chrome.ini"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["mochitest-chrome"]
with Files("**/xpcshell.ini"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["xpcshell"]
with Files("**/reftest*/**"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["reftest"]
with Files("**/crashtest*/**"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["crashtest"]
with Files("**/mochitest*/**"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["mochitest"]
with Files("**/xpcshell/**"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
SCHEDULES.exclusive = ["xpcshell"]
with Files("**/tests/**"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
with Files("**/test/**"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
with Files("**/unit/**"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
with Files("**/browser/tools/mozscreenshots/**"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
with Files("**/devtools/shared/test-helpers/**"):
SCHEDULES.inclusive += ["test-verify", "test-verify-gpu"]
CONFIGURE_SUBST_FILES += [
"config/autoconf.mk",
"config/emptyvars.mk",
]
if CONFIG["ENABLE_CLANG_PLUGIN"]:
DIRS += ["build/clang-plugin"]
DIRS += [
"build",
"config",
"python",
"testing",
"third_party/python",
]
if not CONFIG["JS_STANDALONE"]:
DIRS += ["taskcluster"]
if not CONFIG["JS_STANDALONE"] or not CONFIG["MOZ_BUILD_APP"]:
CONFIGURE_DEFINE_FILES += [
"mozilla-config.h",
]
EXPORTS += [
"!buildid.h",
"!mozilla-config.h",
"!source-repo.h",
]
GENERATED_FILES += [
"buildid.h",
"source-repo.h",
]
GENERATED_FILES["buildid.h"].script = "build/variables.py:buildid_header"
GENERATED_FILES["source-repo.h"].script = "build/variables.py:source_repo_header"
if CONFIG["MOZ_BUILD_APP"]:
# Bring in the configuration for the configured application.
include("/" + CONFIG["MOZ_BUILD_APP"] + "/app.mozbuild")
else:
include("/toolkit/toolkit.mozbuild")
OBJDIR_PP_FILES[".cargo"] += [".cargo/config.in"]
DEFINES["top_srcdir"] = TOPSRCDIR
SPHINX_TREES["contributing"] = "docs/contributing"
SPHINX_TREES["code-quality"] = "docs/code-quality"
SPHINX_TREES["testing-rust-code"] = "docs/testing-rust-code"
SPHINX_TREES["writing-rust-code"] = "docs/writing-rust-code"
SPHINX_TREES["bug-mgmt"] = "docs/bug-mgmt"
SPHINX_TREES["setup"] = "docs/setup"
SPHINX_TREES["crash-reporting"] = "docs/crash-reporting"
SPHINX_TREES["performance"] = "docs/performance"
SPHINX_TREES["metrics"] = "docs/metrics"
SPHINX_TREES["gtest"] = "docs/gtest"
SPHINX_TREES["nspr"] = "docs/nspr"
SPHINX_TREES["mots"] = "docs/mots"
SPHINX_TREES["update-infrastructure"] = "docs/update-infrastructure"
include("build/templates.mozbuild")