Hi Marvin, My philosophy:
1. Use X.Y version #s, starting from 0.X 2. use .Z when it makes sense (aka patch release to X.Y series, e.g., first patch in the series is .1, .2, etc.) Cheers, Chris On Dec 2, 2010, at 3:04 PM, Marvin Humphrey wrote: > Greets, > > Most Apache projects seem to use X.Y.Z version numbering. Specifying X.Y.Z > versions in Perl is messy, though, as David Golden explains: > > http://www.dagolden.com/index.php/369/version-numbers-should-be-boring/ > > I think we'd be better off if we avoided vstrings and version.pm objects. > > But then, specifying X.Y.Z versions in C isn't straightforward either -- > there's no native C vstring type, after all. A lot of projects (Perl, GCC, > Subversion, etc) use 3 or more integers to convey version information > programatically. > > For my CPAN distros, I've always had all version number formats match exactly > in all of the following places: > > * Distribution archive name => KinoSearch-0.31.tar.gz > * Documentation (POD, Changes, README, etc.) => 0.31 > * META.yml => 0.31 > * $VERSION => "0.31" > > However, research has revealed that it's not mandatory for all formats to > match. See this comment from Darren Duncan: > > > http://www.dagolden.com/index.php/369/version-numbers-should-be-boring/#comment-2746 > > For the last few years, the practice I have followed for the modules I > write is to use X.Y.Z version numbers conceptually and in my documentation > and as my distro version, and I use the corresponding X.00Y00Z versions in > the actual code of my modules for declaration and use. > > One example of a distro where version numbers are expressed differently in > different contexts is Apache's Mail::SpamAssassin. > > Dist archive name => Mail-SpamAssassin-3.3.1.tar.gz > Documentation => 3.3.1 > META.yml => 3.003001 > $VERSION => "3.003001" > > Note that SpamAssasin used the floating point variant in META.yml. I'd be > inclined to use the X.Y.Z format there, as Duncan does for his distro > Set::Relation. > > Dist archive name => Set-Relation-0.12.7.tar.gz > Documentation => 0.12.7 > META.yml => 0.12.7 > $VERSION => "0.012007" > > Based on these precedents, I believe it's technically feasible to use X.Y.Z > versioning for Lucy and it's Perl bindings: > > Dist archive name => Lucy-0.1.0-incubating.tar.gz > Documentation => 0.1.0 > META.yml => 0.1.0 > $VERSION => "0.001000" > > Other host binding languages will present similar challenges when expressing > X.Y.Z version information programmatically; presumably, similar workarounds > will be found for all of them. > > Marvin Humphrey > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Chris Mattmann, Ph.D. Senior Computer Scientist NASA Jet Propulsion Laboratory Pasadena, CA 91109 USA Office: 171-266B, Mailstop: 171-246 Email: [email protected] WWW: http://sunset.usc.edu/~mattmann/ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Adjunct Assistant Professor, Computer Science Department University of Southern California, Los Angeles, CA 90089 USA ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
