[Catalyst] Deploying with Perlbrew

Stephen Shorrock sms67 at cam.ac.uk
Wed May 16 13:19:43 GMT 2012


On 15/05/2012 14:57, Bill Moseley wrote:
> On Tue, May 15, 2012 at 8:18 AM, Tobias Kremer<tobias.kremer at gmail.com>wrote:
>
>> We played around with building .debs for all dependencies (mainly
>> because our ISP understandably likes packages), but it's a total PITA
>> IMHO. So we went the local::lib route and never looked back. That way
>> we can distribute and deploy all dependencies with our app. It also
>> makes setting up a development environment totally easy, because you
>> just install local::lib, clone the app git repository (which includes
>> all dependencies) and are pretty much ready to go (assuming that your
>> dev environment is compatible with your production environment which
>> is part of the reason we develop with VMs).
>>
> Our situation is worse than I wrote about, because it was decided by some
> that development should look like production to avoid surprises at release
> time.  I'm not sure how that's ever possible, but I digress. So, even the
> dev boxes use RPMs for modules.  Talk about a PITA -- especially on a
> machine used by multiple developers.
>
> I'm trying to get all our in-house code into a local CPAN and have each
> developer use local::lib or even Perlbrew (as it isn't really any more
> difficult than local::lib).   I want to avoid a shared local::lib because
> that locks development and production to the same platform, which isn't
> necessary.   All I care about is a good test suite and that it passes.
>
> For a release (from development) my plan is to have a developer (because
> they know the code) build a fresh Perl with Perlbrew and do essentially a
> bare-metal install and run all tests on the target platform and finally run
> make install of the app.  Exactly as they would do in their own dev
> environment.   Then the operations team can package however they want (RPM,
> tarball, rsync) and place on the QA machines for testing and then later to
> production.  I'm looking for a clean decoupling of development from
> operations.
Apologies if this is off topic

I'm interested in how you manage your local CPANs for the various 
versions of environments (multpiple dev, production) you might have, 
when your developers install their environment via and your local mirror 
are they using any autobundle files to load the require packages? and if 
so do you use cpan, cpanp or other.  I'm currently trying to organise 
our environments but for some of the perlbrew Perl versions (5.12.4) my 
autobundles don't cleanly install, and I'm considering whether this is 
actually a dead-end

Thanks in advance

Stephen



More information about the Catalyst mailing list