Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Best Build/Test System?

by bennymack (Pilgrim)
on Aug 15, 2007 at 00:34 UTC ( [id://632631]=perlquestion: print w/replies, xml ) Need Help??

bennymack has asked for the wisdom of the Perl Monks concerning the following question:

Dear Monks,

I'm working on something along the lines of Care and Feeding of Large Web Applications. Specifically, "Managing large sets of CPAN modules, some with local changes.", "Creating an automated build system.", and "Testing strategies for a complicated database application and a modern web UI."

My question for you all *cough*perrin*cough* is what is a good starting point for this type of thing? Is there something available pre-built that I can start hacking on? Or should I just start with a basic CPAN style build module such as ExtUtils::MakeMaker, Module::Build, or Module::Install, and go from there? If so, what's the best build module currently? Something to handle tests and pre-requisites. And yet flexible enough to have additional functionality outside of its original scope of design built or added on top of it.

Thanks in advance!!!

Replies are listed 'Best First'.
Re: Best Build/Test System?
by perrin (Chancellor) on Aug 15, 2007 at 01:49 UTC

    You rang? :)

    I think you're talking about a couple of different things here: a test runner framework and a build system. I also think the build for a large application with bundled dependencies is beyond the scope of module-oriented systems like Module::Build and MakeMaker. (I haven't looked closely at Module::Install.)

    For the build system, you could start by taking the one from Krang. It's essentially the same as the one I described in the talk: automated build and install of locally bundled CPAN modules, Apache, and mod_perl into a non-system directory.

    If that doesn't suit your fancy, you can probably get CPANPLUS to install local modules, although I haven't tried. I was also intrigued by pip. In either of those cases though, you will have to build something yourself to deal with the fact that many popular modules ask interactive questions during their installation. We handled this with Expect, and I think you could plug that into pip without too much trouble.

    In terms of a test runner, we basically took what MakeMaker does for "make test" and modified it to suit our purposes. You may prefer to steal the Module::Build stuff there, or some combination of these and the prove command. Our issue with prove was the need to do some setup before running tests, but maybe you can find a clever way to integrate that with prove.

    That's sort of a general answer. Is there something specific you're having trouble with? I do suggest taking a look at the Krang system if you're just wondering how this stuff I described looks in real life.

      That's sort of a general answer. Is there something specific you're having trouble with?

      No, that's great! I'm really just gathering info. Having all of these different possibilities to investigate is exactly what I need. Thanks a bunch!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://632631]
Approved by xdg
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2024-03-29 01:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found