On Mon, Nov 14, 2011 at 3:18 PM, Russ Teabeault <[email protected]>wrote:
> Consider the following namespace code:
>
> REQUIRES = ArtifactNamespace.for(self) do |ns|
> ns.guava! "com.google.guava:guava:jar:r09"
> ns.javassist! "javassist:javassist:jar:3.8.0.GA"
> ns.reflections! "org.reflections:reflections:jar:0.9.5-RC1"
> end
>
> The guava spec here causes the following error to be raised
>
> Invalid version: "r09"
>
> This is a result of VersionRequirement.version? which checks the version
> string against the regex
>
> /^\s*\d[#{VER_CHARS}]*\s*$/
>
> This regex is checked here
>
> raise "Invalid version: #{version.inspect}" unless
> self.class.version?(version)
>
> So it seems that maybe this regex could be expanded to include versions
> like 'r09'. And for that matter what denotes a valid version and what is
> this check trying to protect against. Can that check just be removed?
>
Yes, the check should be removed to maintain full Maven interoperability.
I'll commit a fix when I get time.
alex