- Name: Michael G Schwern
- Project Title: Automatic INSTALL.txt generation
- Synopsis: Write a module which can automatically generate Perl module installation instructions. Integrate into Module::Build and ExtUtils::MakeMaker.
Michael G Schwern
Automatic INSTALL.txt generation
Write a module which can automatically generate Perl module installation instructions. Integrate into Module::Build and ExtUtils::MakeMaker.
Benefits to the Perl Community
Most Perl modules come without module installation instructions. At most they might include the "make" mantra. Figuring out how to install a module, its prerequisites and how to get it to install into a different location than the system directory can be daunting to a newbie.
By making the generation of an accurate INSTALL.txt for modules simple and easy for authors, more modules will include installation instructions and Perl modules will be easier to install.
This makes CPAN modules more accessable, helping with a user through the first ten minutes of trying to use CPAN modules.
First stage is to write a prototype module which can do the following...
- Write a module which, when run inside a distribution directory, can write a file containing...
- The appropriate basic make or Build instructions.
- Instructions for installing into the user's home directory
- Include reference to PERL5LIB and "use lib"
- Necessary module prerequisites
- If a C compiler is necessary
- If make is necessary
- Minimum version of perl (if specified)
- Contact and bug tracking information (if available)
Then add support for this to MakeMaker and Module::Build.
- Add a create_install() option to Module::Build similar to create_readme().
- Add a CREATE_INSTALL option to MakeMaker.
NOTE: It may be easier to skip the independent module and simply code it as part of Module::Build and then port to MakeMaker. This is because a lot of the information which the prototype will have to probe for may already be known by Module::Build.
Many moons ago I wrote a program to do this called mod2readme. http://schwern.org/~schwern/src/mod2readme
I am available to begin work after June 20th. This is a straightforward, low risk project using technologies I know well.
- First alpha release: Two weeks after start.
- Stable integration with Module::Build: Two weeks after first alpha.
- Stable integration with MakeMaker: One month after first alpha.
Everything takes longer with MakeMaker.
If the project starts June 20th, then the schedule looks like this:
- First alpha release: Beginning of July
- Stable integration with Module::Build: Mid July
- Stable integration with MakeMaker: Mid August
The project is considered complete when the deliverables have been integrated into Module::Build's and MakeMaker's trunk.
I maintain ExtUtils::MakeMaker and have worked extensively on Module::Build. I think about usability problems in perl.