Subject: | Change default for "preferred installer" to Module::Build |
When a module has both a Build.PL and a Makefile.PL it means the author
wrote the module using Module::Build and then provided a Makefile.PL for
compatibility purposes, either for machines which do not have
Module::Build or for automated tools which do not yet understand how to
work with Module::Build.
The Makefile.PL often does not have all the features of the Build.PL.
This is because it is often auto-generated, so any custom code in the
Build.PL is lost in translation. For example, special code to prompt
the user for configuration details. It is also because Module::Build
can do a lot of things MakeMaker cannot. For example, specify modules
only necessary for building or testing. Or run all tests in t/
including its subdirectories.
When both are provided, Build.PL is always the intended primary.
There's no reason to write a module with MakeMaker and then provide
Build.PL for compatibility. There are no tools to go from a Build.PL to
a Makefile.PL.
If you have Module::Build installed there's no reason to prefer the
Makefile.PL unless something is broken. Preferring the Makefile.PL by
default means degraded functionality. Therefore, the default for
CPAN.pm's preferred_installer should be MB.
Here's the patch.
--- lib/CPAN/FirstTime.pm.bak 2007-09-08 03:38:22.000000000 -0700
+++ lib/CPAN/FirstTime.pm 2007-09-08 03:38:39.000000000 -0700
@@ -457,7 +457,7 @@
if (!$matcher or 'prefer_installer' =~ /$matcher/){
$CPAN::Frontend->myprint($prompts{prefer_installer_intro});
- my_prompt_loop(prefer_installer => 'EUMM', $matcher, 'MB|EUMM');
+ my_prompt_loop(prefer_installer => 'MB', $matcher, 'MB|EUMM');
}
if (!$matcher or 'makepl_arg make_arg' =~ /$matcher/){