Eric Wilhelm wrote:
# from Sébastien Aperghis-Tramoni
# on Tuesday 17 April 2007 05:12 pm:
If you really want Module::Build to be installed, why not simply
create a traditional Makefile.PL and add Module::Build as a
prerequisite? That way your module can be installed with
ExtUtils::MakeMaker yet Module::Build also gets installed for the
next time.
That assumes the module *can* be built/installed with EU::MM (without
extra shenanigans.) If you have a custom build class, this is often
not the case.
I've been saying this for a long long time, and I really do hate to beat
a dead horse, but I'm not sure I've explained the problem here before,
so I'll say it just the once and never mention it again.
I'm afraid as far as the use of Module::Build goes, and in particular
the more advanced features, it's a case of making your bed and lying in it.
Module::Build's main attitude has always been to make things easier for
authors at the expense of users, in part by implementing things that the
rest of the tool-chain simply doesn't support.
In particular, since dependency resolution is necessarily a
"turing-complete" process, anything configure-time circular dependencies
means that those modules can't be made backwards compatible to default
installations of old (or even the current 5.8.8) Perl.
Module::Build simply doesn't bootstrap. It's as simple as that.
All the makefile conversion, and wrappers, and pass-throughs, are all
kludges that only work in the set of cases where you keep your use of
features simple and straight forward.
Unfortunately, now that more than 10% of CPAN (possibly closer to 15-20%
these days) is using Module::Builder, we have no choice but to try and
alter the REST of the toolchain to try and compensate for the problem.
Now, it turns out that the configure_requires META.yml addition that
resolves this problem for Module::Build ALSO resolves a number of other
problems that have plagued the toolchain for years, so to some extent
Module::Build has provoked us into fixing some things that were a
problem anyway, but that we had either avoided or weren't hurting enough.
This fixes the Module::Build case for new installations, and anyone that
upgrades their CPAN client.
This STILL doesn't fix the problem with current or old default Perl
installations without upgraded CPAN clients, but then you REALLY can't
fix a circular dependency that only occurs due to events that occured in
the past.
So Module::Build is going to continue to be plagued by these problems,
but at least now you can tell people "You should update CPAN first" and
there's a quick and easy solution.
I understand that you've already moved over to the other list, so
consider this more a historical note for people on this list, rather
than a beef at you personally.
Adam K