symfony/yaml
55.2
Adequate · 19 September 2026
3.4k
lines of production code
PHP
primary language
1
measurement over time
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.