John M. Gamble wrote:
1) there is one, and only one, format for a version number in META.yml.
This way we have a mechanism that won't make the non-perl world cry.
It's a little too late for that; there are already 2 different Perl
versioning schemes actively used in META.yml's on CPAN (well, modulo
alpha/dev releases and leading 'v' aside). Almost all code should treat
the version number as an opaque object (except for package management
tools).
Just be glad that we don't have to support RPM's scheme (integers
separated by one or more decimal places, followed by a hyphen and an
aphabetically sorted Release) or Apache's 1.2.3rc3 scheme (see
version::AlphaBeta on CPAN).
2) CPAN packages are named using that number in META.yml. See above.
This is guaranteed to confuse authors: "I had $VERSION = 1.002 and the
package is named foo-v1.2.3.tar.gz!!! WTF???". The _only_ time any
given module has a potential for confusion is the discontinuity between
using floating point and extended versions. Improve the documentation
and this will be much less common, and since Andreas already fixed PAUSE
to warn this will no longer affect _users_ (which should be the real
goal, not some internecine battle of the wills).
3) conversion between the source code's version number format and
META.yml's
format is where all the arguing goes for the perl users. I'm not being
flippant here,
it's an important question. For example, Eric Wilhem's "it's obvious"
conversion of a floating point version to tuple wasn't obvious to me,
because that's not how I do it in my own mind. To me, an X.YY version
number goes to X.YY.00, and that's how I've been numbering them.
And you can only have 100 (00-99) minor releases before bumping the
major number. Besides, just because that's the way _you_ do it doesn't
mean everyone does that. I already pointed out that I have personally
used a varying number of decimal places with a single module (to denote
how much change happened for that release). You must choose some place
to split and I chose the one that had already been used for Perl itself;
the fact that you can construct extended versions which won't numify
is Not A Problem. There is _never_ any reason to do that; the only time
a version is upgraded is from floating point to extended, internally to
the comparison operation.
John