Commits:
-
632c5e7c
by Beatriz Rizental at 2024-07-31T15:05:11+00:00
Bug 42728: Modify ./mach lint to skip unused linters
-
67de9f05
by Beatriz Rizental at 2024-07-31T15:05:11+00:00
fixup! Bug 41803: Add some developer tools for working on tor-browser
2 changed files:
Changes:
python/mozlint/mozlint/cli.py
... |
... |
@@ -10,6 +10,30 @@ from pathlib import Path |
10
|
10
|
from mozlint.errors import NoValidLinter
|
11
|
11
|
from mozlint.formatters import all_formatters
|
12
|
12
|
|
|
13
|
+# We (the Tor Project) do not use all of Mozilla's linters.
|
|
14
|
+# Below is a list of linters we do not use,
|
|
15
|
+# these will be skipped when running `./mach lint` commands.
|
|
16
|
+INACTIVE_LINTERS = [
|
|
17
|
+ "android-api-lint",
|
|
18
|
+ "android-checkstyle",
|
|
19
|
+ "android-format",
|
|
20
|
+ "android-javadoc",
|
|
21
|
+ "android-lint",
|
|
22
|
+ "android-test",
|
|
23
|
+ "clippy",
|
|
24
|
+ "codespell",
|
|
25
|
+ "condprof-addons",
|
|
26
|
+ "file-perm",
|
|
27
|
+ "ignorefile",
|
|
28
|
+ "license",
|
|
29
|
+ "lintpref",
|
|
30
|
+ "perfdocs",
|
|
31
|
+ "rejected-words",
|
|
32
|
+ "rst",
|
|
33
|
+ "updatebot",
|
|
34
|
+ "wpt",
|
|
35
|
+]
|
|
36
|
+
|
13
|
37
|
|
14
|
38
|
class MozlintParser(ArgumentParser):
|
15
|
39
|
arguments = [
|
... |
... |
@@ -276,6 +300,9 @@ def find_linters(config_paths, linters=None): |
276
|
300
|
|
277
|
301
|
name = name.rsplit(".", 1)[0]
|
278
|
302
|
|
|
303
|
+ if not linters and name in INACTIVE_LINTERS:
|
|
304
|
+ continue
|
|
305
|
+
|
279
|
306
|
if linters and name not in linters:
|
280
|
307
|
continue
|
281
|
308
|
|
... |
... |
@@ -341,10 +368,14 @@ def run( |
341
|
368
|
|
342
|
369
|
if list_linters:
|
343
|
370
|
lint_paths = find_linters(lintargs["config_paths"], linters)
|
344
|
|
- linters = [
|
|
371
|
+ formatted_linters = [
|
345
|
372
|
os.path.splitext(os.path.basename(l))[0] for l in lint_paths["lint_paths"]
|
346
|
373
|
]
|
347
|
|
- print("\n".join(sorted(linters)))
|
|
374
|
+ print("\n".join(sorted(formatted_linters)))
|
|
375
|
+
|
|
376
|
+ if not linters:
|
|
377
|
+ print("\nINACTIVE -- ".join(sorted(["", *INACTIVE_LINTERS])).strip())
|
|
378
|
+
|
348
|
379
|
print(
|
349
|
380
|
"\nNote that clang-tidy checks are not run as part of this "
|
350
|
381
|
"command, but using the static-analysis command."
|
tools/torbrowser/tb-dev
... |
... |
@@ -309,35 +309,10 @@ def lint_changed_files(args): |
309
|
309
|
for f in get_changed_files(get_upstream_basis_commit("HEAD"))
|
310
|
310
|
if os.path.isfile(f) # Not deleted
|
311
|
311
|
]
|
312
|
|
- command_base = ["./mach", "lint"]
|
313
|
|
- lint_process = subprocess.run(
|
314
|
|
- [*command_base, "--list"], text=True, stdout=subprocess.PIPE, check=True
|
315
|
|
- )
|
316
|
|
-
|
317
|
|
- linters = []
|
318
|
|
- for line in lint_process.stdout.split("\n"):
|
319
|
|
- if not line:
|
320
|
|
- continue
|
321
|
|
- if line.startswith("Note that clang-tidy"):
|
322
|
|
- # Note at end
|
323
|
|
- continue
|
324
|
|
- if line == "license":
|
325
|
|
- # don't lint the license
|
326
|
|
- continue
|
327
|
|
- if line.startswith("android-"):
|
328
|
|
- continue
|
329
|
|
- # lint everything else
|
330
|
|
- linters.append("-l")
|
331
|
|
- linters.append(line)
|
332
|
|
-
|
333
|
|
- if not linters:
|
334
|
|
- raise Exception("No linters found")
|
335
|
|
-
|
336
|
|
- if args.fix:
|
337
|
|
- command_base.append("--fix")
|
338
|
312
|
# We add --warnings since clang only reports whitespace issues as warnings.
|
339
|
|
- lint_process = subprocess.run(
|
340
|
|
- [*command_base, "--warnings", *linters, *file_list], check=False
|
|
313
|
+ subprocess.run(
|
|
314
|
+ ["./mach", "lint", "--warnings", "soft", *args.lintargs, *file_list],
|
|
315
|
+ check=False,
|
341
|
316
|
)
|
342
|
317
|
|
343
|
318
|
|
... |
... |
@@ -663,9 +638,10 @@ for name, details in { |
663
|
638
|
"lint-changed-files": {
|
664
|
639
|
"func": lint_changed_files,
|
665
|
640
|
"args": {
|
666
|
|
- "--fix": {
|
667
|
|
- "help": "whether to fix the files",
|
668
|
|
- "action": "store_true",
|
|
641
|
+ "lintargs": {
|
|
642
|
+ "help": "argument to pass to ./mach lint",
|
|
643
|
+ "metavar": "-- lint-arg",
|
|
644
|
+ "nargs": "*",
|
669
|
645
|
},
|
670
|
646
|
},
|
671
|
647
|
},
|
|