Really more of a tourist map like you get at a hotel than a roadmap.  Just 
wanted to discuss the near future plans for MakeMaker.

First, MakeMaker needs a stable release.  Its really close to one with only two 
outstanding issues.  They're mostly things changed since 6.30 that broke 
existing modules.  See rt.cpan.org for details.
21539  command line args completely override ones from Configure and break 
things like Wx.pm
17224  PL_FILES issue effecting certain versions of Perl on Windows

If there's anything critical I'm missing, let me know.

The next stable release will accomplish...
------------------------------------------

1) Critical bug fixes.

Look at http://svn.schwern.org/svn/CPAN/ExtUtils-MakeMaker/trunk/Changes to see 
what's already been done.  AFAIK all the fixes in bleadperl have been 
integrated, let me know if I missed something.  I've gotten ok's from Windows 
and VMS.


2) Compatibility with Module::Build.  *DONE*

This was primarily documenting INSTALL_BASE and the new FAQ entry about getting 
MM and MB to install to the same place.


3) Kick out satellite modules.  *DONE*

ExtUtils::Install, Manifest and Command are now their own distributions.  
MakeMaker still ships with them but they are not indexed and will not install 
over a newer or equal version.



Once 6.31 is out the pressure is off.  Some minor bug fixes and features can be 
addressed but mostly I want to focus on making MakeMaker installation much 
friendlier.


There's some minor bug fixes and features which need attention
--------------------------------------------------------------
21282         Facilities to customize the generated META.yml file.
20145, 20144  Two minor fixes for building Pugs on Windows.
16375         Possible Cygwin issue with /cygdrive


Here's a brain dump of the user-oriented projects.  Please let me know if 
you're interested in them.


The documentation needs a complete rewrite
------------------------------------------
It stinks.  Its jumbled.  Its out of date.  Its sometimes incorrect.  Its a 
nightmare for a new user.

It would be split up into several parts according to the desire of the reader:
* Module installation (basic, advanced, reference, FAQ)
* Module authoring (basic, advanced, reference, FAQ)
* Module packaging (ie. best practices for making RPMs/debs out of Perl modules)
* MakeMaker patching
* MakeMaker reference

As I don't want to have to write this all out myself, I'll probably sketch out 
the basics and then resurrect my POD Wiki in the hopes of getting collaborative 
writing.
http://schwern.org/podwiki/


.makemaker.rc
-------------
A MakeMaker config file containing default arguments for Makefile.PL and 
(maybe) various make targets so you don't have to type it into the command line 
all the time.  This should make installing modules without a CPAN shell a bit 
less tedious.



A command line dependency resolver
----------------------------------
ExtUtils::AutoInstall has a handy feature where it will download and install 
its dependencies for you.  This is very handy if you cannot, for whatever 
reason, use the CPAN shell (for example, you are in the middle of developing a 
new version of the module).  Unfortunately the module author must use 
ExtUtils::Install themselves.  It would be handy to have a command line version 
which scans the module's dependencies (by scraping the Makefile as MakeMaker 
does) and installs them.



CPAN shell config wizard
------------------------
The configuration of MakeMaker and Module::Build in the CPAN shells can be 
simplified by offering a user-oriented configuration in addition to the current 
developer-oriented one.  For example, rather than asking what arguments you'd 
like to pass to the Makefile.PL and then again for Build.PL it can simply ask 
things like "Would you like to install modules into your home directory?",  "Do 
you want to uninstall older versions of your modules?",  "Do you need to pass 
any extra flags to your C compiler?"  and it figures out the appropriate args 
for both MakeMaker and Module::Build.



Make CPAN shells gracefully handle MakeMaker dependencies
---------------------------------------------------------
If a module depends on a newer version of MakeMaker than the one installed it 
should note this, install the newer version and then rerun the Makefile.PL.  
AFAIK right now the Makefile.PL does not get rerun after the dependencies are 
resolved.



Ship MM with your module
------------------------
A la Module::Install, it would be handy to have an easy way to ship a copy of 
MakeMaker with your module thus allowing module authors to take advantage of 
new MM features and bug fixes without making their users upgrade a major 
subsystem of Perl.

Reply via email to