|Subject:||Version parsing so lax it basically accepts anything|
A according to the spec, the only valid values for version are legal $versions.
However, the implementation is much more lax in this regard, and essentially permit arbitrary strings to be considered valid versions, as long as it is preceeded by a decimal, and it parses and renormalises this as-is without complaint.
Some people ( e.g.: Moose) have been using this notation, for reasons I believe are basically they expected it would work, and they tried it and it worked, and thus assumed it was somehow supported.
And as the attached test demonstrates, practically any characters are valid, and get parsed as versions:
So this seems like the following things are needed:
1. The Spec needs to be clarified what is, and what isn't legal in this regard, the spec says "Just match $version::LAX" , but this *much* more lax than that.
2. The code itself should either error or warn upon parsing unsupported version data like this. ( at least, for some of these example usecases )
3. Normalized output should be spec conforming "somehow", maybe with ->serialize() defaulting to strict behaviour and additional parameters required to make serialize emit non-spec-conformant data.
Some people are interested in having -TRIAL as being a supported part of versions, but until the spec says that is legal, they will not implement it as such