I've been thinking lately about how authors version their distributions and what managers think of using software with < 1.00 version numbers.
I, like probably most other Perl developers, trust that a distribution on CPAN with a version number below 1.00 is still usable and considered safe.
But, if I was a non Perl-programming manager who had to make the decisions I would be more skeptical on relying on software that didn't have a "stable" version number. "stable" in this context meaning 1.0 or later. I believe that the fact that there are so many distributions on CPAN with a version below 1.0 (some of mine included) could scare the decision makers off and instead of embrace and extend just go on developing their own internal modules that does the same thing.
The problem that we are seeing this is because h2xs sets 0.01 as the initial version of the module it creates and many authors are just too lazy to even bother thinking about if this should be considered stable. Are there any guidelines in the Perl community when a distribution should receive a >= 1.00 version number?
So my question to all of you is:
How do you version your distributions and why?
I just haven't followed that style in my own module (DBD::Ingres) - mostly because I felt that I could'nt have DBD::Ingres at above 1.00 when the DBI was at 0.xx, and there has'nt been a good opportunity since to raise the number (a major jump in version number should also signify a major increase in something else).
slightly off-topic, but here's a list of distribution of major version numbers of modules on CPAN (where a major version number is something like $version=~/^(\d+)\..*/:
sqlite> select count(version_major) as cnt,version_major from cpants group by version_major order by version_major;
cnt version_major
---------- -------------
4073 0
1752 1
272 2
69 3
22 4
17 5
2 6
2 8
1 11
1 19
1 96
1 98
2 101
1 800
1 804
1 1998
1 1999
1 2001
3 2002
6 2003
2 9999
1 20020902
Or, 64,17% of distributions are versioned 0.x and thus might be regarded as "beta" by some people.