Some developers say to use ExtUtils::MakeMaker, some say to use Module::Build. MB is supposed to supplant EU::MM, but people complain that it’s too chatty. Thoughts? Hopes? Dreams? Inquiring minds want to know.
Module::Build still doesn’t bootstrap or upgrade itself properly (right now in the default releases) although this is fixed (finally) in the 5.10.1 Perl release.
Personally, I still recommend avoiding Module::Build until maybe a year after the 5.10.1 release.
Module::Install is a good choice until that time, after which it may start to become less relevant.
Module::Build is fine for most people in most cases. Plus, it can create a ‘traditional’ Makefile.PL for backwards compatibility that, again, will work for most people in most cases. Only if you really need unusual custom actions or dependencies during installation do you need to worry about this debate.
Module::Install is thin sugar around ExtUtils::MakeMaker and it suffers all the same underlying flaws and issues.
Module::Build is a great author side tool but until configure_requires support is widely deployed (5.10.1+) there’s significant problems with M::B using dists actually installing.
However, if you aren’t using anything overly fancy you can generate a plain EUMM Makefile.PL using your Build.PL and ship that, which largely works around it – though at that stage you aren’t really gaining much over EUMM/Module::Install.
schwern likes to scream about how awful EUMM is, and as the maintainer he is of course very very heavily exposed to the suckages inherent in an old codebase that has to work across a shitton of platforms. That’s fine; I hate most of my own projects (I think the ones I don’t hate are probably the ones other people have mostly rewritten after I yelled “well volunteered” and ran away at high speed
So, currently, I’d recommend plain Module::Install as “least worst option” but I’m very much looking forwards to configure_requires support being widely deployed in the toolchain so Module::Build can finally give it a run for its money.
And if schwern ever entirely cracks over ExtUtils::MakeMaker I imagine Adam Kennedy or I will be happy to shove it into a repository somewhere and give out commits bits so it moves into the “maintained by the community” category that Module::Install among other things have already entered.
(of course, I hate Module::Install as well … mostly the parts I’ve written … what a surprise …
6 Responses for "Module::Build? EU::MM?"
And some
http://blog.bluefeet.net/2009/07/authoring-a-cpan-module/
say to use Module::Install
http://search.cpan.org/dist/Module-Install/
I kind of wish we could settle on one.
Module::Build still doesn’t bootstrap or upgrade itself properly (right now in the default releases) although this is fixed (finally) in the 5.10.1 Perl release.
Personally, I still recommend avoiding Module::Build until maybe a year after the 5.10.1 release.
Module::Install is a good choice until that time, after which it may start to become less relevant.
Module::Build is fine for most people in most cases. Plus, it can create a ‘traditional’ Makefile.PL for backwards compatibility that, again, will work for most people in most cases. Only if you really need unusual custom actions or dependencies during installation do you need to worry about this debate.
Module::Install is thin sugar around ExtUtils::MakeMaker and it suffers all the same underlying flaws and issues.
Here’s what ExtUtils::MakeMaker’s maintainer had to say about it recently: http://use.perl.org/~schwern/journal/39297
Module::Build is a great author side tool but until configure_requires support is widely deployed (5.10.1+) there’s significant problems with M::B using dists actually installing.
However, if you aren’t using anything overly fancy you can generate a plain EUMM Makefile.PL using your Build.PL and ship that, which largely works around it – though at that stage you aren’t really gaining much over EUMM/Module::Install.
schwern likes to scream about how awful EUMM is, and as the maintainer he is of course very very heavily exposed to the suckages inherent in an old codebase that has to work across a shitton of platforms. That’s fine; I hate most of my own projects (I think the ones I don’t hate are probably the ones other people have mostly rewritten after I yelled “well volunteered” and ran away at high speed
So, currently, I’d recommend plain Module::Install as “least worst option” but I’m very much looking forwards to configure_requires support being widely deployed in the toolchain so Module::Build can finally give it a run for its money.
And if schwern ever entirely cracks over ExtUtils::MakeMaker I imagine Adam Kennedy or I will be happy to shove it into a repository somewhere and give out commits bits so it moves into the “maintained by the community” category that Module::Install among other things have already entered.
(of course, I hate Module::Install as well … mostly the parts I’ve written … what a surprise …
[...] I asked “Module::Build? EU::MM?“. Turns out that was a false dichotomy! Almost everyone who responded to my post recommended [...]
There is a good summary given by Schwern on this Stackoverflow question:
http://stackoverflow.com/questions/73889/which-framework-should-i-use-to-write-modules
/I3az/
Leave a reply