Best practice for releasing Perl modules to staging and live

Ask Bjørn Hansen ask at develooper.com
Mon May 18 16:29:09 BST 2009


On May 18, 2009, at 6:22, ian wrote:

> How best to ensure different environments have the same versions of  
> Perl modules?


A CPAN module is part of the application code, so treat it as such.

We have a Perl installation with a basic "clean" perl install; no  
extra modules.  Our application has a cpan "submodule" (yay git) where  
we install all the CPAN modules we need.  This way all branches (in  
development) and releases (for staging and production) include exactly  
the module versions we need.

We have a couple helper scripts to make it easy:

CPAN shell that sets the paths just right ('CBROOTLOCAL' is the local  
application path):
http://github.com/abh/combust/blob/master/bin/cbcpan

Wrapper that starts the right version of perl (configured in a  
configuration file) with PERL5LIB set correctly:
http://github.com/abh/combust/blame/master/bin/perl

Check that we've installed the same versions of a module for all  
architectures (we deploy on Linux, but do some development on our macs):
http://github.com/abh/combust/blame/master/bin/diff_cpan_arch


   - ask

-- 
http://develooper.com/ - http://askask.com/




More information about the london.pm mailing list