Bug 1864652 - Expose settings for Global Privacy Control. r=geckoview-reviewers,ohall...
[gecko.git] / docs / code-quality / index.rst
blobb664f221befa2cb4fe63a7cbcdcc048857cdd743
1 Code quality
2 ============
4 Because Firefox is a complex piece of software, a lot of tools are
5 executed to identify issues at development phase.
6 In this document, we try to list these all tools.
9 .. toctree::
10   :maxdepth: 1
11   :glob:
13   static-analysis/index.rst
14   lint/index.rst
15   coding-style/index.rst
17 .. list-table:: C/C++
18    :header-rows: 1
19    :widths: 20 20 20 20 20
21    * - Tools
22      - Has autofixes
23      - Meta bug
24      - More info
25      - Upstream
26    * - Custom clang checker
27      -
28      -
29      - `Source <https://searchfox.org/mozilla-central/source/build/clang-plugin>`_
30      -
31    * - Clang-Tidy
32      - Yes
33      - `bug 712350 <https://bugzilla.mozilla.org/show_bug.cgi?id=712350>`__
34      - :ref:`Static analysis <Static Analysis>`
35      - https://clang.llvm.org/extra/clang-tidy/checks/list.html
36    * - Clang analyzer
37      -
38      - `bug 712350 <https://bugzilla.mozilla.org/show_bug.cgi?id=712350>`__
39      -
40      - https://clang-analyzer.llvm.org/
41    * - cpp virtual final
42      -
43      -
44      - :ref:`cpp virtual final`
45      -
46    * - clang-format
47      - Yes
48      - `bug 1188202 <https://bugzilla.mozilla.org/show_bug.cgi?id=1188202>`__
49      - :ref:`Formatting C++ Code With clang-format`
50      - https://clang.llvm.org/docs/ClangFormat.html
52 .. list-table:: CSS
53    :widths: 20 20 20 20 20
54    :header-rows: 1
56    * - Tools
57      - Has autofixes
58      - Meta bug
59      - More info
60      - Upstream
61    * - Stylelint
62      - Yes
63      - `bug 1762027 <https://bugzilla.mozilla.org/show_bug.cgi?id=1762027>`__
64      - :ref:`Stylelint`
65      - https://stylelint.io/
67 .. list-table:: JavaScript
68    :widths: 20 20 20 20 20
69    :header-rows: 1
71    * - Tools
72      - Has autofixes
73      - Meta bug
74      - More info
75      - Upstream
76    * - Eslint
77      - Yes
78      - `bug 1229856 <https://bugzilla.mozilla.org/show_bug.cgi?id=1229856>`__
79      - :ref:`ESLint`
80      - https://eslint.org/
81    * - Mozilla ESLint
82      -
83      - `bug 1229856 <https://bugzilla.mozilla.org/show_bug.cgi?id=1229856>`__
84      - :ref:`Mozilla ESLint Plugin`
85      -
86    * - Prettier
87      - Yes
88      - `bug 1558517 <https://bugzilla.mozilla.org/show_bug.cgi?id=1558517>`__
89      - :ref:`JavaScript Coding style`
90      - https://prettier.io/
92 .. list-table:: Python
93    :widths: 20 20 20 20 20
94    :header-rows: 1
96    * - Tools
97      - Has autofixes
98      - Meta bug
99      - More info
100      - Upstream
101    * - ruff
102      - Yes
103      - `bug 1811850 <https://bugzilla.mozilla.org/show_bug.cgi?id=1811850>`__
104      - :ref:`ruff`
105      - https://github.com/charliermarsh/ruff
106    * - black
107      - Yes
108      - `bug 1555560 <https://bugzilla.mozilla.org/show_bug.cgi?id=1555560>`__
109      - :ref:`black`
110      - https://black.readthedocs.io/en/stable
112 .. list-table:: Rust
113    :widths: 20 20 20 20 20
114    :header-rows: 1
116    * - Tools
117      - Has autofixes
118      - Meta bug
119      - More info
120      - Upstream
121    * - Rustfmt
122      - Yes
123      - `bug 1454764 <https://bugzilla.mozilla.org/show_bug.cgi?id=1454764>`__
124      - :ref:`Rustfmt`
125      - https://github.com/rust-lang/rustfmt
126    * - Clippy
127      -
128      - `bug 1361342 <https://bugzilla.mozilla.org/show_bug.cgi?id=1361342>`__
129      - :ref:`clippy`
130      - https://github.com/rust-lang/rust-clippy
132 .. list-table:: Java/Kotlin
133    :widths: 20 20 20 20 20
134    :header-rows: 1
136    * - Tools
137      - Has autofixes
138      - Meta bug
139      - More info
140      - Upstream
141    * - Spotless
142      - Yes
143      - `bug 1571899 <https://bugzilla.mozilla.org/show_bug.cgi?id=1571899>`__
144      - :ref:`Spotless`
145      - https://github.com/diffplug/spotless
147 .. list-table:: Others
148    :widths: 20 20 20 20 20
149    :header-rows: 1
151    * - Tools
152      - Has autofixes
153      - Meta bug
154      - More info
155      - Upstream
156    * - shellcheck
157      -
158      -
159      -
160      - https://www.shellcheck.net/
161    * - rstchecker
162      -
163      -
164      - :ref:`RST Linter`
165      - https://github.com/myint/rstcheck
166    * - Typo detection
167      - Yes
168      -
169      - :ref:`Codespell`
170      - https://github.com/codespell-project/codespell
171    * - Fluent Lint
172      - No
173      -
174      - :ref:`Fluent Lint`
175      -
176    * - YAML linter
177      - No
178      -
179      - :ref:`yamllint`
180      - https://github.com/adrienverge/yamllint