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