http://www.perlmonks.org?node_id=751426


in reply to How do manage your Perl application development, build, and deployment?

I'm sure that you will get many good responses on this ... and I second the motion that you should review the existing responses under other topic-names.

One of the more easily-overlooked requirements, especially in the ubiquitous “shared web-host” environment, is deployment independence. The fact that you have deployed n applications, and have just updated one of them, should not affect the other (n-1). Directives like use lib make that much easier. And so does the nature of the language itself, being divided into packages and modules that you mix-and-match.

As you observe, Perl is fundamentally a platform-independent language, so any methods that are used have to work on all platforms. Here, the “trick” is that all of that nifty platform-independent stuff must become platform-dependent somewhere, and that “somewhere” is in the form of so-called XS code. You need a compiler in order to do that ... easily done (taken for granted, in fact) on Linux, but not-so on Windows.

(This, of course, being why “friends don't let friends drive Windows.”)   ;-D

As far as the rest of it goes, many of these topics really do fall easily under the umbrella of “deployment,” because quite frankly I defy you to make any language or operating-system “easy” without a good installer ... and yet, once you do so, “the language being used” isn't such a critical factor anymore.

Replies are listed 'Best First'.
Re^2: How do manage your Perl application development, build, and deployment?
by TGI (Parson) on Mar 18, 2009 at 16:52 UTC

    I've read many nodes that describe diverse systems over the years, and again before I posted. I didn't see anything that does what I want. I saw a collection of ad-hoc systems, each different, each flawed. Each a duplication of engineering that is kept proprietary. The question why haven't we got a good, common solution for applications? We have a good common solution for modules.

    The only thing I've seen that looks like a step in this direction is Shipwright. I haven't had a chance to fully dig in to the docs and experiment with it, so I can't comment on how good it is.

    If there is a particular node that you think describes a great system, please post a link.

    Are our build systems our crown jewels? Do we keep them secret to gain competitive advantage? Or are they too wound up in internal politics and history to be cleaned up enough that we wouldn't be too embarrassed to share?


    TGI says moo