logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

ExtUtils::MakeMaker::Dist::Zilla::Develop - create bare-bones Makefile.PL files for use with dzil

Author

       Jesse Luehrs <doy@tozt.net>

Bugs

       No known bugs.

       Please report any bugs to GitHub Issues at
       <https://github.com/doy/extutils-makemaker-dist-zilla-develop/issues>.

Description

       Dist::Zilla makes developing modules much easier by generating all kinds of boilerplate files, saving
       authors from having to write them by hand, but in some cases this can make developing more inconvenient.
       The most prominent example of this is with "Makefile.PL" files - although the majority of distributions
       can be hacked on just by editing the files in a source control checkout and using "prove" for testing,
       for some this isn't sufficient. In particular, distributions which use an auto-generated test suite and
       distributions which use XS both need special handling at build time before they will function, and with
       Dist::Zilla, this means running "dzil build" and rebuilding after every change. This is tedious!

       This module provides an alternative. Create a minimal "Makefile.PL" in source control which handles just
       enough functionality for basic development (it can be as minimal as just what is in the "SYNOPSIS", but
       can also contain commands to generate your test suite, for example), and tell Dist::Zilla to replace it
       with a real "Makefile.PL" when you're actually ready to build a real distribution. To do this, make sure
       you're still using the MakeMaker plugin, either directly or through a pluginbundle like @Basic, and add
       the "exclude_filename = Makefile.PL" option to your dist.ini where you use "[GatherDir]".

       In addition, this module also intercepts the "install" and "dist" rules in the generated Makefile to run
       the appropriate Dist::Zilla commands ("dzil install" and "dzil build"). This allows users to continue to
       use the "perl Makefile.PL && make && make install" set of commands, and have the correct thing continue
       to happen.

       Note that if you're using this module to ease testing of an XS distribution, you'll need to account for
       your module not containing a $VERSION statement (assuming you're using the PkgVersion plugin). To do
       this, you should use an XSLoader invocation similar to this:

         BEGIN {
             XSLoader::load(
                 'Foo::Bar',
                 $Foo::Bar::{VERSION} ? ${ $Foo::Bar::{VERSION} } : ()
             );
         }

       This ensures that the $Foo::Bar::VERSION glob isn't created if it didn't exist initially, since this can
       confuse XSLoader.

Name

       ExtUtils::MakeMaker::Dist::Zilla::Develop - create bare-bones Makefile.PL files for use with dzil

See Also

       ExtUtils::MakeMaker

       Dist::Zilla

Support

       You can find this documentation for this module with the perldoc command.

           perldoc ExtUtils::MakeMaker::Dist::Zilla::Develop

       You can also look for information at:

       •   MetaCPAN

           <https://metacpan.org/release/ExtUtils-MakeMaker-Dist-Zilla-Develop>

       •   Github

           <https://github.com/doy/extutils-makemaker-dist-zilla-develop>

       •   RT: CPAN's request tracker

           <http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker-Dist-Zilla-Develop>

       •   CPAN Ratings

           <http://cpanratings.perl.org/d/ExtUtils-MakeMaker-Dist-Zilla-Develop>

Synopsis

         # Makefile.PL
         use ExtUtils::MakeMaker::Dist::Zilla::Develop;
         WriteMakefile(NAME => 'Foo::Bar');

Version

       version 0.03

See Also