Open gavinking opened 9 years ago
Which is basically "allow anything"?
I think we should also look at what Jigsaw has to say about versions...
Well I think we should at least disallow whitespace. It looks like we don't quote version numbers on the command line.
I feel like it should be restricted only to lower and uppercase english letters, numbers, dots, dashes, plus signs, forward and backward slashes, asterisks, and underscores...
Note that JBoss also currently restricts the allowed version numbers: ceylon/ceylon-runtime#59.
lower and uppercase english letters
Screw you! If you get to name your module “Vivit Vervet”, I get to name mine „Maßlose Mücke“ :P
I’d vote for Unicode letters and punctuation. Probably throw in one of the normalizations, too.
@lucaswerkmeister you forgot emoji. Surely 💩
is a reasonable version identifier.
If we forego semantic versioning and allow arbitrary strings in versions, then I see no problem in accepting any unicode in there.
Just can't wait for someone submitting this module to Herd:
module ima.smartass '\{PILE OF POO}' {}
I have disallowed ws. Any further restrictions are not for 1.2.
The spec, in §9.3.1 says:
But the typechecker does not enforce this.
What are the real restrictions on version identifiers? I suppose we need to at least accept everything that Maven accepts.