Skip to content
CAI
Software that uses CAICheck a score

symfony/yaml

55.2

Adequate · 19 September 2026

3.4k

lines of production code

PHP

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is the Symfony Yaml component, a library for parsing, dumping, and validating YAML data in PHP applications. It provides core functionality for converting YAML structures to and from PHP types, including support for explicit type tags and tagged values. Additionally, it offers robust validation capabilities through a dedicated linting command and binary that enforce syntax correctness and validate documents against JSON Schemas with detailed, line-aware error reporting.

Features

Add TaggedValue class for YAML tag support

A new TaggedValue class has been added to the Symfony Yaml component to represent tagged YAML values. This class stores the tag name and the associated value, providing a structured way to handle YAML tags that were previously less explicitly represented. This change supports the broader addition of tags support in the YAML parser.

Tag · high confidence

Introduce YAML lint command with schema validation and CI formats

Adds the \lint:yaml\ command to validate YAML file syntax, supporting files, directories, and STDIN input. Users can now specify output formats including \json\, \github\, and \gitlab\ for CI integration, exclude specific paths, parse custom tags, and validate content against JSON schemas using the \--check-schema\ option.

Command · high confidence

New standalone YAML linting binary

A new executable script at Resources/bin/yaml-lint has been added, allowing users to validate YAML files directly from the command line without needing the full Symfony Framework. The script automatically locates the autoloader, ensures the symfony/console component is available, and runs the LintCommand, while explicitly preventing execution in non-CLI environments.

Resources · high confidence

Symfony Yaml Component v8.2 Release

This release introduces support for explicit type tags (!!int, !!null, !!bool) and accepts quoted values for them and !!float, while throwing a ParseException for invalid !!float values instead of silent casting. It adds a 'gitlab' output format to the lint:yaml command and introduces JSON Schema validation via the --check-schema option or file headers. The component also includes new Schema and SchemaResolver interfaces for validating data against JSON Schemas, and updates the PHPUnit configuration to use the 13.1 XSD schema.

(repo-wide) · high confidence

YAML linting now supports JSON Schema validation with precise error reporting

The YAML component now validates documents against JSON Schemas, enabling users to enforce structure and data types in their YAML files. This change introduces a new \Schema\ namespace containing a \SchemaValidator\ that leverages the \opis/json-schema\ library, a \SchemaResolverInterface\ for extensible schema resolution, and a \FileHeaderSchemaResolver\ that automatically detects schemas declared in file headers (supporting both \\# yaml-language-server: $schema=\ and \\# $schema=\ formats). The validator provides detailed, line-aware error messages by mapping JSON Pointer paths back to specific YAML lines, improving the debugging experience for schema violations.

Schema · high confidence

Behavioural changes

Yaml component exceptions moved to a dedicated sub-namespace

The exception classes for the Yaml component have been reorganized into a new \Symfony\\Component\\Yaml\\Exception\ sub-namespace. The previous monolithic \Exception\ class has been split into specific types: \ParseException\ (handling parse errors with detailed context like line number and snippet), \DumpException\ (for dumping errors), and \LogicException\ (for programming errors). The base \ExceptionInterface\ now extends \\\Throwable\ directly. This change updates the fully qualified class names for all Yaml-related exceptions, requiring users to update their \use\ statements or \catch\ blocks to reference the new \Symfony\\Component\\Yaml\\Exception/\*\ paths instead of \Symfony\\Component\\Yaml\\Exception\.

Exception · high confidence

Test coverage

Added YAML parser test fixtures and PHP enum fixtures; Added comprehensive unit tests for the YAML component; Added tests for YAML schema validation and file header resolution; Added tests for the YAML Lint command.

Dependencies

Symfony Yaml component requires PHP 8.4+ and adds yaml-lint binary

The Symfony Yaml component now requires PHP 8.4.1 or higher and includes a new command-line binary (yaml-lint) for validating YAML files. It also introduces a conflict with symfony/console versions prior to 7.4 and adds the yaml/yaml-test-suite as a development dependency to support comprehensive testing.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 55.

Lenses

  • Code Health 73
  • Architecture 100
  • Maturity 47
  • Readiness 43
  • Security 100

Changes since last survey

  • 300 commits — 257 feature/other, 43 fixes

By area

  • (repo) — 161 commits
  • (root) — 104 commits
  • Command/LintCommand.php — 8 commits
  • Tests/ParserTest.php — 8 commits
  • Tests/InlineTest.php — 6 commits
  • Tests/Command — 5 commits
  • Schema/SchemaValidator.php — 2 commits
  • Tests/Fixtures — 2 commits
  • .github/PULL_REQUEST_TEMPLATE.md — 1 commit
  • Exception/ParseException.php — 1 commit
  • Resources/bin — 1 commit
  • Tests/DumperTest.php — 1 commit

Notable commits

  • fix: :bug: throw ParseException on invalid date
  • fix: Apply php-cs-fixer fix --rules nullable_type_declaration_for_default_null_value
  • fix: Backport some CS fixes from 7.4
  • fix: CS fix
  • fix: CS fixes
  • fix: CS fixes - native_function_invocation & static_lambda
  • fix: Fix block scalar array parsing
  • fix: Fix merge
  • fix: Fix multiple CS errors
  • fix: Fix passing null to trim()
  • fix: Fix phpdocs in components
  • fix: Fix symfony/deprecation-contracts require
  • fix: Fix wrong yaml parse null test
  • fix: Minor CS fixes
  • fix: Revert "minor #54653 Auto-close PRs on subtree-splits (nicolas-grekas)"
  • fix: Various CS fixes
  • fix: [Yaml] Fix code style
  • fix: [Yaml] Fix line folding after trailing backslashes in quoted strings
  • fix: [Yaml] Fix parsing an alias followed by a comment
  • fix: [Yaml] Fix parsing and dumping of NaN
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

symfony/yaml was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 1cc7613297afc4da151658cf88fecca3f3c83fb0 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.