Skip Menu |

This queue is for tickets about the Parse-RecDescent CPAN distribution.

Report information
The Basics
Id: 32288
Status: resolved
Priority: 0/
Queue: Parse-RecDescent

People
Owner: Nobody in particular
Requestors: ANDK [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in:
  • v1.95.1
  • 1.96.0
Fixed in: (no value)



Subject: Decreasibng version number
The jump from 1.94 to 1.95.1 is against the ruuuuulz. % perl -le ' use version; print version->new("1.94") <=> version->new("1.95.1"); print version->new("1.94") <=> version->new("1.950.1"); ' 1 -1 In other words, 1.95.1 is less than 1.94. Thanks,
As John Peacock has pointed out recently on the module-build mailing list, this is against the Best Practice section in the version.pm manpage which reads: * Be consistent Whichever of the two types of version objects that you choose to employ, you should stick to either "Numeric Versions" or "Extended Versions" and not mix them together. While this is possible, it is very confusing to the average user. As a workaround for the poor average user who want to upgrade P:RD within the CPAN shell, he would have to say install DCONWAY/Parse-RecDescent-v1.95.1.tar.gz The solution for this problem is to make a new release with a version number of higher than 1.940.0 which is equivalent to 1.94, the currently highest available version. So any of these would work: 1.95, 1.940.1, 1.950.0, 2.0, 2.0.0 Thanks,
I've taken over maintainership of Parse::RecDescent, and have reviewed the threads on this subject. Going forward, I plan to: 1. Ensure that $VERSION is always of the form: "MAJOR.XXXYYY" or "MAJOR.XXX_YYY" Where MAJOR is current '1' XXXYYY is always monotonically increasing, such as: 001001 001001 001002 002001 002003 002004 005001 2. Declare version as recommended in perlmodstyle: our $VERSION = "1.966_001"; $VERSION = eval $VERSION; Which ensures that $VERSION declared as "MAJOR.XXX_YYY" ends up being the decimal version "1.XXXYYY". I believe that this will meet the string/numerical version comparison requirements. If not, please educate me.