# from David Golden
# on Saturday 30 August 2008 05:01:
>* If Makefile.PL or Build.PL exit with a non-zero exit code, a
>distribution is graded FAIL and a report is sent (but see "downgrades"
>below)
>
>* If they exit with a zero exit code, no grade is assigned and CPAN
>and CPANPLUS proceed to the next step (make/Build)
>...
>* "use 5.XXX" errors ...
>* The phrases "OS unsupported" or "No support for OS" are detected ...
>* missing *Perl* prerequisites ...
So, there is a mechanism for detecting die() messages, but it doesn't
support any sort of "Missing external prerequisite" flag?
I understand that a crash in Build.PL would indicate some kind of
general error rather than a specific refusal to continue, but why must
we remember to die in one case and exit in another? Would some kind of
general-case prefix in the error message be a better way to handle this
and future issues?
have_launcher() or
die "STOP: you need to plug in the rocket launcher";
Of course, one could add more specific checks, but I think something
like m/^STOP: / on stderr from Build.PL should suffice to mean a
general-purpose downgrade to N/A.
And it has the benefit of being somewhat meaningful to the actual user?
It would also be nice to have at-a-glance reporting of what exactly FAIL
means. Did it fail to start, fail to build, or fail during the tests?
For that matter, even N/A is a bit ambiguous, no?
Thanks,
Eric
--
As an old bass player friend of mine used to say: throw money, don't
clap.
--Tony Parisi
---------------------------------------------------
http://scratchcomputing.com
---------------------------------------------------