Open haarg opened 8 years ago
I think its only logical to treat it identically how we currently treat v1.23
.
If v1.23
is illegal, then v1.2_3
is also.
Though this is likely a backwards incompatible change to Spec validation if we tried to enforce this, which may require a minor version increment in the Spec definition before we start yelling at this.
What I'd prefer is some adjustment to the text, given Lyon, but without changing the actual requirements.
One part of the decision in the Lyon compromise was that underscores in dotted-integer versions should be ignored rather than treated as a tuple separator. This brings them in line with numeric versions, where the underscores are similarly ignored. The text in CPAN::Meta::Spec states
This is still basically compatible with the Lyon compromise. It does imply meaning to the underscore that no longer applies, however that is mostly not a large issue because the spec doesn't say anything about how these versions should be interpreted, instead pushing that off on the version module.
However, if we were to update the text to be in line with Lyon, it would become more restrictive. Specifically,
v1.2_3
is valid under the current spec. But if _ is no longer a component separator, it becomes illegal due to the requirement of three components.