On Mon, Apr 20, 2009 at 4:17 PM, Michael G Schwern <schw...@pobox.com> wrote:
> Do not extend the _Z convention into version.pm.

Too late.  It's there.  qv("1.2_3") -> v1.2_3

 I wish it wasn't that way, but it is.  Thus, my suggestion that "v"
always indicate a tuple.

> The state of a release does
> not belong in the version number.  Its an inflexible system that complicates
> version comparisons even more.  We already have a sane means of recording
> release metadata, it is META.yml.  Stick the release info in there.

I agree entirely, though I don't think a convention has been added to
META.yml for it.

> That leaves X and X.Y.  The only reason for the leading v is to disambiguate X
> and X.Y, the numbers, from X and X.Y, the tuples.  If we disallow X and X.Y
> tuples, there's no more ambiguity, no more v and no more special parsing.

We can't disallow them, short of time travel.

My proposal for using a leading "v" as the standard is based on the
fact that version.pm *already* does it and it solves the X.Y_Z
problem.  A "v" also ensures that it can only be interpreted as a
string, not a number.  That makes for a nice, clear-cut case.  We
*know* with absolute certainty that "v"-whatever is intended to be
tuples.  We never have to guess.  That seems like a nice feature, as
it's a clean break with the past.

There are two inescapable problems:

(a) how someone should convert from a numeric versions to vX.Y.Z
without screwing up their ascending sequence

(b) how to compare vX.Y.Z to a legacy X.YYZZ

Those will still need heuristics, documentation and a big stick.

-- David

Reply via email to