index.rst (4385B)
1 Code quality 2 ============ 3 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. 7 8 9 .. toctree:: 10 :maxdepth: 1 11 :glob: 12 13 static-analysis/index.rst 14 lint/index.rst 15 coding-style/index.rst 16 typescript/index.md 17 18 .. list-table:: C/C++ 19 :header-rows: 1 20 :widths: 20 20 20 20 20 21 22 * - Tools 23 - Has autofixes 24 - Meta bug 25 - More info 26 - Upstream 27 * - Custom clang checker 28 - 29 - 30 - `Source <https://searchfox.org/mozilla-central/source/build/clang-plugin>`_ 31 - 32 * - Clang-Tidy 33 - Yes 34 - `bug 712350 <https://bugzilla.mozilla.org/show_bug.cgi?id=712350>`__ 35 - :ref:`Static analysis <Static Analysis>` 36 - https://clang.llvm.org/extra/clang-tidy/checks/list.html 37 * - Clang analyzer 38 - 39 - `bug 712350 <https://bugzilla.mozilla.org/show_bug.cgi?id=712350>`__ 40 - 41 - https://clang-analyzer.llvm.org/ 42 * - cpp virtual final 43 - 44 - 45 - :ref:`cpp virtual final` 46 - 47 * - clang-format 48 - Yes 49 - `bug 1188202 <https://bugzilla.mozilla.org/show_bug.cgi?id=1188202>`__ 50 - :ref:`Formatting C++ Code With clang-format` 51 - https://clang.llvm.org/docs/ClangFormat.html 52 53 .. list-table:: CSS 54 :widths: 20 20 20 20 20 55 :header-rows: 1 56 57 * - Tools 58 - Has autofixes 59 - Meta bug 60 - More info 61 - Upstream 62 * - Stylelint 63 - Yes 64 - `bug 1762027 <https://bugzilla.mozilla.org/show_bug.cgi?id=1762027>`__ 65 - :ref:`Stylelint` 66 - https://stylelint.io/ 67 * - Mozilla Stylelint 68 - 69 - 70 - :ref:`Mozilla Stylelint Plugin` 71 - 72 73 .. list-table:: JavaScript 74 :widths: 20 20 20 20 20 75 :header-rows: 1 76 77 * - Tools 78 - Has autofixes 79 - Meta bug 80 - More info 81 - Upstream 82 * - Eslint 83 - Yes 84 - `bug 1229856 <https://bugzilla.mozilla.org/show_bug.cgi?id=1229856>`__ 85 - :ref:`ESLint` 86 - https://eslint.org/ 87 * - Mozilla ESLint 88 - 89 - `bug 1229856 <https://bugzilla.mozilla.org/show_bug.cgi?id=1229856>`__ 90 - :ref:`Mozilla ESLint Plugin` 91 - 92 * - Prettier 93 - Yes 94 - `bug 1558517 <https://bugzilla.mozilla.org/show_bug.cgi?id=1558517>`__ 95 - :ref:`JavaScript Coding style` 96 - https://prettier.io/ 97 98 .. list-table:: Python 99 :widths: 20 20 20 20 20 100 :header-rows: 1 101 102 * - Tools 103 - Has autofixes 104 - Meta bug 105 - More info 106 - Upstream 107 * - ruff 108 - Yes 109 - `bug 1811850 <https://bugzilla.mozilla.org/show_bug.cgi?id=1811850>`__ 110 - :ref:`ruff` 111 - https://github.com/charliermarsh/ruff 112 * - black 113 - Yes 114 - `bug 1555560 <https://bugzilla.mozilla.org/show_bug.cgi?id=1555560>`__ 115 - :ref:`black` 116 - https://black.readthedocs.io/en/stable 117 118 .. list-table:: Rust 119 :widths: 20 20 20 20 20 120 :header-rows: 1 121 122 * - Tools 123 - Has autofixes 124 - Meta bug 125 - More info 126 - Upstream 127 * - Rustfmt 128 - Yes 129 - `bug 1454764 <https://bugzilla.mozilla.org/show_bug.cgi?id=1454764>`__ 130 - :ref:`Rustfmt` 131 - https://github.com/rust-lang/rustfmt 132 * - Clippy 133 - Yes 134 - `bug 1361342 <https://bugzilla.mozilla.org/show_bug.cgi?id=1361342>`__ 135 - :ref:`clippy` 136 - https://github.com/rust-lang/rust-clippy 137 * - cargo-audit 138 - 139 - `bug 1747536 <https://bugzilla.mozilla.org/show_bug.cgi?id=1747536>`__ 140 - :ref:`cargo-audit` 141 - https://rustsec.org/ 142 143 .. list-table:: Java/Kotlin 144 :widths: 20 20 20 20 20 145 :header-rows: 1 146 147 * - Tools 148 - Has autofixes 149 - Meta bug 150 - More info 151 - Upstream 152 * - Spotless 153 - Yes 154 - `bug 1571899 <https://bugzilla.mozilla.org/show_bug.cgi?id=1571899>`__ 155 - :ref:`Spotless` 156 - https://github.com/diffplug/spotless 157 158 .. list-table:: Others 159 :widths: 20 20 20 20 20 160 :header-rows: 1 161 162 * - Tools 163 - Has autofixes 164 - Meta bug 165 - More info 166 - Upstream 167 * - shellcheck 168 - 169 - 170 - 171 - https://www.shellcheck.net/ 172 * - rstchecker 173 - 174 - 175 - :ref:`RST Linter` 176 - https://github.com/myint/rstcheck 177 * - Typo detection 178 - Yes 179 - 180 - :ref:`Codespell` 181 - https://github.com/codespell-project/codespell 182 * - Fluent Lint 183 - No 184 - 185 - :ref:`Fluent Lint` 186 - 187 * - YAML linter 188 - No 189 - 190 - :ref:`yamllint` 191 - https://github.com/adrienverge/yamllint