Re: Take care with version numbers (eg DBD::Pg)

2010-07-12 Thread David E. Wheeler
On Jul 12, 2010, at 8:54 PM, Greg Sabino Mullane wrote:

 Doesn't that mean
  perl -MDBI -e 'print $DBI::VERSION'
 cannot indicate if you've got a dev version or a final release?

Yes, thank god. Because that's not where that information should be!

David



Re: Take care with version numbers (eg DBD::Pg)

2010-07-09 Thread H.Merijn Brand
On Thu, 8 Jul 2010 15:56:38 -0700, David E. Wheeler
da...@kineticode.com wrote:

 Underscores should be banned from version numbers. Full stop.

In principle, and as an end-user I would wholeheartedly agree,  but the
way CPAN /and/ CPANTESTERS is currently set up, having _XX support is a
huge win.

The moment I release a module Foo-X.YY_ZZ, it is excluded from commands
that would otherwise `see' it as an upgrade, like

  $ cpan Foo

It will simply be skipped, as CPAN sees this as a developer release.

On the CPANTESTERS side however,  the testers DO pick it up and give me
feedback  on how this developer release behaves in the big wide unknown
world. I /do/ have Linux, HP-UX, AIX and a few windows/Strawberry devel
environments, but CPANTESTERS adds to those NetBSD, FreeBSD, ActivePerl
on windows, OS/X and maybe even more. That info is very nice to have.

Additionally,  most CPANTESTERS reports inform me about errors I forgot
to take out regarding not-yet installed modules (dependencies I did not
declare or debugging modules I forgot to take out).

 Best,
 
 David

-- 
H.Merijn Brand  http://tux.nl  Perl Monger  http://amsterdam.pm.org/
using 5.00307 through 5.12 and porting perl5.13.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/   http://www.test-smoke.org/
http://qa.perl.org  http://www.goldmark.org/jeff/stupid-disclaimers/


Re: Take care with version numbers (eg DBD::Pg)

2010-07-09 Thread Jens Rehsack

On 07/08/10 17:08, David E. Wheeler wrote:

On Jul 8, 2010, at 9:38 AM, Jens Rehsack wrote:


Looks like it should have been 2.6.0:

  2.6.0 = 2.006001
  2.17.1 = 2.017001

  2.006001   2.017001

Version number suck. And clearly, three-version numbers suck harder.


I think, the best way out would be a hard consensus and CPAN reindex.


The closest thing to a concensus is represented in David's blog post:

   http://www.dagolden.com/index.php/369/version-numbers-should-be-boring/


Have a look how David use the version numbers in Module::Build - he seems
to be unable to be strict on himself (no critic, just mentioned).
He describes how module authors can deal with the non-boring version
numbering in Perl ...

Best example for can't have everything.

Do I understand the intension of the original mail right, that it should
start a new wave of enlightenment about version objects?

Jens


Re: Take care with version numbers (eg DBD::Pg)

2010-07-09 Thread Tim Bunce
On Fri, Jul 09, 2010 at 07:47:00AM +0200, H.Merijn Brand wrote:
 On Thu, 8 Jul 2010 15:56:38 -0700, David E. Wheeler
 da...@kineticode.com wrote:
 
  Underscores should be banned from version numbers. Full stop.
 
 In principle, and as an end-user I would wholeheartedly agree,  but the
 way CPAN /and/ CPANTESTERS is currently set up, having _XX support is a
 huge win.

Agreed. But there's no need to use them *in modules*.

The dev releases of DBI 1.612 have *distro* versions 1.611_9x
(greater than 1.611 but less than 1.612) but $DBI::VERSION is 1.612.

Tim.


Re: Take care with version numbers (eg DBD::Pg)

2010-07-08 Thread David E. Wheeler
On Jul 8, 2010, at 8:31 AM, Tim Bunce wrote:

 FYI
 
 On Thu, Jul 8, 2010 at 3:48 AM, Nigel Horne n...@bandsman.co.uk wrote:
  ! DBD::Pg2.6  2.17.1
 
 Let's review version number math:
 
  2.6 = 2.60
  2.17.1 = 2.017001
 
  2.60  2.017001

Looks like it should have been 2.6.0:

 2.6.0 = 2.006001
 2.17.1 = 2.017001

 2.006001  2.017001

Version number suck. And clearly, three-version numbers suck harder.

Best,

David




Re: Take care with version numbers (eg DBD::Pg)

2010-07-08 Thread Jens Rehsack

On 07/08/10 16:32, David E. Wheeler wrote:

On Jul 8, 2010, at 8:31 AM, Tim Bunce wrote:


FYI

On Thu, Jul 8, 2010 at 3:48 AM, Nigel Hornen...@bandsman.co.uk  wrote:

  ! DBD::Pg2.6  2.17.1


Let's review version number math:

  2.6 = 2.60
  2.17.1 = 2.017001

  2.60  2.017001


Looks like it should have been 2.6.0:

  2.6.0 = 2.006001
  2.17.1 = 2.017001

  2.006001  2.017001

Version number suck. And clearly, three-version numbers suck harder.

Best,

David


I think, the best way out would be a hard consensus and CPAN reindex.

This might break some things in the first way - but my experience as
Perl module packager for pkgsrc packaging system is, that most authors
do not react until things fail (and many of them do not react then).

But this will touch the sacred cow of downward compatibility ...

We can't have both.

Jens


Re: Take care with version numbers (eg DBD::Pg)

2010-07-08 Thread David E. Wheeler
On Jul 8, 2010, at 9:38 AM, Jens Rehsack wrote:

 Looks like it should have been 2.6.0:
 
  2.6.0 = 2.006001
  2.17.1 = 2.017001
 
  2.006001  2.017001
 
 Version number suck. And clearly, three-version numbers suck harder.
 
 I think, the best way out would be a hard consensus and CPAN reindex.

The closest thing to a concensus is represented in David's blog post:

  http://www.dagolden.com/index.php/369/version-numbers-should-be-boring/

Fortunately, version number parsing is gradually becoming stricter. You can 
only use strictly-formatted version numbers in `use MODULE VERSION` and 
`package MODULE VERSION` (as of 5.12). It will be at least 10 years before 
loosely-parsed version numbers are deprecated, though. And perhaps not then.

Besides which, if my META.yml says

   DBD::Pg: 2.6

It assumes decimal notation (2.600), not three-digit (2.006). It has no way to 
tell that I really mean the latter.

 This might break some things in the first way - but my experience as
 Perl module packager for pkgsrc packaging system is, that most authors
 do not react until things fail (and many of them do not react then).
 
 But this will touch the sacred cow of downward compatibility ...
 
 We can't have both.

No, we can't, alas.

Best,

David



Re: Take care with version numbers (eg DBD::Pg)

2010-07-08 Thread Greg Sabino Mullane

-BEGIN PGP SIGNED MESSAGE-
Hash: RIPEMD160


 Looks like it should have been 2.6.0:

Yep, there is no such thing as version 2.6 of DBD::Pg.

 I think, the best way out would be a hard consensus and 
 CPAN reindex.

Consensus on what exactly?

Perhaps it would be good if the mixing of two and three 
dot versions on the same check was treated as a severe 
error and caused an automatic FAIL report.

I can't see a case where using both forms would ever be desired.

- -- 
Greg Sabino Mullane g...@turnstep.com
End Point Corporation http://www.endpoint.com/
PGP Key: 0x14964AC8 201007081302
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-BEGIN PGP SIGNATURE-

iEYEAREDAAYFAkw2Bf4ACgkQvJuQZxSWSsitqACg/ci1wC6pC3KIsQ1EXctbhg57
/jcAnRrGkbzhvcoIZTZy6UlGdUN8uuDW
=I0v4
-END PGP SIGNATURE-




Re: Take care with version numbers (eg DBD::Pg)

2010-07-08 Thread David E. Wheeler
On Jul 8, 2010, at 10:09 AM, Greg Sabino Mullane wrote:

 Perhaps it would be good if the mixing of two and three 
 dot versions on the same check was treated as a severe 
 error and caused an automatic FAIL report.
 
 I can't see a case where using both forms would ever be desired.

In my META.yml, I'll use three-digit notation for modules that use it (DBD::Pg) 
and decimal for those that don't (DBI). It might be useful for the version 
validation code to complain if I specify decimal and the module uses 
three-digit (or vice versa). But then that would screw things up for modules 
that unfortunately changed their versioning algorithm. I would no longer be 
able to require DBD::Pg 1.49, for example, even thought that's perfectly valid.

Best,

David



Re: Take care with version numbers (eg DBD::Pg)

2010-07-08 Thread Greg Sabino Mullane

-BEGIN PGP SIGNED MESSAGE-
Hash: RIPEMD160


 I can't see a case where using both forms would ever be desired.

 In my META.yml, I'll use three-digit notation for modules that use it 
 (DBD::Pg) and decimal for those that don't (DBI).

Right, I didn't mean to imply you can't mix and match across modules.

 It might be useful for the version validation code to complain if I 
 specify decimal and the module uses three-digit (or vice versa).

Could be a lot of work, yes, but it would certainly catch things like 
the existing RWDE problem (as would my proposal by itself).

 But then that would screw things up for modules that unfortunately 
 changed their versioning algorithm. I would no longer be able to 
 require DBD::Pg 1.49, for example, even thought that's perfectly valid.

Good point, but hopefully such changes are a very rare and momentous event 
(as was the case with DBD::Pg). Version 1.49 (the last of the two dot 
versions for those playing at home) is *severely* deprecated. One of the 
reasons DBD::Pg jumped to 2.0.0 was to prevent any version comparison 
confusion, as even Perl's wacky versioning tools cannot deny that 2  1. :)

- -- 
Greg Sabino Mullane g...@turnstep.com
End Point Corporation http://www.endpoint.com/
PGP Key: 0x14964AC8 201007081340
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8

-BEGIN PGP SIGNATURE-

iEYEAREDAAYFAkw2DsMACgkQvJuQZxSWSsjeLACgsakZH/iVhwltaCqXOMOmcF8e
ZBkAnjJlhWBgf0jWMJiRsPJDUkXWbxF2
=MhsI
-END PGP SIGNATURE-




Re: Take care with version numbers (eg DBD::Pg)

2010-07-08 Thread David E. Wheeler
On Jul 8, 2010, at 10:46 AM, Greg Sabino Mullane wrote:

 But then that would screw things up for modules that unfortunately 
 changed their versioning algorithm. I would no longer be able to 
 require DBD::Pg 1.49, for example, even thought that's perfectly valid.
 
 Good point, but hopefully such changes are a very rare and momentous event 
 (as was the case with DBD::Pg). Version 1.49 (the last of the two dot 
 versions for those playing at home) is *severely* deprecated. One of the 
 reasons DBD::Pg jumped to 2.0.0 was to prevent any version comparison 
 confusion, as even Perl's wacky versioning tools cannot deny that 2  1. :)

A lot of folks changed without any momentous reason. So this suggestion, 
frankly, is right out.

Frankly, I consider even momentous reason dubious. Pick a version and stick to 
it. I myself maintain a module or two with hinky version numbering systems 
because I inherited them and see no benefit to changing.

Best,

David




Re: Take care with version numbers (eg DBD::Pg)

2010-07-08 Thread Tim Bunce
My take on this, for the record, is to prefer two part numbers
in the form X.YYY where YYY never has a trailing zero.

Short, sweet, simple.

Tim.

p.s. No one commented on the DBI going from 1.609 to 1.611 :)


Re: Take care with version numbers (eg DBD::Pg)

2010-07-08 Thread David E. Wheeler
On Jul 8, 2010, at 3:29 PM, Tim Bunce wrote:

 My take on this, for the record, is to prefer two part numbers
 in the form X.YYY where YYY never has a trailing zero.

And thus may be X.Y or X.YY as well.

 Short, sweet, simple.

Yeah, I'm with you. All of my modules use this format. (Except Bricolage. Don't 
ask.)

 Tim.
 
 p.s. No one commented on the DBI going from 1.609 to 1.611 :)

That's one louder, isn't it?

David



Re: Take care with version numbers (eg DBD::Pg)

2010-07-08 Thread Darren Duncan

Tim Bunce wrote:

My take on this, for the record, is to prefer two part numbers
in the form X.YYY where YYY never has a trailing zero.

Short, sweet, simple.

Tim.

p.s. No one commented on the DBI going from 1.609 to 1.611 :)


You mean now?  1.611 came out on April 29th.  Or did you mean the completely 
different 1.611_93?  Confusing!


And that points to an example of something else that should become common 
practice for numbers.


Projects that have any version X.Y_Z should never also have a version X.Y for 
the same X plus Y.  Instead, the Y should always increment when moving between a 
developer release and a production release.


See how DBD::SQLite does things for an example that I think is better.

This is also analogous to Perl's own versioning X.Y.Z scheme, where there are 
never developer and production releases with the same Y.


Its much less confusing that way.

It also avoids the confusion of relating 1.002003 to 1.002_003, say; are those 
the same version or different versions?


So, if the next DBI release after the latest 1.611_93 is going to be a stable 
release, then keep the current plan for it to be 1.612.


Then, when making a subsequent dev release, call it 1.613_1 or 1.613_001 or 
such.

Does that not make more sense?

-- Darren Duncan


Re: Take care with version numbers (eg DBD::Pg)

2010-07-08 Thread David E. Wheeler
Underscores should be banned from version numbers. Full stop.

Best,

David

On Jul 8, 2010, at 3:46 PM, Darren Duncan wrote:

 Tim Bunce wrote:
 My take on this, for the record, is to prefer two part numbers
 in the form X.YYY where YYY never has a trailing zero.
 Short, sweet, simple.
 Tim.
 p.s. No one commented on the DBI going from 1.609 to 1.611 :)
 
 You mean now?  1.611 came out on April 29th.  Or did you mean the completely 
 different 1.611_93?  Confusing!
 
 And that points to an example of something else that should become common 
 practice for numbers.
 
 Projects that have any version X.Y_Z should never also have a version X.Y for 
 the same X plus Y.  Instead, the Y should always increment when moving 
 between a developer release and a production release.
 
 See how DBD::SQLite does things for an example that I think is better.
 
 This is also analogous to Perl's own versioning X.Y.Z scheme, where there are 
 never developer and production releases with the same Y.
 
 Its much less confusing that way.
 
 It also avoids the confusion of relating 1.002003 to 1.002_003, say; are 
 those the same version or different versions?
 
 So, if the next DBI release after the latest 1.611_93 is going to be a stable 
 release, then keep the current plan for it to be 1.612.
 
 Then, when making a subsequent dev release, call it 1.613_1 or 1.613_001 or 
 such.
 
 Does that not make more sense?
 
 -- Darren Duncan