PureYAML/ATTRIBUTION.md
Mihaela Mihaljevic ce0585f77e test(conformance): track all 402 suite cases; fix 3 regressions
The gap-only manifest stopped guarding a case once it was fixed, so later
work silently regressed previously-fixed cases (caught only by an external
full-suite run, not the gated sweep or full corpus). Replace it with a full
manifest of all 402 official cases (Tests/Fixtures/yaml-test-suite-manifest.yaml),
each carrying its conformant expectation and a passing/gap status, with every
case's files vendored. The gated sweep now asserts every passing case still
passes (the regression guard) and every gap still reproduces, so any regression
fails the build.

The honest gate-enforced count is 329/402 passing (the earlier 348 came from a
more lenient one-time oracle).

Repairs three regressions the new gate revealed: the bucket-6 tab rule
over-rejected tabs in block-scalar content and as separation before a scalar
value (root cause: the batch scanner and the incremental TokenCursor had
divergent line-start loops; unified onto a single scanStep, fixing 96NN/00,
96NN/01, R4YG, Y79Y/001, DK95/00, DK95/03, DK95/07, 6CA3, Q5MG, J3BT); an anchor
on a prior line before an alias key wrongly rejected 26DV; and a tag-only flow
key mis-parsed WZ62. Genuine tab-indentation errors (4EJS, Y79Y/000) still reject.
2026-06-24 00:16:28 +02:00

36 lines
1.6 KiB
Markdown

# Attribution
PureYAML is an independent Swift implementation.
This project is informed by the behavior and public API surface of
[Yams](https://github.com/jpsim/Yams), and by the YAML parsing model embodied in
Yams' bundled `CYaml` / libyaml-derived C sources. Yams is an important Swift YAML
package, and its behavior is a compatibility reference for PureYAML.
PureYAML does not copy Yams Swift source code, `CYaml` C source code, or libyaml
C source code into the public package. The implementation under `Sources/` is
written in Swift for this repository.
Yams and libyaml source remain available from their upstream projects:
- https://github.com/jpsim/Yams
- https://pyyaml.org/wiki/LibYAML
This file is the canonical attribution notice for the project; the `LICENSE`
file is kept to the standard MIT text so it is correctly detected as MIT.
The private `PureYAMLResearch` repository contains a full Yams source snapshot
for study and compatibility research. That repository is not the implementation
source for PureYAML.
## Vendored test data
`Tests/Fixtures/yaml-test-suite/` contains input cases vendored from the official
[YAML test suite](https://github.com/yaml/yaml-test-suite) (`data` branch, commit
`6ad3d2c62885d82fc349026c136ef560838fdf3d`), which is distributed under the MIT
license. All 402 cases (numbered sub-cases counted) are vendored, each as its input
(`in.yaml`), expected JSON projection (`in.json`), and/or expected-error marker
(`error`). `Tests/Fixtures/yaml-test-suite-manifest.yaml` records the provenance and
each case's conformance status. These files are test data, not implementation
source.