Best practice for releasing Perl modules to staging and live
Paul Johnson
paul at pjcj.net
Tue May 19 15:22:59 BST 2009
On Mon, May 18, 2009 at 04:03:19PM +0100, ian wrote:
> Paul Johnson wrote:
>> On Mon, May 18, 2009 at 02:22:09PM +0100, ian wrote:
>>
>>> How best to ensure different environments have the same versions of
>>> Perl modules?
>>
>>> Any other methods that should be considered?
>>
>> Pick a packaging system - preferably the one which is native to your OS.
>> Build your packages on your development system. Only install packages on your
>> test and prod systems.
>>
> Are you advising to (re)build CPAN Perl modules this way, or are you
> just describing what to do with our own Perl modules?
>
> One company I worked at did just this for CPAN modules, but it was a
> many-day exercise to work out all the dependencies of (for example)
> Catalyst and to build them all into Debian packages.
The way I do this is to build perl and all the modules I need on the
development machine. Then I package up the whole lot as a single
package. The application itself is also packaged up (in my case into a
number of separate packages, but that it not important).
This way, there is no need to worry about (module) dependencies because
I am packaging my perl environment as a whole. I am never going to
update just a single perl module without rebuilding the entire package.
Building everything myself also ensures that I have complete control
over how it is built. You could use the perl and cpan modules as
packaged by your vendor, but for anything you care about I would suggest
building your own.
--
Paul Johnson - paul at pjcj.net
http://www.pjcj.net
More information about the london.pm
mailing list