Publish an interactive yaml-test-suite conformance matrix#68
Draft
jskoiz wants to merge 6 commits into
Draft
Conversation
Add examples/conformance_matrix_html.rs, which feeds all 402 curated yaml-test-suite cases to saneyaml, serde_yaml, yaml-rust2, and saphyr using the same acceptance methodology as conformance_compare, and renders a self-contained, filterable HTML matrix with per-library scores. The generated page is committed at docs/conformance/index.html so the mdBook Pages deploy serves it without building dev-dependencies. A new docs/conformance.md reference page records the headline scores (saneyaml 400/400 spec cases plus 2/2 duplicate-key policy cases) and the regeneration commands, and is linked from the guide summary, the docs index, the crate README, and the published package file list.
5311114 to
64f9092
Compare
added 3 commits
June 12, 2026 07:33
Stage a ready-to-submit google/oss-fuzz project definition under contrib/oss-fuzz: project.yaml, a base-builder-rust Dockerfile, and a build.sh that builds all cargo-fuzz targets with debug assertions kept on (the targets assert parser invariants) and packages each target's checked-in corpus as its seed corpus. The README documents local verification with the oss-fuzz helper and the submission steps.
Add examples/syq.rs, a small command-line YAML editor over the lossless ConfigEditor API: get/set/push/rename/rm addressed by RFC 6901 JSON Pointers, reading from a file or stdin, with optional in-place rewrite. Edits preserve comments, anchors, ordering, and untouched bytes, which is the capability the editing guide now points at for a runnable demo.
5 tasks
Owner
Author
|
Review (2026-06-12, while in draft). CI is fully green (mdBook build included). Two concrete fixes worth making before un-drafting, both in
Things I checked that look good:
|
added 2 commits
June 12, 2026 19:53
Escape library names and Cargo.lock-derived versions like every other interpolated string in the page, and replace the panicking [..12] slice of the pinned suite commit with a length-guarded prefix. Generated output is unchanged for the current inputs.
Document the road to 1.0 as verifiable gates in docs/ROADMAP.md (MSRV and deprecation policy, what 1.0 will and will not promise) and link it from the guide, docs index, README status section, and the published package list. Gate every PR with cargo-semver-checks against the published release and keep the wasm32-unknown-unknown library build green via two new CI jobs; the wasm check passes today without code changes. Give the conformance matrix a prefers-color-scheme dark theme by moving all page colors to CSS variables; the regenerated page is otherwise unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a public, interactive conformance-matrix web page to the hosted guide: all 402 curated yaml-test-suite cases run against
saneyaml,serde_yaml,yaml-rust2, andsaphyr, with per-case accept/reject results and per-library scores.examples/conformance_matrix_html.rs— generator reusing the acceptance methodology ofconformance_compare(tree/Valueload per library, serde_yaml via its document iterator, third-party calls guarded withcatch_unwind). Renders a self-contained HTML page (no external assets, vanilla JS filtering by case id/name/feature, expected outcome, and disagreements), with library versions read fromCargo.lockand case links pinned to the upstream data-branch commit fromSOURCE.toml.docs/conformance/index.html— committed generated page, so the existing mdBook Pages workflow serves it at/saneyaml/conformance/index.htmlwithout building dev-dependencies. mdBook 0.5.3 copies it through verbatim (verified locally).docs/conformance.md— reference page with the headline scores and regeneration commands, linked fromSUMMARY.md, the docs index, the crate README, and added to the packageincludelist.Headline numbers (from the generator run)
The 2 tree-error cases are scored separately from the neutral spec axis, matching the framing in
conformance_compare.Also in this branch
contrib/oss-fuzz/— ready-to-submit google/oss-fuzz project definition (project.yaml, Dockerfile, build.sh) building all 11 cargo-fuzz targets with debug assertions kept on and shipping each checked-in corpus as the seed corpus, plus submission/verification instructions.examples/syq.rs— a minimalyq-style CLI over the losslessConfigEditorAPI (get/set/push/rename/rm by JSON Pointer, stdin or file, optional in-place), now referenced from the editing guide as the runnable demo of comment-preserving edits.CLAUDE.md— repository guidance for AI assistants.Verification
cargo run --locked --example conformance_matrix_htmlregenerates the committed page byte-identicallycargo clippy --lockedon both new examples with-D warnings,cargo fmt --all --check,cargo package --locked --allow-dirty --list, andcargo test --locked --test conformance_dashboardall passmdbook build(0.5.3, the CI-pinned version) succeeds and includes the matrix page in the book outputsyqexercised end-to-end on a docker-compose-style file: inline comments and anchors survive set/push/rename/rm