On 12 May 2002, Andreas Marcel Riechert wrote:

> Autrijus Tang <[EMAIL PROTECTED]> writes:
>
> > Same here. I'd argue that for the detectable "Insufficient
> > PREREQ_PM" and other common errors, we should still send
> > FAIL, but with a more helpful message as to how to correct
> > the problem (like the one I've written for the UNKNOWN report
> > of modules that did not specify their test suites, as included
> > after __DATA__).
>
> I second that.

That would be helpful, especially for authors not aware of
PREREQ_PM. For such people, a report saying only that a
prerequisite is missing would probably not trigger to them that
this is something they can address within Makefile.PL.

>
> Just from my experience:
>
> I have no idea how many FAILS I have sent out because of the missing
> PREREQ_PM problem, but probably more than 50. Maybe even 100.
> Usually, after I had sent out the FAIL report (close to 100% of the)
> authors load up a corrected version in a very short time. Fortunately
> it seems like authors care on FAIL's.
> I have sent out as well a lot off PASS reports were I still remark
> some problems I see. Unfortunatly many authors don't care about this
> reports because they already got the "PASS".
>
> While I cannot prove it, I fear a sending out a PASS for modules with
> missing PREREQ_PM could end up with authors don't care to fix this
> little trivial problem.

the use of PREREQ_PM should be encouraged, but there are
circumstances where it might be neither trivial nor necessary:

- if some module is required, it may be some work to discover
what's the minimal version needed; blindly specifying any version
may cause problems, while blindly specifying the most recent
version may unwittingly exclude otherwise acceptable systems.

- there may be some non-trivial set of conditions that must be
met before requiring a module.

- if a required module was recently added to the core, you'd need
to find out when that was done, so as to have a proper PREREQ_PM
for older perls.

- some modules take you through a dialogue at the Makefile.PL
stage to discover needed or desired dependencies - for these,
PREREQ_PM may not be needed, as far as the user is concerned.

- required modules may be specified in other ways than through
PREREQ_PM - for example, 'use Apache::test;' is used in some
Apache::* Makefile.PLs, which has the same functionality, for the
user, as requiring mod_perl.

- and then sometimes the prerequisites are just laid out
in the README and/or INSTALL file.

The point here is that CPAN, by design, has very few hard and
fast rules for how a package is put together, in part to allow
for some of the things above. I think the use of PREREQ_PM falls
in the category of being highly recommended but not required. But
this is starting to border on philosophy ...

best regards,
randy

Reply via email to