On Fri, Dec 10, 2010 at 5:03 PM, David Christensen
<dpchr...@holgerdanske.com> wrote:
> I don't produce a meta.yml in my distributions.  It's my understanding that
> the CPAN indexer does that for me after I upload a distribution tarball.

It does not.  It's your responsibility to include META.yml.
ExtUtils::MakeMaker will generate it for you since EU::MM 6.46 or so.

> It's my understand that PREREQ_PM is for specifying external modules needed
> once the distribution has been installed and is put into operation.

Correct.  If you need modules available to *run* the Makefile.PL,
those need to be included as "configure_requires" in the META file and
recent CPAN/PLUS/minus will ensure they are available before running
Makefile.PL.  You can conditionally add them as arguments to EU::MM
like so:

  use ExtUtils::MakeMaker;

  my %WriteMakeFileArgs = (
    # ... normal stuff here
    CONFIGURE_REQUIRES => {
      'Some::Prereq' => 1.23,
    },
  );

  delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
    unless eval { ExtUtils::MakeMaker->VERSION(6.52) };

  WriteMakefile(%WriteMakefileArgs);

That will let you add it to configure_requires in META when you build
the distribution, but not breaks things for end-users trying to
install your modules.

>> Sounds like they should be in build_requires, not requires.
>
> That sounds like Module::Build stuff:
>
>    http://perldoc.perl.org/5.10.0/Module/Build/Compat.html

Recent ExtUtils::MakeMaker supports BUILD_REQUIRES, with the same
caveats as CONFIGURE_REQUIRES.

> I've been using ExtUtils::MakeMaker for years and it has met my simple
> single-module distribution needs.  But as I attempt to extend the tool and
> use the extended tool for sets of distributions, the going is getting tough.
>  I'm wondering if I should upgrade, and to what -- Module::Install,
> Module::Build, or Dist::Zilla?

C.f. 
http://www.dagolden.com/index.php/1173/what-tools-should-you-use-to-create-a-cpan-distribution/

Regards,
David Golden

Reply via email to