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

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

From:
Leon Timmermans
Date:
December 19, 2016 21:30
Subject:
Re: perlnewmod: module-starter and ExtUtils::MakeMaker?
Message ID:
CAHhgV8hCB7eK94rsbQZQYLSRC+XuW3wQmWAjTEYthcj_05m6VQ@mail.gmail.com
On Sat, Oct 22, 2016 at 8:03 PM, Joseph Brenner <doomvox@gmail.com> wrote:

> >See http://shadow.cat/blog/matt-s-trout/mstpan-11/ for one set of
> opinions on the current field.
>
> Thanks, that more-or-less agrees with my impression.  I'm gravitating
> toward Dist::Milla + MBT myself, but I remain mildly, let's say
> annoyed, that the situation is still a bit up-in-the-air.    The
> history of this stuff from my point of view:  I used EU::MM until it's
> maintainer said that it sucked, and pointed us at MB, I used MB until
> *it's* maintainer said that it sucked and pointed us... no where in
> particular, but back to EU::MM by default.
>
> I was just reviewing what David Golden was saying about all this back
> in 2013, and I have to say it still seems peculiar to me... MB was
> great because it led to stuff like MBT  (so we should use MBT?  No:
> he won't quite go there).  His big gripe about working on MB was the
> need to be backwards compatible to EU:MM in some ways... and so the
> solution is we all go back to using EU::MM?
>

IMO there are three different tasks involved in this:

1. minting the distribution
2. maintaining/releasing the distribution
3. building/testing/installing the distribution

Traditional tools like ExtUtils::MakeMaker and Module::Build do tasks 2&3,
leaving 1 for another tool (such as module-starter or h2xs). One of the
main innovations of Dist::Zilla, that was followed by all other recent
tools such as Minilla and App::ModuleBuildTiny is to do 1&2 in one tool,
but leave 3 for another like
ExtUtils::MakeMaker/Module::Build::Tiny/Module::Build;
Module::Build::Tiny's innovation is not even bothering to try to do 2.

I think pretty much everyone considers h2xs a terrible solution to task 1
by now, even if it's the only thing we have in core. IME
ExtUtils::MakeMaker is fairly newbie-hostile at task 2 (at least if you
want to do it well, getting something to barely work isn't too hard), even
if it is still a fine choice for task 3.

The future I (and some other toolchain people) have in mind is for task 3
to be done in the CPAN client itself whenever possible (so called static
install), thus not using an external tool anymore for that (except for
backwards compatibility and manual installs obviously). Some
experimentation to that effect has been done, but it has not been finished
yet.

In the mean time neither authoring tools nor install tools are generally in
a particularly satisfying state IMO.

Leon



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