Releases: mihaelamj/PureYAML
PureYAML 0.1.2
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 soparseandparseStreamno 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.shbash scripts/check-corpus.shbash scripts/check-json-compatibility.shbash scripts/check-yams-differential.shbash scripts/check-yams-diagnostics.shbash scripts/check-yams-validation.shbash scripts/check-throughput.shbash scripts/check-performance-phases.sh
Installation
.package(url: "https://github.com/mihaelamj/PureYAML.git", .upToNextMinor(from: "0.1.2"))PureYAML 0.1.1
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-styleallOfdescriptions 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@v6so 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
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.Constructorfor 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 andValidation.ReportErrorfor application-owned JSON
or YAML error bodies. - Typed
Codableconversion 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"))