For easy distribution of our applications we are trying to create an automated tool for collecting modules and packaging them as a binary release.
Here is a list of items I gathered we should do.
I am sure most (if not all) of this is already available in existing tools. I just don't know in which tools.
So I need your help to find the relevant CPAN modules that can help me build this tool for our release management.
- List the version of Perl we would like to use. (ok, this will be done manually)
- List a bunch of modules we need with version numbers (a prereq file) (this is also done manually)
Here starts the automatization:
- Pull perl source, create a new perl installation
- Pull all modules with the listed version, (if needed go to backpan to find the right version)
(warn if had to go to backpan) (warn if there are newer versions on CPAN)
- Use a local flat directory for both the perl source code file and the modules.
This would allow downloading some of the files (and/or caching them) and to add locally
created modules.
- Check dependencies of the modules and if they are all satisfied
- Fetch the license information for all the modules and make sure they are of a set
of given licenses approved. (e.g. gpl is not approved but gpl+artistic (aka. perl) is ok.
- Check if each individual module+version was approved by legal.
(This information might be taken from some configuration file or using a
callback developed by the local engineers to fit the local interface to the legal department)
- Install all the modules (into the @INC of perl or to a separate directory PREFIX=bla LIB=blabla)
- Report if any failures encountered.
- Let me run the whole thing (or part of it) again with a new set if modules and/or versions
of the modules and upgade the modules as needed or warn me if I already installed a
module and now I am trying to install an older version.