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.
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.