We moved our development platform to a new Ubuntu 9.10 machine yesterday. One of the things I like about Perl is being able to specify dependencies so in a single Makefile.PL for our application we list 50 or so modules and their versions. All we need to do to get our Ubuntu box loaded with the "right" Perl modules is untar our applications package and run "cpan ." and magically all our dependencies are sorted out and installed; this probably leads to hundreds of modules being installed. On the down side, cpan installs the latest and greatest (or not) or each module and here is where our problem with Pod::Simple::HTMLBatch
We were using 3.05 and now we have 3.10. Of course, normally this doesn't bother us as generally bugs are fixed or modules are made faster, add new features etc. Yesterday we were bitten by the upgrade to Pod::Simple::HTMLBatch because we convert the pod in our modules to HTML and they are served up via a Perl web server but all of the modules had lost their normal index (table of contents) and the styles. Not ever having needed to look at the innards of the Pod::Simple::XX heirachy it took way to long before we found the problem and reported it at since upgrade index not created
. The lack of our styles was easier to find since this was documented in the Changes file; "changed style sheet names to 8.3 syntax".
So what if anything is the lesson to be learned here. It would be easy to say read the Changes files of modules before upgrading but in this case that would have taken me days just to do the top dependencies never mind the hundreds of next level dependencies. How I wish cpan had a mode where it downloaded the exact version you specify instead of this version being a minimum requirement.