Skip Menu |
 

This queue is for tickets about the Module-Build CPAN distribution.

Report information
The Basics
Id: 55909
Status: resolved
Priority: 0/
Queue: Module-Build

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

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: module needs to be mentioned in both 'requires' and 'build-requires'
Download (untitled) / with headers
text/plain 882b
At least under some circumstances, a module mentioned in 'requires' will not be available at build time. This contradicts the documented behavior and therefore is either a bug in function or in documentation, depending on the intent. An example is Marpa::HTML on CPAN. It requires the Marpa module. In Marpa::HTML 0.101_002 this is both a 'require' and a 'build_requires', and cpantesters (at this writing) reports 16 PASSes and 6 NAs. In Marpa::HTML 0.101_000 only the 'require' was specifed. Results there are 1 PASS, 9 NAs and 15 UNKNOWNs. On inspection of the cpantesters results, the additional NAs and UNKNOWN for Marpa::HTML 0.101_000 seem entirely to be the product of failure to load the Marpa module at build time. There is a thread on this in the perl.module-authors group: http://groups.google.com/group/perl.module-authors/browse_thread/thread/e3712071c1622d55#
Download (untitled) / with headers
text/plain 935b
On Wed Mar 24 14:14:08 2010, JKEGL wrote: Show quoted text
> At least under some circumstances, a module mentioned in 'requires' > will not be available at build time.
This should *never* be true. Show quoted text
> Marpa::HTML 0.101_002 this is both a 'require' and > a 'build_requires',... In > Marpa::HTML 0.101_000 only the 'require' was specifed.
The culprit here is the "use Marpa" in your Build.PL from 0.101_000. If you need a module available at Build.PL time, it must be in 'configure_requires'. http://search.cpan.org/src/JKEGL/Marpa-HTML-0.101_000/Build.PL vs. http://search.cpan.org/src/JKEGL/Marpa-HTML-0.102000/Build.PL In the latter, you have moved anything that would attempt to load Marpa.pm into an ACTION_*, which means it is no longer happening at Build.PL-time. Your build subclass can simply say "require Marpa" in the ACTION_build() method and if Marpa is listed under only 'requires', you will have no problems. Thanks, Eric


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.