On Mon, 19 Apr 2010 15:38 +0300, "Michael G Schwern" <schw...@pobox.com> wrote: > ... > Notes about alpha versions > -------------------------- > DEFINITION: > 1) Strip off the alpha version > 2) If they are equal, the alpha version is the lesser. > 2b) If they are both alphas, compare the alpha numbers as integers > 3) If they are not, compare normally. > > EXAMPLE: > 1.00_01 < 1.00 > v1.0.0_01 < v1 > 1.00_00 < 1.00 > 1.01_01 > 1.00 > 1.00_01 = 1.00_01 > 1.00_02 > 1.00_01 > > RECOMMENDATION: To avoid confusion, increment your version number between > an > alpha release and stable. That is, 1.2.3_1 should be followed by 1.2.4. > > NOTE: This doesn't appear to jive with version.pm. Here's what it does: > 1.0100 < 1.0101_01 > 1.0101 > 1.0101_00 > 1.0101 < 1.0101_01 > > 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. ) The way you're doing it, you have to increment between a release and an alpha, as well as between an alpha and a release, or else you ruin numerical sequence for stuff that just does the underscore removal. 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. When X.Y_Z > X.Y, this can be done: (ascii art - may not look good with proportional fonts - Just realize that 1.103_101 is branched off of 1.103) 1.102 ---> 1.102001 --> 1.102002 ('maint') \ \---> 1.102_101 ... --> 1.102_103 --> 1.103 ('blead') ---> 1.103001 ('new maint') \ \---> 1.103_101 ('new blead') (this is the way I'm doing Perl::Dist::WiX's numbering. It appears that CPAN.pm also is doing something similar to this, only with 2 digit segments instead of 3) In this case, anything beginning with 1.102 is based off of the 1.102 "trunk" and it's branches, until the dev version turns into 1.103. --Curtis Jewell -- Curtis Jewell csjew...@cpan.org http://csjewell.dreamwidth.org/ p...@csjewell.fastmail.us http://csjewell.comyr.org/perl/ "Your random numbers are not that random" -- perl-5.10.1.tar.gz/util.c Strawberry Perl for Windows betas: http://strawberryperl.com/beta/