NAME
Dist::Zilla::Plugin::StaticInstall - Identify a distribution as eligible for static installation
VERSION
version 0.012
SYNOPSIS
In your dist.ini:
; when you are confident this is correct
[StaticInstall]
mode = on
; trust us to set the right value (DANGER!)
[StaticInstall]
mode = auto
; be conservative; just tell us what the value should be
[StaticInstall]
mode = auto
dry_run = 1
DESCRIPTION
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 metadatano 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 2no .xs files may be present
.pm, .pod, .pl files may not be present in the root of the distribution or in
BASEEXT
(whereBASEEXT
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
CONFIGURATION OPTIONS
mode
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.
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.
dry_run
When true, no value is set in metadata, but verbose logging is enabled so you can see what the value would have been.
SEE ALSO
SUPPORT
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
.
AUTHOR
Karen Etheridge <ether@cpan.org>
COPYRIGHT AND LICENCE
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.