You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
0f073f7a09
Before, it was required to specify all the options when customizing a rule. For instance, one could use `empty-lines: enable` or `empty-lines: {max: 1, max-start: 2, max-end: 2}`, but not just `empty-lines: {max: 1}` (it would fail with *invalid config: missing option "max-start" for rule "empty-lines"*). This was a minor problem for users, but it prevented the addition of new options to existing rules, see [1] for an example. If a new option was added, updating yamllint for all users that customize the rule would produce a crash (*invalid config: missing option ...*). To avoid that, let's embed default values inside the rules themselves, instead of keeping them in `conf/default.yaml`. This refactor should not have any impact on existing projects. I've manually checked that it did not change the output of tests, on different projects: - ansible/ansible: `test/runner/ansible-test sanity --python 3.7 --test yamllint` - ansible/molecule: `yamllint -s test/ molecule/` - Neo23x0/sigma: `make test-yaml` - markstory/lint-review: `yamllint .` [1]: https://github.com/adrienverge/yamllint/pull/151 |
6 years ago | |
---|---|---|
docs | 6 years ago | |
tests | 6 years ago | |
yamllint | 6 years ago | |
.gitignore | 6 years ago | |
.pre-commit-hooks.yaml | 7 years ago | |
.travis.yml | 6 years ago | |
CHANGELOG.rst | 6 years ago | |
LICENSE | 9 years ago | |
MANIFEST.in | 7 years ago | |
README.rst | 7 years ago | |
setup.cfg | 7 years ago | |
setup.py | 6 years ago |
README.rst
yamllint ======== A linter for YAML files. yamllint does not only check for syntax validity, but for weirdnesses like key repetition and cosmetic problems such as lines length, trailing spaces, indentation, etc. .. image:: https://travis-ci.org/adrienverge/yamllint.svg?branch=master :target: https://travis-ci.org/adrienverge/yamllint :alt: CI tests status .. image:: https://coveralls.io/repos/github/adrienverge/yamllint/badge.svg?branch=master :target: https://coveralls.io/github/adrienverge/yamllint?branch=master :alt: Code coverage status .. image:: https://readthedocs.org/projects/yamllint/badge/?version=latest :target: https://yamllint.readthedocs.io/en/latest/?badge=latest :alt: Documentation status Written in Python (compatible with Python 2 & 3). Documentation ------------- https://yamllint.readthedocs.io/ Overview -------- Screenshot ^^^^^^^^^^ .. image:: docs/screenshot.png :alt: yamllint screenshot Installation ^^^^^^^^^^^^ On Fedora / CentOS (note: `EPEL <https://fedoraproject.org/wiki/EPEL>`_ is required on CentOS): .. code:: bash sudo dnf install yamllint On Debian 8+ / Ubuntu 16.04+: .. code:: bash sudo apt-get install yamllint On Mac OS 10.11+: .. code:: bash brew install yamllint Alternatively using pip, the Python package manager: .. code:: bash pip install --user yamllint Usage ^^^^^ .. code:: bash # Lint one or more files yamllint my_file.yml my_other_file.yaml ... .. code:: bash # Lint all YAML files in a directory yamllint . .. code:: bash # Use a pre-defined lint configuration yamllint -d relaxed file.yaml # Use a custom lint configuration yamllint -c /path/to/myconfig file-to-lint.yaml .. code:: bash # Output a parsable format (for syntax checking in editors like Vim, emacs...) yamllint -f parsable file.yaml `Read more in the complete documentation! <https://yamllint.readthedocs.io/>`_ Features ^^^^^^^^ Here is a yamllint configuration file example: .. code:: yaml extends: default rules: # 80 chars should be enough, but don't fail if a line is longer line-length: max: 80 level: warning # don't bother me with this rule indentation: disable Within a YAML file, special comments can be used to disable checks for a single line: .. code:: yaml This line is waaaaaaaaaay too long # yamllint disable-line or for a whole block: .. code:: yaml # yamllint disable rule:colons - Lorem : ipsum dolor : sit amet, consectetur : adipiscing elit # yamllint enable Specific files can be ignored (totally or for some rules only) using a ``.gitignore``-style pattern: .. code:: yaml # For all rules ignore: | *.dont-lint-me.yaml /bin/ !/bin/*.lint-me-anyway.yaml rules: key-duplicates: ignore: | generated *.template.yaml trailing-spaces: ignore: | *.ignore-trailing-spaces.yaml /ascii-art/* `Read more in the complete documentation! <https://yamllint.readthedocs.io/>`_ License ------- `GPL version 3 <LICENSE>`_