David Golden wrote:
On Sat, Dec 4, 2010 at 4:35 AM, Octavian Rasnita <orasn...@gmail.com> wrote:
Is there a module you recommend for creating CPAN packages?
Module::Build, Module::Install, ExtUtils::MakeMaker, Dist::Zilla, another one?
Is one of them more compatible with CPAN, CPANPLUS, App::cpanminus, or better
maintained, prefered for the future?
All of the module builders you list are compatible with all the CPAN
clients you list.
None of them are "best" but they offer different tradeoffs. Here is my take:
[cutting to the chase...]
Module::Build -- this is the 'pure perl' alternative. It is very easy
to customize compared to EU::MM but you can't rely on users having a
new enough Module::Build for any given feature unless you target Perl
5.10.1 (which added the ability for CPAN/CPANPLUS to bootstrap tools
you need *before* running Build.PL)
What features do you mean? I shifted over to Module::Build when I was
still using Perl 5.6.
My packages are not complicated (single .pm file; pure perl; the
"create_makefile_pl"
set to 'traditional' for non-Build users), so maybe there's something else?
[more cutting...]
Dist::Zilla also can create a new "boilerplate" distribution, similar
to Module::Starter or h2xs. The other three do not.
I have switched to Dist::Zilla and many other prolific CPAN authors
have as well. (It was written by RJBS, the most prolific CPAN author
of all, so he has some perspective on what's the easiest thing for
managing CPAN distributions). If you are interested in learning
Dist::Zilla, the online tutorial is the way to go:
http://dzil.org/tutorial/start.html
If you don't want a complete solution, the question is how much
customization do you need (to the test process, distribution packaging
process, etc.)? If the answer is "a lot", then I would recommend
M::B. If the answer is "very little", then I would recommend M::I.
Huh. I would never have considered Module::Build complicated (but then
again, I don't have
complicated modules). On the other hand, thanks for pointing out the
Dist::Zilla tutorial, that's
going to be very helpful.
Avoid direct EU::MM entirely.
Yep.
I hope that helps. (I hope users of other tools find my descriptions
relatively objective. My apologies for any excessive bias.)
Regards,
David
-john