[Catalyst] Configuration Management in Continuous Integration environments

Trevor Leffler tleffler at uw.edu
Wed Dec 8 19:51:41 GMT 2010

Not exactly a Catalyst-specific query, however...

Right, certainly loading all the deps onto your CI at the system/global 
level doesn't work when you've multiple projects, branches building that 
have conflicting dependency requirements.

I've seen this problem solved by the "toolchain" method of committing 
deps along with each project so that the deps move along with the 
software they support.  You could include both the source tarballs and 
the install dir(s) in your commits.  Some purists condemn this, pointing 
to, e.g. DRY, but it can get the job done, which I think is what counts 
at the end of the day.

I've also seen CI systems address this by creating their own entire 
build environments *at build time* -- see the Fedora Project's Koji. 
Again, this allows for multiple projects to build without trampling on 
one another's deps/envs.  One downside is that your builds can take long 
while to complete.

For faster build times, you may find the toolchain approach or even 
having multiple build systems works better for you.


Nicholas Wehr wrote:
> Hello everyone,
> First off, beware, I'm a bit nutty when it comes to configuration 
> management. I've recently deployed a Hudson instance and wanted to move 
> some Catalyst projects into it. What I'd like to solicit feedback on 
> here is: /how are you managing your Perl dependencies in these build 
> systems? /Here's some goals I have:
>     * do not assume any non-core modules are installed on the build platform
>     * use specific version of modules in the built product - product is
>       a Catalyst website for example (@inc or use lib)
>     * need to archive specific version of CPAN dependencies offline;
>       this means we can recreate a product without an internet connection
>     * allow for the rebuild of dependencies when the build platform has
>       changed; this is meant to address a platform change from 32bit to
>       64bit
> What I'm looking at is either using local::lib or PREFIX & LIB w/ cpan. 
> What do you think?
> Thanks in advance,
> -nicholas
> ------------------------------------------------------------------------
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/

More information about the Catalyst mailing list