in reply to module management in enterprise?

my guess is that there won't be many module upgrades.

I would guess your guess is wrong. Consider what will happen if a legacy application requires one version of a module and a new application needs a new version. This is more common than you might think - some CPAN authors aren't as careful about backwards compatibility as others!

Of course, I imagine it comes as no surprise that I prefer the Krang method. It's worked great for us and I definitely plan to use it on any projects I get involved with in the future. I suppose it's a matter of personal taste, but I find packaging an application as a self-contained entity is quite clean. External dependencies and complex setup procedures seem ugly to me...

-sam

Replies are listed 'Best First'.
Re^2: module management in enterprise?
by Qiang (Friar) on Apr 05, 2007 at 03:15 UTC
    Consider what will happen if a legacy application requires
     one version of a module and a new application needs a new
    version. This is more common than you might think - some 
    CPAN authors aren't as careful about backwards compatibility as others!
    in that case, what about i do: update the module from the central location. and in the legacy app, install the older module in local lib ($Project_Root/lib) and add a use lib '$Project_Root/lib' to make sure it continue use the older module.

    back to the krang way, I have looked at Krang many times recently and learned a lot about building large Perl app. Krang includes src of all modules and the krang_build makes it easy to build krang from scratch. the Krang::Platform looks easy enough to adopt to our environment.

    but I don't feel like building every modules out of src for every release or rebuilding a module for different app. instead, I would like to compile the module once, all the prerequsite modules and reuse them in other apps (copy the modules to the app's local lib) when approriate.

      Sounds like you're going to do both then - have global shared modules and local copies as necessary. To me that seems ugly and likely to be error-prone. You'll probably find out you need a local copy only after things break - after the module you want to copy is overwritten! Not an insurmountable problem by any means, but something I don't ever have to worry about...

      -sam