refactor: migrate YAML output from serde_yaml to noyalib - #87
Merged
Conversation
canardleteer
marked this pull request as draft
June 23, 2026 04:19
Owner
Author
|
Related: sebastienrousseau/noyalib#117 Merged (takeover of 117): sebastienrousseau/noyalib#142 |
canardleteer
force-pushed
the
migrate/noyalib
branch
from
July 23, 2026 14:34
d2f1664 to
12d3503
Compare
Replace the deprecated serde_yaml serializer with noyalib for CLI YAML output, dropping unsafe-libyaml while keeping Serde-driven result types unchanged. Add structural YAML unit tests and serialize semver components above i64::MAX as decimal strings for noyalib compatibility.
Check in the proptest seed for semver components above i64::MAX so explain YAML output stays covered after the noyalib migration.
Preserve legacy serde_yaml stdout formatting via noyalib SerializerConfig tuning, a targeted requote pass, and trailing newlines, while keeping semantic fixes such as large u64 semver components. Restores insta snapshots and cli_select expectations to match main output exactly.
Share CLI insta cases across default (serde-yaml-compatability) and native noyalib modes; run native snapshots in CI with --no-default-features.
Use a temporary git dependency with lossless-u64 until upstream MR lands; serialize VersionExplanation components as YAML integers again.
Verify large semver components serialize as plain integer scalars and round-trip through noyalib with lossless_u64_integers enabled.
Clearer name for the default legacy serde_yaml stdout cosmetics layer.
canardleteer
force-pushed
the
migrate/noyalib
branch
from
July 23, 2026 14:35
12d3503 to
34f3d39
Compare
canardleteer
marked this pull request as ready for review
July 23, 2026 14:36
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
serde_yamlwithnoyalib(serialize-only at runtime) for default CLI YAML outputunsafe-libyamldependency in favor of a pure-Rust YAML 1.2 library with a documented serde_yaml migration pathi64::MAXas decimal strings so explain output stays valid under noyalib's integer limitsTest plan
cargo testpassescargo build --releasesucceedsunsafe-libyamlabsent fromCargo.locksem-tool validate 1.2.3,sem-tool explain 1.2.3-rc.1+metayq