On 30/03/10 19:32, Tomáš Znamenáček wrote:
Hello!

I have a Catalyst application that I would like to upload from the
development box to the production server. Is there some kind of best
practice to do that? My requirements:

1) The process should take care of the dependencies and run the tests
    before installing. (Let’s say the deps are declared in Makefile.PL
    or Build.PL.)
2) It would be nice to keep the application isolated in one directory
    so that I can keep several instances under the same account to do
    primitive staging.

Right now I am updating the application using Git. I push from the
development box to a headless repository on the production server and
there is a hook that updates the working copy. This fails (1).

I’ve read something about local::lib, but I’m still not sure about how
to put things together. This has to be a common scenario, isn’t it? When
you are finished updating the development version, what do you call to
upload the update to the production server and what exactly happens
along the way?

We package things up into Debian-style packages, and then upload those to a local repository of packages.
Then servers can just be updated using the standard system tools (apt).
This works quite well.

You have a choice of either packaging up every single Perl dependency into a Debian package too (which is a world of pain), or installing all your dependencies into a local directory that you ship with the application. I recommend the latter.. (you'll still need to include dependencies on things like the C libraries for your database client, etc though, in the debian control file.)

_______________________________________________
List: Catalyst@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/

Reply via email to