Skip to content
Novus Examples
yaml658 B

YAML Directives and Comments

A two-document stream where each document declares its own %YAML directive and the second adds a %TAG handle used by a local tag. Comments appear in every position they are legal, and every one of them is lost by a non-round-tripping loader.

Preview — first 23 linesyaml
%YAML 1.2
---
# Directives must precede the document they apply to, and a directives-end marker (---) is
# required after them. A second document may declare its own directives after an explicit
# document-end marker (...), which is what the second half of this stream does.
stage: build          # a trailing comment after a plain scalar
image: registry.example.invalid/ci/runner:1.4

# A comment on its own line, between two keys.

steps:
  # a comment inside a sequence
  - name: compile     # trailing comment on a mapping value
    run: make build
...
%YAML 1.2
%TAG !ci! tag:example.invalid,2026:ci/
---
job: !ci!Task
  name: unit-tests
  order: 2
...

Specifications

Documents
2
Yaml Directives
2
Tag Directives
1
Comments
5
Edge Case
comments are lost by every non-round-tripping loader

Testing contract

Expected to recover
Scenario
Parse per-document YAML and TAG directives and preserve comments through a round trip
Expected result
The !ci! handle expands to tag:example.invalid,2026:ci/Task, so a loader with no constructor for it reports that resolved tag rather than the literal !ci! shorthand

What is a .yaml file?

YAML (YAML Ain't Markup Language) is a human-readable data-serialization format using indentation, key-value pairs, and lists, and is a superset of JSON. It supports comments, anchors, and multiple documents per file, favoring readability for configuration. Its indentation sensitivity makes it error-prone to hand-edit.

How to use this file

Use an example YAML file to test config parsers, indentation and anchor handling, multi-document streams, and safe-loading to avoid arbitrary object construction.

How to use this file for testing

“YAML Directives and Comments” is a deterministic Novus Examples fixture for Config parsing, Encoding detection, Editor testing. TOML and INI configuration files with nested sections and typed values — for testing config parsers and loaders.

Documented properties for this file: YAML · 658 bytes. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Pipeline and infrastructure fixtures are inert configuration: steps reference fictional images and scripts, and nothing here executes. Run your linter, schema validator, migrator, or policy engine against them, and expect the deprecated-syntax and intentionally invalid variants to be rejected.

Point your config loader at the file and assert it reads the documented sections and typed values, including any deliberately-tricky nesting or comments.

Code examples

import yaml  # pip install pyyaml

with open("directives-and-comments.yaml") as f:
    data = yaml.safe_load(f)
print(data)

Generated by generation/pipelines.py. Free for any use, no attribution required — license.