I have yet to come up with a satisfactory way to manage the development, build, and deployment of my Perl applications. I'd like to hear how you have solved this problem and/or what you would like to have in an application build system that you don't have now.
Please describe your application type (is it a web app, does it run on a server, or do you bundle it using PAR or PerlApp so that you can run on perlless systems).
Key things a build system should provide:
- Control of libraries.
- It should be possible to check a library distribution out into my dev directory to use it in my build.
- It should be easy to execute perl with an @INC value that will use the appropriate directories.
- It should be possible to get a list of modules that are being sourced from the system perl install.
- Makefile/Build integration
- It should be easy to do a global test across the entire application by issuing only one make test or similar command.
- Version control friendly
- structure should not interfere with normal usage of CVS, SVN and other version
- Cross platform
- System should operate on Win32 and Unix derived systems at minimum.
- Ideally, tools should function identically in all places where perl operates.
- Single Perl install
- It should not be necessary to install perl into a special directory as part of setting up the environment.
- Easy start up
- Starting an application should be a mostly automated process. Something along the lines of Module::Starter or h2xs should be available to layout a basic structure and create any standard files.
Cross-posted at: Stackoverflow