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
