Dist::Zilla::Plugin::MakeMaker::Fallback - Generate a Makefile.PL containing a warning for legacy users
In your dist.ini, when you want to ship a Build.PL as well as a fallback Makefile.PL in case the user's
cpan client is so old it doesn't recognize
This plugin is a derivative of
[MakeMaker], generating a Makefile.PL in your distribution, with an added preamble that is printed when it is run:
*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING *** If you're seeing this warning, your toolchain is really, really old* and you'll almost certainly have problems installing CPAN modules from this century. But never fear, dear user, for we have the technology to fix this! If you're using CPAN.pm to install things, then you can upgrade it using: cpan CPAN If you're using CPANPLUS to install things, then you can upgrade it using: cpanp CPANPLUS If you're using cpanminus, you shouldn't be seeing this message in the first place, so please file an issue on github. If you're using a packaging tool through a unix distribution, this issue should be reported to the package manager. If you're installing manually, please retrain your fingers to run Build.PL when present instead of Makefile.PL. This public service announcement was brought to you by the Perl Toolchain Gang, the irc.perl.org #toolchain IRC channel, and the number 42. ---- * Alternatively, you are doing something overly clever, in which case you should consider setting the 'prefer_installer' config option in CPAN.pm, or 'prefer_makefile' in CPANPLUS, to 'mb" and '0' respectively. You can also silence this warning for future installations by setting the PERL_MM_FALLBACK_SILENCE_WARNING environment variable.
Additionally, any errors resulting from loading configure-require prerequisites are captured and printed, which indicates a failure of the user or the tools to read and understand META.yml or META.json.
It is a fatal error to use this plugin when there is not also another plugin enabled that generates a Build.PL (such as [ModuleBuildTiny]).
On top of the regular testing that is provided via the Build.PL-producing plugin,
dzil test --release or
dzil release will run tests with extra testing variables unset (
RELEASE_TESTING). This is to weed out test issues that only manifest under these conditions (for example: bad test count, conditional module loading). You can prevent this extra testing from happening by setting
skip_release_testing = 1 in your configuration or dist.ini.
Peter Rabbitson (ribasushi), whose concerns that low-level utility modules were shipping with install tools that did not work out of the box with perls 5.6 and 5.8 inspired the creation of this module.
Matt Trout (mst), for realizing a simple warning would be sufficient, rather than a complicated detection heuristic, as well as the text of the warning (but it turns out that we still need a simple detection heuristic, so -0.5 for that...)
Bugs may be submitted through the RT bug tracker (or bug-Dist-Zilla-Plugin-MakeMaker-Fallback@rt.cpan.org).
There is also a mailing list available for users of this distribution, at http://dzil.org/#mailing-list.
There is also an irc channel available for users of this distribution, at
I am also usually active on irc, as 'ether' at
Karen Etheridge <email@example.com>
This software is copyright (c) 2013 by Karen Etheridge.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.