Make 'y' & 'n' into booleans (true/false)#448
Closed
esotericpig wants to merge 1 commit intoruby:masterfrom
esotericpig:make_y_n_bool
Closed
Make 'y' & 'n' into booleans (true/false)#448esotericpig wants to merge 1 commit intoruby:masterfrom esotericpig:make_y_n_bool
esotericpig wants to merge 1 commit intoruby:masterfrom
esotericpig:make_y_n_bool
Conversation
- https://yaml.org/type/bool.html - This breaks compatibility with Ruby's original Syck library, but it complies with YAML spec v1.1. - This makes it cross-compatible with other parsers, producing standards-compliant YAML files.
Author
|
The unsuccessful builds on Windows don't seem to be a problem from my code. |
Member
|
I think a strict mode would probably be good. We were talking about it in #426 I'm reluctant to change the behavior without asking people to "opt-in" because people are no doubt depending on this behavior. Even doing it on a major version bump is a tough sell. From a consumer's perspective they would think "I have to audit all of my YAML documents when I do this upgrade, but what do I get out of the upgrade?". Unless we can make the upgrade transparent (IOW users don't need to do anything), I'm not partial to a change like this as the default behavior. |
Author
|
A strict mode sounds good to me. I'll close this pull request. |
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.
Issue #443
In order to be compatible with Ruby's original Syck library, Psych made y/n default to strings. However, now, the Syck library is dead, and I think it makes since to make Psych compliant with YAML spec v1.1.
In the issue, this caused a problem when Psych produced a non-compliant file that then broke in a compliant parser in another language. I think it's important that Psych makes YAML files that can be consumed by anything that speaks YAML.
https://yaml.org/type/bool.html
However, this is a potentially breaking change. If previous gems relied on y/n as strings, they will now need to be updated to use single/double quotes. This is rare, but should be considered, especially for YAML common as this:
It will need to be updated to this:
Maybe this should be a major version change? However, these gems relied on a broken/non-compliant parser, so it's a difficult decision to make.
Instead of this solution, we could...
strict_compliancekeyword arg option,