Fix libyaml 0.2.1 incompatibility #6287
Merged
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.
Fixes #6283
libyaml 0.2.1 removed the errorneously written document end marker (
...
) after some scalars in root context (see yaml/libyaml#18).Earlier libyaml releases still write the document end marker and both older and newer releases need to be supported.
This implements modifying the expected value depending on the version of libyaml as suggested in #6285 (comment).
I don't think it is feasible to implement the fix for libyaml < 0.2.1 in Crystal as suggested in #6285 (comment). This would make
YAML
always behave the same, whatever version of libyaml it is used with. But it would require rewriting the output written to the builderIO
by libyaml. Since the impact is pretty small - YAML documents consisting of only a scalar are pretty rare outside of test suites.