David Golden wrote:
> On Sun, Apr 19, 2009 at 4:42 PM, Michael G Schwern <[email protected]> wrote:
>> And that's that. Have version.pm *always* output at least X.Y.Z. X.Y
>> becomes
>> X.Y.0 or is simply disallowed. Then there's no confusion and no special vX.Y
>> format.
>
> The problem I could see is what to do with alpha versions (an arguably
> bad legacy decision):
>
> X.Y_Z
>
> Is it a number? Or is it a tuple?
It's suck, that's what it is.
It's a number. It's equivalent to X.YZ. It always has been. Leave it that
way, there's no benefit to changing it now.
Do not extend the _Z convention into version.pm. 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 sort of prefer the opposite approach -- anything with a leading v is
> a tuple (splitting on "." or "_"), ideally with at least 3 components.
> Anything without is a number. Anything with multiple dots without a
> leading "v" is an error (but we should do the right thing anyway).
> That seems pretty unambiguous to me.
Let's go through the reasons for having the v marker.
X.Y.Z is always a tuple. It's obviously not a number. What else could it be?
It does not need a leading v.
Same goes for X.Y.Z.A and so forth. So they don't need any disambiguation.
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.
Which brings us down to this: What does allowing X and X.Y as tuples really
buy us that's worth the extra parsing and rules? What about just converting
them to X.0.0 and X.Y.0?
--
24. Must not tell any officer that I am smarter than they are, especially
if it's true.
-- The 213 Things Skippy Is No Longer Allowed To Do In The U.S. Army
http://skippyslist.com/list/