Skip to content

Releases: mihaelamj/PureYAML

PureYAML 0.1.2

06 Jun 06:35

Choose a tag to compare

PureYAML 0.1.2

PureYAML 0.1.2 is a production-hardening release focused on real-world corpus
coverage, structured diagnostics, Yams comparison gates, JSON compatibility, and
lower-memory parser internals.

Highlights

  • Add a 114-seed real-world YAML corpus with opt-in full parse, validation, and
    round-trip checks.
  • Add structured parser diagnostic codes and validation reports for malformed
    production-shaped YAML.
  • Add JSON-subset compatibility tests against Swift's JSON decoder.
  • Add Yams differential, diagnostic, validation, throughput, and phase-profiling
    artifact gates without adding Yams to the public package manifest.
  • Route normal parsing through lazy token scanning and streamed event
    composition so parse and parseStream no longer retain a full token array or
    full intermediate event array.
  • Improve ASCII-heavy scanner advancement with a UTF-8 reader cursor while
    preserving byte-accurate Unicode and CRLF source marks.

Current Production Readiness

The checked corpus agrees with Yams on parse success and stream document counts.
PureYAML now has structured validation that reports duplicate keys with paths,
reasons, and severities, while Yams does not provide equivalent structured
validation output.

The public API still accepts complete String input. True chunked file/network
input streaming remains deferred to #43.

Verification

The release candidate was locally verified with:

  • bash scripts/check-all.sh
  • bash scripts/check-corpus.sh
  • bash scripts/check-json-compatibility.sh
  • bash scripts/check-yams-differential.sh
  • bash scripts/check-yams-diagnostics.sh
  • bash scripts/check-yams-validation.sh
  • bash scripts/check-throughput.sh
  • bash scripts/check-performance-phases.sh

Installation

.package(url: "https://github.com/mihaelamj/PureYAML.git", .upToNextMinor(from: "0.1.2"))

PureYAML 0.1.1

05 Jun 22:46

Choose a tag to compare

PureYAML 0.1.1

PureYAML 0.1.1 is a patch release that ships parser compatibility fixes and
stronger release verification gates.

Highlights

  • Treat more-indented plain scalar continuation lines that start with - as
    text unless they appear at a known sequence-entry indentation. This fixes
    OpenAPI-style allOf descriptions while preserving nested block sequences
    such as - - 123.
  • Parse explicit scalar keys whose : value starts a same-line mapping and
    continues with indented mapping siblings, matching large OpenAPI schema keys.
  • Add release-mode build and test gates to macOS, Linux, Windows, and WASM
    verification scripts.
  • Update GitHub Actions checkout steps to actions/checkout@v6 so CI uses the
    current Node 24 action runtime.
  • Add README platform CI badges and the production hardening roadmap.

Current Production Readiness

PureYAML has Yams parse-success parity on the checked production corpus, but
that is not a proof of perfect YAML correctness. The active production
hardening work is tracked in #54, with child issues for structured validation
reports, diagnostic false-positive triage, malformed YAML coverage,
OpenAPIDoctor integration, Yams differential testing, and parser throughput.

Verification

The release process requires:

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

Installation

.package(url: "https://github.com/mihaelamj/PureYAML.git", .upToNextMinor(from: "0.1.1"))

PureYAML 0.1.0

05 Jun 19:37

Choose a tag to compare

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://github.com/mihaelamj/PureYAML.git", .upToNextMinor(from: "0.1.0"))