On Fri, Jun 26, 2009 at 5:08 PM, Eric Wilhelm<scratchcomput...@gmail.com> wrote: > Here's the last context I know of regarding that. > > http://www.nntp.perl.org/group/perl.module.build/2007/06/msg733.html > > Basically, some historical issues which lead us to the belt-n-braces > approach, but actually I don't think that any success at satisfying > build_requires will get you past the part where Build.PL dies for not > having a properly modern (or even installed at all) M::B. > > For an absolute guarantee that configure_requires is satisfied, the > Build.PL should probably have a "use Module::Build 0.34;" statement.
Here's my proposed approach for 0.33_05: * adding "auto_configure_requires" with default 1. When true, M::B will add itself at the current version to configure_requires unless it's already there. * things in configure_requires do not *necessarily* have to be in build_requires or requires -- there will be no warnings or dwimmery My rationale: Consider an existing M::B distro without configure_requires but that generates a traditional Makefile.PL. When distmeta runs, this is what will happen: (1) M::B added to configure_requires in META.yml (2) Makefile.PL has PREREQ_PM without any additions Point #1 is debatably good. Modern clients will ensure an up-to-date M::B is available. Older clients will not and must run Makefile.PL if M::B is not installed. If some author really detests that behavior, they have two options: (a) explicitly set configure_requires => { 'Module::Build' => 0 } -- this will ask for any version not necessarily the latest (b) explicitly set auto_configure_requires => 0 -- this will mean no configure_requires is created Point #2 is good -- adding M::B to build_requires, either automatically or by chiding the author to do so, will put M::B in PREREQ_PM, which is quite odd as it's definitely not necessary for someone relying on a Makefile.PL in the first place. On possible addition is that we could DWIM a bit more and turn off auto_configure_requires if a traditional Makefile.PL is being created. Reactions? Rebuttals? -- David