Skip Menu |

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 75758
Status: resolved
Worked: 12 hours (720 min)
Priority: 0/
Queue: ExtUtils-MakeMaker

People
Owner: ETJ [...] cpan.org
Requestors: mhasch [...] cpan.org
Cc: ether [...] cpan.org
AdminCc:

Bug Information
Severity: Important
Broken in:
  • 6.59
  • 6.62
  • 6.63_02
Fixed in: 7.05_01



Subject: clean_versions throws version ranges away
Prerequisite version ranges like this: PREREQ_PM => { 'Math::BigInt' => '>= 1.58, != 1.99', }, ...trigger an "Unparsable version" warning and are treated as unversioned prerequisites in meta files. Thus valuable dependency information is thrown away. EUMM should accept the same kind of version information CPAN::Meta does. -Martin
Subject: Re: [rt.cpan.org #75758] clean_versions throws version ranges away
Date: Tue, 13 Mar 2012 18:51:35 -0700
To: bug-ExtUtils-MakeMaker [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
On 2012.3.13 5:54 PM, Martin Becker via RT wrote: Show quoted text
> EUMM should accept the same kind of version information CPAN::Meta does.
I'm open to that, especially if the prereq parsing can be handled by CPAN::Meta or one of its dependencies we already have bundled. I'd rather avoid duplicating the version range parsing code.
Subject: Re: [rt.cpan.org #75758] clean_versions throws version ranges away
Date: Wed, 14 Mar 2012 11:15:42 +0100
To: Michael G Schwern via RT <bug-ExtUtils-MakeMaker [...] rt.cpan.org>
From: Martin Becker <mhasch-cpanbugs [...] cozap.com>
On Tue, Mar 13, 2012 at 09:51:51PM -0400, Michael G Schwern via RT wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=75758 > > > On 2012.3.13 5:54 PM, Martin Becker via RT wrote:
> > EUMM should accept the same kind of version information CPAN::Meta does.
> > I'm open to that, especially if the prereq parsing can be handled by > CPAN::Meta or one of its dependencies we already have bundled. I'd rather > avoid duplicating the version range parsing code.
This is fairly straightforward with a recent version of CPAN-Meta such as CPAN-Meta-2.120630: Show quoted text
----- cut here ----- use CPAN::Meta::Requirements; my $prereq = 'Math::BigInt'; my $required_version = '>= 1.58, != 1.99'; my $pr_version = '1.99'; my $req = CPAN::Meta::Requirements->new; $req->add_string_requirement($prereq => $required_version); if (!$req->accepts_module($prereq, $pr_version)) { warn sprintf "Warning: prerequisite %s %s not found. We have %s.\n", $prereq, $required_version, ($pr_version || 'unknown version'); }
----- cut here ----- By the way, I'd also like EUMM to arrange for another run of the build requirements check in a make rule. That way module authors could trust BUILD_REQUIRES to reliably prevent their distro from being built under certain conditions. Warnings alone may get overlooked by admins doing a manual installation, and the state of available modules may change between Makefile.PL runtime and actual build time. -Martin
RT-Send-CC: mhasch-cpanbugs [...] cozap.com
Version ranges implemented as of 7.05_01. Show quoted text
> By the way, I'd also like EUMM to arrange for another run of the build > requirements check in a make rule. That way module authors could trust > BUILD_REQUIRES to reliably prevent their distro from being built under > certain conditions. Warnings alone may get overlooked by admins doing > a manual installation, and the state of available modules may change > between Makefile.PL runtime and actual build time.
This is an interesting idea, please file as a github issue on EUMM's repo.