Pretty much came about this independently for bioperl, but maybe it's a bit 
like convergent evolution :) 

bioperl uses the 1.x.y versioning and it has been a real pain to deal will over 
the years.  We've discussed this over the years, and since we're breaking 
bioperl up into smaller releases we'll be switching over to a 2.x release, 
pretty much the as the below.  

my 2c

chris

On May 31, 2012, at 8:57 AM, Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 wrote:

> This will be part of my talk at YAPC.
> 
> I recommend you use 2.xxx, where xxx is always zero-padded.
> 
>    our $VERSION = '2.001'; # 2nd version of revision 2
>    our $VERSION = '2.420'; # 421st version of revision 2
> 
> It has the following properties:
> 
> * It is fully compatible with the advice in
>    * perlmodstyle
>    * version.pm
>    * "strict" version rules
>  <http://p3rl.org/perl5120delta#Version-number-formats>
>    * <http://www.dagolden.com/index.php/369/> ¹
>    * Perl::Critic::Policy::ValuesAndExpressions::ProhibitVersionStrings
>    * Perl::Critic::Policy::ValuesAndExpressions::RequireNumericVersion
> * It completely prevents:
>    * trailing zeros from disappearing because it's a quoted string
>    * the confusion about 1.10 < 1.9 (Perl says that's true, other
>  system say the opposite) because there are always exactly 3 digits
>  after the decimal mark, so any(numeric,lexicographical,naturalsort)
>  comparison has the same result
>    * the confusion about 5.10.1 == 5.010001 (and the variant mentioned
>  by Aldo) since there is only a single representation because there
>  are only enough decimal places (namely 3) for one portion of semver
>  (or Perl's notion thereof)
>    * the confusion around v-strings which after all those years still
>  are such an usual and (on average) poorly understood data type
>    * that ugly v-prefix in the distro package name
> * It is fully compatible with downstream packaging toolchains (RPM
>  specfile macros and the like).
> * It is incompatible with semver. Not a big loss, for the reasons
>  already mentioned by David.
> 
> ¹ Avoid underscore version numbers and you don't need that ugly `eval`.
> Simply use the `TRIAL` feature for trial releases instead.
> <https://pause.perl.org/pause/query?ACTION=pause_04about#convention


Reply via email to