develooper Front page | perl.perl5.porters | Postings from October 2016

Re: perlnewmod: module-starter and ExtUtils::MakeMaker?

Thread Previous | Thread Next
From:
Dan Book
Date:
October 22, 2016 21:58
Subject:
Re: perlnewmod: module-starter and ExtUtils::MakeMaker?
Message ID:
CABMkAVUApWmDamVMS0OZXEzknk1at6gZKeeTiXQmoknmiyMwAw@mail.gmail.com
On Thu, Oct 20, 2016 at 11:39 PM, Joseph Brenner <doomvox@gmail.com> wrote:

> If you look at perlnewmod (and perlmodstyle) you get pointed to
> module-starter, with an example run line that doesn't use the
> "--builder" option.  If you follow that example, it generates a
> build tree based on ExtUtils::MakeMaker.  So that must be the
> current Best Practices, right?
>
> Alternately, I could assume that Miyagawa knows what he's doing,
> and use Dist::Milla, and I see that defaults to
> Module::Build::Tiny.  If that's the actual Best Practices, then
> perhaps perlnewmod needs revision?
>
> Just to be clear, I understand that lots of things would work,
> including h2xs and ExtUtils::MakeMaker, I just think there
> should be a single, clear story you can tell to new CPAN
> authors.
>

See http://shadow.cat/blog/matt-s-trout/mstpan-11/ for one set of opinions
on the current field. IMO, Dist::Milla and Minilla (depending whether you
want to depend on Dist::Zilla or not) are by far the simplest and most
complete places for new module authors to start currently. They both
default to Module::Build::Tiny, because they generally assume the simple
cases where its limitations are ok, but they both also can be configured to
use EUMM as the installer, and since Dist::Milla is just a Dist::Zilla
bundle, you can extend it to do whatever you need.

Module::Build::Tiny is more a proof-of-concept that a new, modern builder
can be built around the Build.PL spec without using Module::Build (which
has fallen into unmaintenance). The benefit of Module::Build::Tiny
specifically is that the installer file does not need any code beyond the
one line to run it; it's very simple. The drawback (other than unsupported
features like module sharedirs) is that perls before 5.12 ship with a
CPAN.pm that doesn't understand configure dependencies, so will fail to
install it automatically. So if supporting older perls natively is
important, sticking to EUMM is the simplest way to do that, and if you're
using Dist::Zilla/Dist::Milla/Minilla on the author side anyway, it's
trivial to do so.

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About