On Jun 17, 2005, at 10:02 PM, Michael G Schwern wrote:
On Fri, Jun 17, 2005 at 10:53:44AM +0100, Robert Rothenberg wrote:
CPANPLUS issues FAIL reports when there is no C compiler, which irks
module authors who feel such reports make their module look bad.
Some feel that CPANPLUS should detect this and not send a report,
others
feel it should send a report, but with a different grade: NA or some
new
grade such as UNGRADED, since there are advantages to testing what a
Build will do if there is no C compiler.
To clarify a common misconception: CPANPLUS doesn't actually know what
went
wrong, just that *something* went wrong and the command was unsuccesful.
From EU::MM we get a non-zero return value from the system() call (and
we've
captured the output to include in the test report).
From Module::Build we get an exception thrown that lets us know 'it'
went
wrong. Sadly, no output has been captured -- see this bug report for
details:
https://rt.cpan.org/NoAuth/Bug.html?id=9793
Another idea is to ExtUtils::MakeMaker or Module::Build to refuse to
try
and build a module if a C compiler is required (and update CPANPLUS to
detect this). This seems connected to the larger issue of NA reports
when libraries or applications are missing.
Yes, this seems to be the way to go. Module::Build improves its
external
dependency detection and reporting (it already has a lot of the
intrastructure to declare and detect external deps). The only change
to
CPANPLUS is to better detect these new dep failures and act
appropriately.
If they can be published by Module::Build in an unambiguous way, that
might
be an option. Parsing the output of an error is not, as far as i'm
concerned
-- it would be the responsibility of the installer to tell us why it was
unable to install.
The same work should be done on MakeMaker but it would be too broad
(MakeMaker
has none of the existing detection and reporting tools) and introduce
far
too much instability (because its make and shell, not Perl) too late
in the
game. That part gets a resounding "no".
That means for 90% of the cases (as that's the group using EU::MM),
whatever we
decide here is not going to help much. I'd argue that in that case, an
overhaul
of the reporting system might not bring us the joy we're hoping for,
and may not
warrant the extra effort required to make it work at this time.
--
Jos Boumans
From kid's Superman costume for Halloween (stitched into the cape's
tag) -- "Warning: Use of This Device Does Not Enable
Wearer To Fly."
CPANPLUS http://cpanplus.sf.net