Skip to content
Novus Examples
yaml749 B

YAML Anchors and Aliases

Anchors and aliases across mapping, sequence and scalar nodes, including an anchor nested inside another anchored node. The point most tooling misses: an alias is a reference to the same node, so a shallow-loading parser can share mutable state between jobs.

Preview — first 35 linesyaml
# Anchors (&name) and aliases (*name). An alias is a REFERENCE to the same node, not a copy:
# after loading, `jobs.build` and `jobs.test` may be the identical object, so mutating one
# mutates the other unless the loader deep-copies. Round-tripping usually loses the anchors
# entirely and writes the value out three times.
defaults: &defaults
  image: registry.example.invalid/ci/runner:1.4
  retries: 2
  timeout: 30

artifacts: &artifacts
  - build/
  - dist/

release_tag: &tag v1.4.0

jobs:
  build: *defaults
  test: *defaults
  package: *defaults

collect:
  build: *artifacts
  test: *artifacts

annotations:
  version: *tag
  built_from: *tag

nested:
  outer: &outer
    inner: &inner
      leaf: value
    sibling: *inner
  copy: *outer

Specifications

Anchors
5
Alias References
9
Nested Anchors
2
Edge Case
an alias is a reference to the same node, not a copy

Testing contract

Expected to pass
Scenario
Load a document whose aliases reference the same node from several places
Expected result
All nine alias references resolve, and a loader that shares nodes reports jobs.build and jobs.test as the identical object rather than as two equal copies

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 Anchors and Aliases” 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 · 749 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("anchors-and-aliases.yaml") as f:
    data = yaml.safe_load(f)
print(data)

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