Skip to content

fix: replace the unmaintained YAML parser - #2279

Merged
inureyes merged 3 commits into
mainfrom
fix/issue-2278-maintained-yaml-parser
Oct 12, 2026
Merged

inureyes merged 3 commits into
mainfrom
fix/issue-2278-maintained-yaml-parser

Conversation

@inureyes

@inureyes inureyes commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Replace the CLI and surgery YAML parser with deserialize-only serde-saphyr 1.3.0, removing serde_yaml and unsafe-libyaml from the lockfile and resolving RUSTSEC-2024-0449 without an advisory exception.

Preserve ordered language priorities, DuplicateLanguageCode, duplicate schema-field rejection, YAML 1.2 booleans, and ordinary merge-key handling. Recover canonical non-finite values from Serde's tagged/untagged buffering so existing operation-specific finite-value validation remains effective. Quoted canonical .nan/.inf/-.inf now follow the same handling as their unquoted forms; malformed-input diagnostic formatting comes from the new parser.

Validation: all 34 focused language-bias tests and all 28 surgery configuration tests pass, including all six shipped surgery examples. cargo deny check passes all four checks; formatting and diff checks pass. Repository contract checks also pass (123 Python tooling tests and 49 WebUI fixtures). The alpha/ratio and quoted-special regressions pass. CI Clippy, CPU-only link, and cargo-deny pass on dd36abb; the duplicate local CUDA Clippy rebuild was stopped after CI succeeded.

Closes #2278

Replace serde_yaml and unsafe-libyaml with deserialize-only serde-saphyr to clear RUSTSEC-2024-0449 without suppressing advisories. Preserve language ordering and duplicate-language diagnostics, strict schema fields, YAML 1.2 booleans, and surgery operation validation for non-finite values.

Add regressions for duplicate fields, numeric spellings, and all six shipped surgery examples. Refs #2278.
@inureyes inureyes added status:review Under review type:bug Bug fixes, error corrections, or issue resolutions priority:high High priority labels Oct 12, 2026
Cover non-finite add coefficients and interpolation ratios, including the deliberately accepted quoted canonical special values. Record the parser migration and completed validation in bilingual reports; the added test execution and Clippy gate remain pending at report preparation.

Refs #2278.
@inureyes inureyes added status:done Completed and removed status:review Under review labels Oct 12, 2026
@inureyes
inureyes merged commit fc45284 into main Oct 12, 2026
77 of 79 checks passed
@inureyes
inureyes deleted the fix/issue-2278-maintained-yaml-parser branch October 12, 2026 15:10
inureyes added a commit that referenced this pull request Oct 12, 2026
Merge the main branch prerequisite that replaces the unmaintained YAML parser so the portable A/B output directory change can pass the shared dependency gate.

Refs #2141, #2278, #2279.
inureyes added a commit that referenced this pull request Oct 12, 2026
Merge main at fc45284 so PR #2277 uses the maintained safe-Rust YAML parser and no longer inherits the RUSTSEC-2024-0449 cargo-deny failure. The split-mtp source remains unchanged.

Validation: configured version, kernel, Llama, ROCm, Python, and WebUI contracts pass; cargo deny check, formatting, and diff checks pass.

Refs #1784, #2279
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority:high High priority status:done Completed type:bug Bug fixes, error corrections, or issue resolutions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(deps): replace the unmaintained YAML parser blocking CI

1 participant