Shlomi Fish, I have a personal preference for three dotted decimal versions for reasons not related to perl or programming. I come from the old school hardware configuration control world and I treat the first position as feature changes with 0 as beta level, the second as bug fixes, and the third as documentation and or background code changes unrelated to form, fit, or function. (Yes I know the hardware words don't translate one to one but I have some fuzzy analogies that I use).
I have noticed that there is a preference in the perl world for pure numbers that look like numbers to be treatable as numbers meaning that there is only one decimal point. My compromise has been to use the module version <https://metacpan.org/pod/distribution/version/lib/version.pm>. This way I can explicitly use the three dotted position callout for version but as a version string without some risk of the three dotted version being treated as a number. use version <https://metacpan.org/pod/version>; our $VERSION = qv( "v1.2.3"); In the background I suspect that it does load the global variable $VERSION as 1.002003 but I find this way more readable on the developers side. I also believe that it makes the development version of modules more visually consistent with general release versions. use version <https://metacpan.org/pod/version>; our $VERSION = qv("v1.2_3"); Best Regards, Jed On Sun, May 31, 2015 at 9:44 AM, Shlomi Fish <shlo...@shlomifish.org> wrote: > Hi all, > > today someone on Freenode’s #perl chat room told me that I shouldn't use > three-dotted-decimal versions in $VERSION in the .pm files and > distributions > that I'm putting on CPAN . E.g: instead of: > > « > our $VERSION = '0.0.7'; > > our $VERSION = '0.2.3'; > » > > Use: > > « > our $VERSION = '0.000007'; > > our $VERSION = '0.002003'; > » > > ( I can quote the logs with their permission. ). > > The problem is that I've been uploading .pm files with the first $VERSION > notation and CPAN distributions that read these VERSION fields from them > and > generate an appropriate tarball for many years now, and this is the first > major > complaint that I received for that. > > Furthermore: > > 1. Module-Build did not complain about it, and from what I Recall neither > did > Dist-Zilla. > > 2. PAUSE did not complain about it or reject my uploads. > > 3. CPANTS ( http://cpants.cpanauthors.org/ ) did not notify me that this > is > wrong either, including not in its optional or experimental policies (but > note > that it is of much lower visibility than #1 and #2). > > 4. For the record, it is possible that there's a Perl Critic > ( https://metacpan.org/release/Perl-Critic ) policy for that, but I don't > use > Perl Critic that often, so I don't know. > > ========================== > > By all means, if this notation is undesirable, its rejection should be made > more explicit rather than I hear about it years after the fact. Note that I > happen to find '0.0.7' much more user-friendly than '0.000007' and would > like > it to stay and be supported by the toolchain properly, but I think that > prohibiting it more directly would be a desirable second-best solution. > > So what should be done? > > Regards, > > Shlomi Fish > > -- > ----------------------------------------------------------------- > Shlomi Fish http://www.shlomifish.org/ > The Case for File Swapping - http://shlom.in/file-swap > > I also have versions of this code in COBOL.NET, Intercal, PDP‐10 > Assembly, J, > APL, Windows NT 4.0 Batch script and Autocad Lisp — I’m sure you can handle > all of them because none of them is Perl. ;-). > > Please reply to list if it's a mailing list post - http://shlom.in/reply . >