When smoke-testing fails

drhyde on 2007-04-18T16:54:29

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.


Oh really?

Alias on 2007-04-19T02:23:46

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.

Re:Oh really?

drhyde on 2007-04-19T08:40:17

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.