Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

drhyde (1683)

drhyde
  (email not shown publicly)
http://www.cantrell.org.uk/david

Journal of drhyde (1683)

Wednesday April 18, 2007
11:54 AM

When smoke-testing fails

[ #33023 ]

My CPAN-testing environments have the absolute bare minimum of modules installed. This finds packaging errors where an author has not declared all his pre-requisites. What it doesn't find is errors like where an author will optionally use a module if it's installed, but is insufficiently rigourous about making sure that what's installed is new enough.

My smoke-testing environment will either have no module installed or will have the latest and greatest version from the CPAN, because if I lack a dependency I automatically install it (and its dependencies, and their dependencies, and so on).

But this doesn't catch errors where an author will use (eg) Pod::Coverage if he can find it (so it's optional, not a pre-requisite), but he actually requires version 0.18 when I've only got version 0.15. Sadly, I don't think there's any way of automagically testing for this sort of bug.

Disturbingly, the module I just caught out doing this - when I tried to upgrade it on one of my production machines, not my testing machines - is probably the single most important module in the perl world. I shall refrain from mentioning it by name to spare the author's blushes, but if it can happen there, then I dread to think how many other modules have the same bug.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • strict.pm makes optional use of some module? :)

    I'm guess it's possibly CPAN.pm, but I'd rather know than not.

    We're all big boys, we can handle a little criticism.
    • You're right, it's CPAN.pm. Its tests break if you have an old version of Pod::Coverage installed. So the module itself will work fine, once you realise you have to force install it.