blob: 1c282f60b49bc7a248c01c48727e98be5a33724a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
Linting
=======
Linters are used in mozilla-central to help enforce coding style and avoid bad practices. Due to the
wide variety of languages in use, this is not always an easy task. In addition, linters should be runnable from editors, from the command line, from review tools
and from continuous integration. It's easy to see how the complexity of running all of these
different kinds of linters in all of these different places could quickly balloon out of control.
``Mozlint`` is a library that accomplishes several goals:
1. It provides a standard method for adding new linters to the tree, which can be as easy as
defining a config object in a ``.yml`` file. This helps keep lint related code localized, and
prevents different teams from coming up with their own unique lint implementations.
2. It provides a streamlined interface for running all linters at once. Instead of running N
different lint commands to test your patch, a single ``mach lint`` command will automatically run
all applicable linters. This means there is a single API surface that other tools can use to
invoke linters.
3. With a simple taskcluster configuration, Mozlint provides an easy way to execute all these jobs
at review phase.
``Mozlint`` isn't designed to be used directly by end users. Instead, it can be consumed by things
like mach, phabricator and taskcluster.
Getting Help
------------
If you need help or have questions, please don’t hesitate to contact us via Matrix
in the "Lint and Formatting" room
(`#lint:mozilla.org <https://chat.mozilla.org/#/room/#lint:mozilla.org>`_).
.. toctree::
:caption: Linting User Guide
:maxdepth: 1
:glob:
usage
create
linters/*
|