PureYAML/docs/releases/pureyaml-0-1-0.md
Mihaela Mihaljevic a11858380b
Some checks failed
Conformance / Conformance (push) Successful in 23s
Gates / Gates (push) Failing after 25s
Linux / Linux (push) Failing after 2s
macOS / macOS (push) Successful in 1m34s
No Cursor attribution / Scan commits (push) Successful in 3s
WASM / WASM (push) Failing after 1m2s
Windows / Windows (push) Has been cancelled
docs: point the links of this repository to git.aleahim.com
2026-11-04 20:50:07 +01:00

2.8 KiB

PureYAML 0.1.0

PureYAML 0.1.0 is the first release of a dependency-free YAML package written entirely in Swift.

Highlights

  • Root Swift package layout with one library product, PureYAML.
  • No external SwiftPM dependencies.
  • No C sources, generated parser targets, JavaScript tooling, or Foundation requirement in the library target.
  • Pure Swift YAML model with ordered mappings, sequences, scalars, complex mapping keys, and duplicate-key preservation.
  • Parser support for block mappings, block sequences, flow collections, quoted strings, comments, literal and folded block scalars, anchors, aliases, YAML directives, document markers, merge keys, complex mapping keys, multi-document streams, and selected explicit built-in scalar tags.
  • Tag-preserving parsing and validation for callers that need explicit YAML tag metadata before project-owned construction.
  • PureYAML.Tagged.Constructor for caller-owned tagged construction policies.
  • Deterministic YAML dumper with block output by default, optional flow collections, conservative plain scalars, conservative literal block scalars, complex key dumping, and multi-document stream dumping.
  • Path-aware validation with exact duplicate-key diagnostics, strict and non-strict modes, warning collection, custom rules, rule predicates, stream issue indexing, and direct value-tree validation for states ordinary loaders may collapse.
  • Diagnostic-first validation reports for damaged YAML, including raw-source preflight diagnostics and Validation.ReportError for application-owned JSON or YAML error bodies.
  • Typed Codable conversion for scalar, keyed, unkeyed, nested, dynamic-key, dictionary-like, and super-coder cases.
  • Real-world fixture coverage, including OpenAPI, Kubernetes, GitHub Actions, Docker Compose, Prometheus, and cert-manager YAML.
  • Local and hosted macOS, Linux, Windows, and WASM gates.

Support Boundary

This is not a full YAML 1.2 implementation. The release intentionally ships a tested subset with exact errors, validation reports, or fallback value trees for known gaps.

Known deferred work is tracked in:

  • #41: real YAML file fixture corpus expansion.
  • #42: strict and compatibility parsing modes with validation reports.
  • #43: streaming scanner/parser path for humongous YAML files.
  • #44: humongous real-world YAML specs as a first-class validation gate.

Verification

The 0.1.0 release process requires:

  • bash scripts/check-all.sh
  • hosted macOS CI
  • hosted Linux CI
  • hosted Windows CI
  • hosted WASM CI

The full gate includes style, namespacing, forbidden-pattern, changelog, roadmap, SwiftFormat, SwiftLint, host build, host tests, Linux build and test, Windows build and test, and WASM build checks.

Installation

.package(url: "https://git.aleahim.com/NodetteHQ/PureYAML.git", .upToNextMinor(from: "0.1.0"))