John Peacock wrote:
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).

But the interior use in META.yml shouldn't worry the user at all. I suppose a comment inside the file ("no really, this is equivalent to what you typed and is the standard way of formatting now") would be reassuring, but it's not like it's reaching back and altering the source code. This would in fact be useful for getting towards a sane versioning format.


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).

I'm not sure of your "only" emphasis. Also... I read the message from Andreas of course, but could someone give a specific example of what PAUSE will catch? The example of Michael Schwern's didn't seem to match the argument (which could just be comprehension failure on my part, of course).


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

Um. You'll note that I presented my own use as an example of error, right? Please don't assume that I'm advocating a specific version format. Nowhere have I done that.

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


Reply via email to