Hi Dave,

I am one of the people who package Perl modules for Debian, and we
frequently see all of the above - Module::Install, Module::Build,
ExtUtils::MakeMaker and now Dist::Zilla.

As ExtUtils::MakeMaker is now considered deprecated, I would avoid
using that. However, each of the other toolchains has its own
advantages and disadvantages, and also their own followings. All of
the toolchain module authors work really hard to coordinate features
with one another, so that they are all equally suitable for
distribution with CPAN modules, and are all compatible with one
another. (They all support the same META.yml standards, new features
typically work across all of them, etc.)

I personally prefer Module::Build, though Module::Install is gaining
popularity (it operates on top of ExtUtils::MakeMaker but modernizes
it and supports tons of neat features. It is also special in that it
is designed to be distributed with your modules in inc/ so that you
can always use the newest features, and never have to rely on the
toolchain available on your target system). Module::Build is now a
core module and provides many modern features itself, too. Dist::Zilla
is Ricardo SIGNES' contribution to toolchains and provides neat
features to automate much of the build process (as Ricardo is a very
prolific Perl module author, I think the idea is the automation saves
him quite a bit of time and allows him to maintain his stuff to a very
high standard).

I think asking here will yield lots of different answers, so your best
bet is to try each of:
* Module::Install
* Module::Build
* Dist::Zilla
out, at least for their introduction/tutorial stuff, then make your
decisions accordingly, based on what you're comfortable with.

ps. This is of course Perl, we take "There is more than one way to do
it" to the extreme sometimes ;)

Cheers,

Jonathan

On Sat, Jul 3, 2010 at 7:59 AM, Dave Cardwell
<list+perl-module-auth...@davecardwell.co.uk> wrote:
> Please could you advise what the “preferred” build module(s) are
> nowadays, when releasing to CPAN?
>
> I don’t have any particular requirements as it’s a simple module, but
> I’m unsure which of Module::Install, Module::Build,
> ExtUtils::MakeMaker, etc. I should be using.
>
> --
> Best wishes,
> Dave Cardwell.
>
> http://davecardwell.co.uk/
> http://cardwellit.com/
>

Reply via email to