in reply to A Peeve of Great Pettishness

I do think sub-1.0 version numbers get abused a bit, because many people feel that putting the big 1.0 on something should mean the item is stable and as bug-free as possible, while having every feature one could ever dream of.

I think that's partially a pipe dream, and partially a lack of good planning. When coming up with a feature list, many people draw the 1.0 line when they can't think of any more good features. It should be drawn at a point when the item has all necessary features to accomplish its goal. The other features can be divided into useful chunks with bigger version numbers. A guassian blur filter in a graphics app won't be useful until the filter engine is done, and the engine is useless without a couple of simple filters -- those are things that might be released together under a version.

However, I don't think that sub-1.0 numbers are automatically bad, either. A sub-1.0 version should be, IMO, products that the author feels aren't really ready to be useful, yet. In other words, there are necessary features missing, or said features have not yet been adequately tested.

I would like to see authors with versions out like 0.98 promote to 1.0 when their 0.98 "testing" version hasn't gotten a bug report in months (or years).

<-radiant.matrix->
A collection of thoughts and links from the minds of geeks
The Code that can be seen is not the true Code
"In any sufficiently large group of people, most are idiots" - Kaa's Law

Replies are listed 'Best First'.
Re^2: A Peeve of Great Pettishness
by rje (Deacon) on Oct 28, 2005 at 17:47 UTC
    ++ radiant, in particular for this reasonable tidbit:

    <quote>
    (the 1.0 line) should be drawn at a point when the item has all necessary features to accomplish its goal.
    </quote>

    I suppose I'll have to revisit some of my CPAN modules. You've given me something to dwell on.
Re^2: A Peeve of Great Pettishness
by stvn (Monsignor) on Oct 29, 2005 at 14:15 UTC

    Well I think your point makes some sense, but not in all contexts.

    For instance, when I am building something for $work which we are selling in some way, then I will slap a 1.0 onto it for the first release. This is because it is the first release to a $paying, non-technical audience. If we do a major upgrade at some point, we will bump the version appropriately, depending upon the "size" of the upgrade.

    When I am building a module for internal use within these $work products, that may or may not get released to CPAN, I take a different approach. My "clients" for this kind of work are fellow developers, they are not a dazzled by the bright shiney number 1.0. For these modules, I start at 0.01 and I increment each version by 0.01. Why? Because I know that those numbers don't really mean that much to a developer. A developer should only care that the module works, that is has a solid set of tests, and if possible has been field tested by the author (aka - deployed in prod). I would sooner use a 0.01_a module which had +95% test coverage and had been deployed in a production environment for 6 months or more, than I would use a 3.0 module which does not meet those same criteria.

    -stvn