ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> perl5-porters
perl5-porters
CPAN and module VERSION numbers generated from CVS/RCS
by David Dyck other posts by this author
Jul 24 2001 5:20PM messages near this date
perl@11467 | Re: CPAN and module VERSION numbers generated from CVS/RCS
( I directed this to comp.lang.perl.modules as well as p5p,
  until I here where the 'appropriate' place to discuss this
  would be)

I'd like to start a discussion on what the best
way to use VERSION numbers numbers that are generated
from RCS or CVS Revision numbers and how get CPAN to compare
them better.  (the problem seems to arise when the new revision
number has more digits than the earlier version).

perldoc perlmod suggests the following example
   $VERSION = do { my @r = (q$Revision: 2.21 $ =~ /\d+/g);
	sprintf " %d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker

This might fix the problem that I am seeing from
 /usr/local/bin/perl -e 'use CPAN; CPAN::Shell-> r;'

where
/usr/local/bin/perl -e 'use CPAN; CPAN::Shell-> r;'
Package namespace         installed    latest  in CPAN file
DBI::DBD                      10.10      10.9  T/TI/TIMB/DBI-1.18.tar.gz

by converting the 10.9 to 10.09, but it doesn't fix the case
when the version is bumped from 10.99 to 10.100.
The problem of changing the number of digits in the
version string still exists.

I am also surprised that perlmod suggest only 2 digits, but
some of the code in CPAN seem to suggest 3 digit version numbers.
(perlmodlib suggests "at least two digits", and to not
 use a "1.3.2" style version.  Exporter also suggests using versions
 numbers with at least 2 decimal places if you use the default require_version)


I looked into ExtUtils::MM_Unix::parse_version
 (pulled in from ExtUtils::MakeMaker)
as well as
    CPAN::Version::vcmp,
    CPAN::Version::vgt,
	# vgt says "v10.10" >  "v10.9, and v10.10 > v10.9
    CPAN::Version::vstring,
	# I like how vstring uses pack "U*", split /\./, $n;
	#  to extract a version number "v10.9" in a string
	#  into a v10.9 unicode character v-number.

It looks like CPAN's CPAN::Shell-> r would handle
"v10.9" and "v10.10" and not report that version 10.9
was newer that version 10.10, but just how far should
a module author have to go.  I'm not sure how
compatible this would be with the Exporter module.

Also, while CPAN goes to the trouble to deal with
version strings beginning with "v", Exporter::require_version only does
a numeric conversion.

I'd like to here thoughts on how this inconsistency
could be resolved, and again, how to work best with
VERSION strings that are derived from RCS/CVS Revisions numbers.

Thanks,
  David Dyck
Thread:
David Dyck
Johan Vromans
Jim Cromie
John Peacock
Graham Barr
Elaine -HFB- Ashton
Michael G Schwern
Ronald J Kimball
Michael G Schwern
John Peacock
David M. Lloyd
Ronald J Kimball
Elaine -HFB- Ashton

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved