NAME
Dist::Zilla::Plugin::MakeMaker::Fallback - Generate a Makefile.PL containing a warning for legacy users
VERSION
version 0.033
SYNOPSIS
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 configure_requires
:
[ModuleBuildTiny]
[MakeMaker::Fallback]
DESCRIPTION
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. Remember: build tools should always
favour Build.PL over Makefile.PL, and (MY)?META.json over (MY)?META.yml.
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 (AUTHOR_TESTING
, 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.
ACKNOWLEDGEMENTS
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...)
SEE ALSO
SUPPORT
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 #distzilla
on irc.perl.org
.
I am also usually active on irc, as 'ether' at irc.perl.org
and irc.libera.chat
.
AUTHOR
Karen Etheridge <ether@cpan.org>
COPYRIGHT AND LICENCE
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.