in reply to Seeking thoughts on version numbers in modules
- IMO, v-strings should die. And I think they will. Many people consider them one of the many experiments that failed. Someone on p5p is working on "version" objects, intended to be used where v-strings should be used for. But each time I try to understand what they are supposed to do, and how it orders version numbers, my brain pops.
- If your module is supposed to work for Perls older than 5.6.0, there's no option to use our. How important compatability is is something you have to work out for yourself. Who's your target? And consider how it feels if you can't run software because you don't have the newests and greatest version of your OS/libraries/distro/browser/Perl/compiler/whatever. IMO, you don't have to support old versions for ever. But to break compatibility just so you can write our instead of use vars isn't very friendly either.
- There is absolutely no concensus on how to label your versions. There isn't even concensus on whether 1.10 is newer than 1.9. (Perl itself, and by extension CPAN, don't think so. Commonly used version control systems like CVS do).
- That's common. But be aware of my previous point. Blindly taking CVS's versions numbers will cause the CPAN indexer to do thinks you don't expect. A way of using CVS to generate version number is to have the string '$Revision: $' in your program, followed by a regex to extract the version number, with the result assigned to $VERSION. All on one line to please MakeMaker.
- Never thought about that. IMO, not necessary either. The CPAN indexer doesn't have a problem with version numbers not all equal.
- Considering noone know who perl5.10 or perl6 will look like (the latter changes every week), the question is impossible to answer. I don't know if there's even a way to prepare for 5.10 and 6, let alone "the best" way.
- No idea.
- I wished that every one used dotted integers as version numbers (just like CVS does). No underscores, letters, and certainly not "floating point" numbers with more than one period (like Perl does).