Someone needs to take jwz aside...

Mark Overmeer mark at
Thu Apr 21 09:26:45 BST 2011

* Dirk Koopman (djk at [110421 08:08]:
> On 20/04/11 23:17, Peter Edwards wrote:
> >Imagine you're supporting a 3 year old code base that needs specific
> >versions of DBIx::Class, Catalyst, Moose and Class::MOP to make it run, and
> >when you do a upgrade via yum or apt-get or cpan random things break in your
> >regression tests and you don't have the budget to go fix all of them. (No,
> >that's not where I work now but it is a real world situation.)
> Which is a pretty serious indictment of CPAN and the attitudes of
> the people that "maintain" software there.

CPAN was never made to maintain software. It is made to distribute
software. When you upload something to it, there is no warning that
you will become responsible for its future.

In my experience, any upgrade will cause some headeach. Not only upgrades
of Perl modules. Gladly there are regression tests to warn you at an
early stage.

> How can anyone expect businesses to use perl and CPAN when stuff is
> likely to break (sometimes big time) when one upgrades the
> toolchain?

One of the weak points of CPAN is that you can only install the latest
version of a module. One of the reasons for that is the 02packages list
which is used to figure-out which distribution (tar.gz) is needed for
a certain module (pm).  There can only be one dist per pm.

So, you need to set-up your own local archive using cpanmini or cpansite
with the versions you prefer on your systems. Or: fix the versions of the
yum/apt packages you get installed by collecting those yourself...  Open
Source tends to say "last is best", where serious system administrators
say: everywhere the same is best.

> Why does stuff on CPAN so frequently not maintain
> backward compatibility?

You do not only have to take care about your own code, but also about
Perl and about the code of all dependencies. Cpantesters helps a lot,
but only after you have uploaded a broken version.

As demonstration of cpan6, I have created a full backpan archive, where
you can get the 02packages of any day in history. So you can then say
"install DBIx::Simple with the knowledge of 2001-02-12 as yum"
Large parts of the code is ready... still needs a few days work.

       Mark Overmeer MSc                                MARKOV Solutions
       Mark at                          solutions at         

More information about the mailing list