in reply to (OT) Version Numbers

I do mostly number my versions of programs after this schema :

MM.mmc

where MM is the major version number, mm is the minor version number and c is a character denoting the build of the release (this was more important when I still needed a compiler to compile my programs before delivery).

So the character at the end increases with every time I do a public release of the program, in fact, I have come to change it every time after a release, so it is already set for the next release :

Example: Old version: 0.99h New version: 0.99i

The minor number increases whenever "enough" new features have accumulated, and the fraction by which it is increased reflects this.

Example: Old version: 0.01 # First proof-of-concept New version: 0.20a # First public release

An increase in the major number is only warranted when there is new central functionality which may or may not break existing scripts. An exception to this rule may be the step from a 0.x release to a 1.x release, where a 1.x release is considered to be stable enough for public consumption. The compatibility between a 1.x release and a 2.x release is possibly marginal, but maybe the 2.x release has a compatibility-mode flag.

You should also know that this numbering style differs from what the Perl people use for version numbering. Perl version numbers are of the format M.m.v, with M being the major version (5 for Perl 5, 6 for Perl 6), m is the minor Perl version (6 for Perl 5.6.1), where an even number marks the stable release and an odd number marks the experimental/development release, and v is the subversion, Microsoft would call this the number of the Service Pack installed.

perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The $d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider ($c = $d->accept())->get_request(); $c->send_response( new #in the HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web