Curtis Jewell wrote:
IMO X.Y_Z should always be < than X.Y.  That is, 1.01 > 1.01_05.  This
reads 1.01_05 as "the 5th alpha release of 1.01" just like Firefox 3.6.4 beta 1 will eventually be followed by Firefox 3.6.4.

I'm sorry, but this section is just *wrong*, IMO. X.Y_Z  should always
be > X.Y. Otherwise, you've just broken (at least the release sequence
of) previous versions of the toolchain that make the assumption that a
simple s/_// gets something to compare to that works, without
version.pm. (Module::Build, for example, went 0.3603 to 0.36_04 to
0.3605 just within the past few months. I also remember perl doing
5.005_51 versions in the past during the runup to 5.6.0, as being later
than 5.00504. )

You're right about that. The traditional way to handle alphas in decimals is X.YY_ZZ -> X.YYZZ. My mistake. And it should probably be left that way. Which is why we should write this stuff down, perhaps in a spec...


You don't get 1.01_05 as "the 5th alpha release of 1.01", if, once
you're exiting the alpha sequence, you immediately increment to 1.02,
anyway.

That was a recommendation to avoid any possible ambiguity, so the versions are resistant to a reader not entirely groking the details of alpha versions.

Now, what about vX.YY_ZZ? It appears version.pm is treating it as vX.YY.ZZ, except if they'd otherwise be equal the alpha loses.

v0.36_04 > v0.36.03
v0.36_04 < v0.36.04
v0.36_04 < v0.36.05

The version.pm docs aren't entirely clear on this point, but don't seem to contradict it.

The trouble is...

v0.36.1_04 > v0.36.1

The fourth alpha of v0.36.1 is greater than the release of v0.36.1. Which means you always have to do that double increment which is odd. It means the proper release sequence is: v0.36.0 -> v0.36.0_01 -> v0.36.1.

It does have the benefit of being a simpler algorithm. 1) Convert _ to . 2) If equivalent, alpha loses.

Anyhow, I'm not really concerned just so long as its written down, once and for all, and independently of version.pm.


--
On error resume stupid

Reply via email to