On 12 May 2002, Andreas Marcel Riechert wrote:

> While I still favour sending out FAIL's a also see the consistency
> problem. It's a kind of random wether the author gets a FAIL or PASS.
> >From my experience I can say, that most authors who get such a FAIL
> report will upload a fixed version in a very short time. So in practice
> our consistency problem usually goes away for most "newest version"
> modules in a short time. In theory and for a few real modules the problem
> still exists.

And also will exist for new uploads .....

> (1) Can we check reliable wether all prerequisites are set
>     in PREREQ_PM?
>     (Some routine  which does not care wether this PREREQ's are
>      locally installed or not.) ... If we find a  way to do this,
>      all our Problems are gone and we can send FAILS without problems)

This sounds possible, but perhaps involved and also not
completely reliable:
- use Module::Info, or equivalent, to build a list of what
packages the modules use (see the caveats in Module::Info about
using this);
- in some way (eg, parse 'perldoc perllocal') build a list of
installed modules, and prune from this those modules coming in a
core Perl install;
- compare the two lists and build a list of packages not
in PREREQ_PM that are not part of the core Perl.

Even with such a beast, though, there may be some testers who
don't want, on philosophical grounds, to send a failed report for
missing PREREQ_PMs. CPAN is a pretty informal community, with
relatively few absolute rules for submitting packages - register
your CPAN id, don't use a module name that already exists, and
similar. Otherwise, packages can, and do, have a wide variety of
styles for building, testing, and installing. A standard is
recommended, but allowance is made for differences; for instance,
CPAN.pm tries to accommodate packages without a Makefile.PL (see
Module::Build, where this is intentionally done).

Suppose a package requires some module, but rather than using
PREREQ_PM, Makefile.PL, if it detects the module is missing,
launches a sound clip where you hear, in the voice of either Sean
Connery or Marilyn Monroe, depending on the gender of the user
(don't ask how this is detected - you don't want to know):

    I see you are missing module FOO. I deperately need this
    module to work - please install it at your earliest
    convenience. I'll continue, but just to illustrate the
    horrible death you'll put me through if you don't
    install module FOO. PLEASE, PLEASE, install module FOO.

Probably most users, upon seeing this, would install FOO (or
perhaps, out of curiousity, continue just to see what's in store
if FOO wasn't installed, but they'd have been warned).

For me, and probably many others, seeing the message
    Can't locate Something::Or::Other in @INC ....
is functionally equivalent to the above - a minor
inconvenience, perhaps, but certainly not a failure of
the module itself.

Although many missing PREREQ_PMs are probably due to ignorance or
forgetfulness, a blanket FAIL policy on this issue doesn't
accommodate alternatives in principle, which other aspects of
CPAN tries hard to do. Such a policy, and subsequent public
declaration of failure via the web site, also, to my way of
thinking, is too author-unfriendly, especially for new authors
who may just be ignorant of PREREQ_PM - perhaps a private message
to the author pointing out the missing PREREQ_PMs would have the
same effect of getting them put into the next version. It might
not, but I don't think it's up to us to enforce this.

best regards,
randy

Reply via email to