On Sat, Dec 4, 2010 at 2:22 PM, John M. Gamble <jgam...@ripco.com> wrote:
>> Module::Build -- this is the 'pure perl' alternative.  It is very easy
>> to customize compared to EU::MM but you can't rely on users having a
>> new enough Module::Build for any given feature unless you target Perl
>> 5.10.1 (which added the ability for CPAN/CPANPLUS to bootstrap tools
>> you need *before* running Build.PL)
>>
>
> What features do you mean? I shifted over to Module::Build when I was still
> using Perl 5.6.
> My packages are not complicated (single .pm file; pure perl; the
> "create_makefile_pl"
> set to 'traditional' for non-Build users), so maybe there's something else?

For a simple distribution, Module::Build with a 'traditional'
generated Makefile.PL is a good option.  (Though older
Module::Build::Compat's were rather buggy, as long as *you* have a new
M::B when you generate the traditional Makefile.PL, things should work
fine.)

However, unless you're doing some customization, it doesn't really
matter whether you use it or ExtUtils::MakeMaker.  If you want to use
newer features, like 'share_dir', then your end users need to have an
up-to-date Module::Build and that is only possible if they have
up-to-date CPAN/CPANPLUS or if they are running 5.10.1, which came
with sufficiently modern CPAN clients to respect the
'configure_requires' key.

If you do want things like share_dir, and if you really want to avoid
bug reports from people with out of date M::B, then M::I offers a
better, backwards compatible approach.  (As do Dist::Zilla's generated
Makefile.PL's, for the most part)

> Huh. I would never have considered Module::Build complicated (but then
> again, I don't have complicated modules).

It's not that it's complicated, but I found that M::B makes life
easier for authors, at the occasional expense of end users who don't
have the right M::B installed.  However, I have found that most of
what M::B did to make life easy as an author I can get with
Dist::Zilla, and it creates a Makefile.PL that is as backwards
compatible as possible.

Note: I am the current maintainer of Module::Build, so I have some
experience with the large set of bugs and edge cases that people
experience with it that certainly colors my outlook on it.

-- David

Reply via email to