What is Yamllint?

Yamllint is a versatile linter tool specifically designed for YAML files. It checks for formatting discrepancies, key-value pair issues, and syntax errors, ensuring your YAML files are both syntactically correct and adhere to best practices. By using Yamllint, developers can maintain consistent formatting, which is crucial for YAML files given their significant reliance on indentation and structure.

Installing Yamllint

With Trunk Check, you can automatically install and configure Yamllint along with any relevant linters in a few straightforward steps. Here's how:

First, if you haven't already installed Trunk CLI, you can do so with the command below:

1curl https://get.trunk.io -fsSL | bash

Next, you can initialize Trunk from the root of your git repository:

1trunk init

This command will scan your repository and create a .trunk/trunk.yaml file that enables all linters, formatters, and security analyzers, recommended by Trunk Check. This includes Yamllint if applicable to your project.

To see all available linters Trunk Check installed, simply run:

1trunk check list

If you find Yamllint is not automatically enabled, you can do so by running:

1trunk check enable yamllint

Alternatively, to disable Yamllint run the command below. To disable other tooling applied by Trunk Check, simply replace yamllint with the respective tool you're looking to disable.

1trunk check disable yamllint

For more details on Trunk Check setup, see here.

Configuring Yamllint

Most linters provide some mechanism to tweak their configuration, e.g. .eslintrc or Cargo.toml. Trunk is aware of all the ways individual tools are configured and supports them. This means linters you've already configured will continue to work exactly the same, just now supercharged by Trunk Check.

If you do not have a custom config for Yamllint, you'll be on our default configuration which works out of the box. You can check out our open-source configs repo for our always up-to-date collection of sane linter configurations. For more advanced configuration, we recommend Yamllint's official docs.

Feel free to also check out our open-source linter repository to see the 90+ linters we support and how we define them.

Running Yamllint

To check your code with Yamllint, run the command below. This command executes Yamllint, along with any other linters Trunk Check has enabled on files you've modified. Since Trunk is git-aware, it knows what you've changed, and by adding batched execution and caching, you end up with a much faster and smoother way to run Yamllint and other tools.

1trunk check

If you prefer to check files you've modified with Yamllint only, run the following:

1trunk check --filter=yamllint

Although we'd recommend against it depending on the size of your repository, you can check all files with Yamllint by running the command below.

1trunk check --all --filter=yamllint

In most scenarios, you'll want to execute against modified files. Since Trunk is git-aware, it knows what you've changed, and by adding batched execution and caching, you end up with a much faster and smoother way to run Yamllint and other tools.

Updating Trunk Check & Yamllint

To upgrade the Trunk CLI along with all plugins and linters in your trunk.yaml simply run:

1trunk upgrade

We highly recommend running on the latest validated versions of tools as updates will frequently include important security fixes and additional valuable checks. Trunk only auto-suggests linter upgrades to versions that we have tested and support, so you may see a slight lag time when a new linter version is released.

Upgrade will also recommend new tools that have become applicable since the last time your repository was scanned. This can be a result of using new technologies in your repository or Trunk itself adding support for more tools. If you don't like a particular recommendation, you can always run trunk check disable <linter> to teach trunk not to recommend it.

Recommended Linters to Pair with Yamllint

While Yamllint excels in maintaining the integrity of YAML files, complementing it with additional linters can enhance code quality in multi-language projects. Some recommended pairings include:

  • ESLint: Ideal for projects involving JavaScript or TypeScript, ESLint focuses on identifying problematic patterns or code that doesn't adhere to certain style guidelines.

  • Flake8: For Python projects. It checks for style violations, programming errors, and complex or erroneous code constructs.

  • Prettier: As an opinionated code formatter, Prettier supports many languages and helps maintain a consistent code style.