For reasons explained below, I released a CPAN module Spreadsheet::Edit containing two $VERSION assignments like this:
  $Spreadsheet::Edit::VERSION = 999.999; # intended to be over-ridden in released dist
  our $VERSION = 3.024; # VERSION from Dist::Zilla::Plugin::OurPkgVersion
My intention was for the second assignment to be effective, i.e. to set VERSION=3.024. I didn't realize that PAUSE and the tester system textually search for the first such assignment. I deleted the release via pause, but many test machines have it installed and think they have version 999.999 and therefore refuse to update the module when something requires a later actual version such as 3.029.

My question: Is it safe to bump the actual version to 1000.001 to fix this, or will a primary version with more than 3 digits break something?

--------------------

If you wonder why I did such a thing, here is why:

I maintain several CPAN modules and, in my personal sandbox I want to use the working trees of these modules by default (i.e. eat my own dog food); and so I put /path/to/src/Module-Foo/lib etc. as the first items in PERL5LIB. That way my development code will be used instead of whatever version might have been installed with cpanm in my local::lib area.

Fine. Until I needed to require a minimum version e.g. "use Spreadsheet::Edit 3.029;" which bombed because there is no $VERSION variable in the working tree code. $VERSION variables were inserted only when building a release tarball using Dist::Zilla. I use the OurPkgVersion plug-in which inserts "our $VERSION = ...;" before a "# VERSION" comment, which of course is still just a comment in my working tree.

So I inserted a hard-coded assignment setting VERSION to "infinity" before the # VERSION comment, so that my working tree code would satisfy any "use ... version" requirement. The result, in the released code, was the pair of assignments shown above.


In reply to Is VERSION > 999 allowed? by jimav

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.