Dist::Zilla::Plugin::StaticInstall - Identify a distribution as eligible for static installation
In your dist.ini:
; when you are confident this is correct
mode = on
; trust us to set the right value (DANGER!)
mode = auto
; be conservative; just tell us what the value should be
mode = auto
dry_run = 1
This is a Dist::Zilla plugin that, when mode is on, provides the following distribution metadata:
x_static_install : "1"
The plugin performs a number of checks against the distribution to determine the proper value of the x_static_install metadata field. When set to a true value, this indicates that the can skip a number of installation steps (such as running Makefile.PL or Build.PL and acting on its side effects).
The definition of a "static installation" is being prototyped by the Perl Toolchain Gang and is still being refined. DO NOT USE THIS PLUGIN if you are not involved in this testing. The proper installation of the built distribution cannot be guaranteed if installed with a static install-enabled client.
The tentative specification is spelled out in more detail in https://github.com/Leont/cpan-static/blob/master/lib/CPAN/Static/Spec.pm.
This plugin currently checks these conditions (if all are true, x_static_install can be true):
dynamic_config must be false in metadata
no prerequisites in configure-requires other than ExtUtils::MakeMaker, Module::Build::Tiny, or File::ShareDir::Install
no prerequisites in build-requires
no files to be installed as executables outside of the script directory
no module sharedir (a distribution sharedir is okay)
no installer plugins permitted other than:
an installer plugin from the above list must be used (a manually-generated Makefile.PL or Build.PL is not permitted)
no other plugins may modify Makefile.PL nor Build.PL
the [MetaJSON] plugin must be used, at (the default) meta-spec version 2
no .xs files may be present
.pm, .pod, .pl files may not be present in the root of the distribution or in BASEEXT (where BASEEXT is the last component of the distribution name)
.pmc and .PL files (excluding Makefile.PL, Build.PL) may not be present
files in lib/ other than .pod, .pm may not be present
When set to on, the value of x_static_install is set to 1 (the normal usecase).
When set to off, the value of x_static_install is set to 0, which is equivalent to not providing this field at all.
When set to auto, we attempt to calculate the proper value. When used with dry_run = 1, the value isn't actually stored, but just provided in a diagnostic message. This is the recommended usage in a plugin bundle, for testing against a number of distributions at once.
dry_run = 1
The calculations are always performed, no matter the value of mode -- if it comes up with a different result than what you are setting, this is logged. If mode = on and the calculations discover the distribution is ineligible for this flag, the build fails, to prevent you from releasing bad metadata.
mode = on
When true, no value is set in metadata, but verbose logging is enabled so you can see what the value would have been.
Bugs may be submitted through the RT bug tracker (or bug-Dist-Zilla-Plugin-StaticInstall@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.
Karen Etheridge <email@example.com>
This software is copyright (c) 2015 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.
To install Dist::Zilla::Plugin::StaticInstall, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell
For more information on module installation, please visit the detailed CPAN module installation guide.