Or 2.1 once we really understand the implications of things that people voted for but which turn out to be a disaster when we try to implement them...
Adam K On Mon, Apr 19, 2010 at 11:01 PM, David Golden <xda...@gmail.com> wrote: > Michael -- I appreciate the suggestion, but the spec is done. I did > ask for comments on the final draft a week ago. > > I'm open to considering it for Version 3 at some future time. But > while I understand the desire not to rely on specific implementations > like version.pm, that implementation is the same as what Perl itself > does. We could say "the semantics of Perl 5.12.0" for version > comparison, but for all practical purposes the toolchain is stuck with > verison.pm as the external tool we can use for compatibility. > > I truly wish it were different. I wish version objects had never been > added to Perl. But that train has left the station and we all have to > make the best of it. > > -- David > > On Mon, Apr 19, 2010 at 8:38 AM, Michael G Schwern <schw...@pobox.com> wrote: >> http://search.cpan.org/~dagolden/CPAN-Meta-2.101091/lib/CPAN/Meta/Spec.pm#Comparing_Version_Numbers >> is an insufficient description about how to compare version numbers. The >> spec should not depend on any implementation, in this case version.pm. >> >> A description of the algorithm of how to compare version numbers is >> necessary for a complete spec. There would be four sections: >> >> 1) Comparing decimal to decimal >> 2) Comparing dotted to dotted >> 3) Comparing dotted to decimal >> 4) Notes about alpha versions >> >> >> Decimal to Decimal >> ------------------ >> DEFINITION: Decimal versions are compared as normal decimal numbers. >> >> EXAMPLE: >> 1.0 = 1.0 >> 1.0 = 1.00 >> 1.0 = 1 >> 2.0 > 1.0 >> 1.9 > 1.10 >> >> RECOMMENDATION: To avoid confusion, users are encouraged to use a fixed >> number of decimal places in their versions such that comparing as numbers >> and comparing as dotted pairs works the same. For example, if your first >> release is 1.00 then your second should be 1.01. >> >> >> Dotted to Dotted >> ---------------- >> DEFINITION: Each integer is compared as an integer with its counterpart in >> sequence. If any are not equal, the comparison stops. Otherwise if all are >> equal the two versions are equal. Any missing integers are treated as 0. >> >> EXAMPLE: >> v1.0.0 = v1.0.0 >> v1.0 = v1.0.0 >> v1 = v1.0.0 >> v1 < v1.1 >> v1.02 > v1.1 >> v2.1 > v1.9.9 >> >> NOTE: This appears to jive with version.pm >> >> RECOMMENDATION: We recommend using at least 3 integers to avoid confusion >> with decimal versions. >> >> >> Dotted to Decimal >> ----------------- >> RECOMMENDATION: To avoid confusion, when changing between dotted and >> decimal versions, it is recommend you increment the first integer. 1.09 >> should be followed by 2.0.0. >> >> DEFINITION: >> When comparing dotted version numbers with decimal version numbers, the >> decimal is first converted to a dotted version. Then they are compared as >> dotted versions. >> >> 1) The decimal part is multiplied by 1000. >> 2) The result is treated as the next integer. >> 2a) If the result is a decimal, goto 1. >> 3) Alpha versions are left alone. >> >> EXAMPLE: >> 1.02 -> v1.20.0 >> 1.2 -> v1.200.0 >> 1.2001 -> v1.200.100 >> 1.02_01 -> v1.20.0_01 >> >> NOTE: This appears to jive with version.pm >> >> >> 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. >> >> >> -- >> 40. I do not have super-powers. >> -- The 213 Things Skippy Is No Longer Allowed To Do In The U.S. Army >> http://skippyslist.com/list/ >> >> >