NAME
Dist::Zilla::Plugin::Rinci::AddPrereqs - Add prerequisites from Rinci metadata
VERSION
This document describes version 0.145 of Dist::Zilla::Plugin::Rinci::AddPrereqs (from Perl distribution Dist-Zilla-Plugin-Rinci-AddPrereqs), released on 2020-06-10.
SYNOPSIS
In dist.ini:
[Rinci::AddPrereqs]
DESCRIPTION
This plugin will first collect Rinci metadata from the following:
%SPEC variable in all modules of the distribution
Perinci::CmdLine scripts
This plugin will also search all Perinci::CmdLine-based scripts, request Rinci function metadata from all local Riap URI's used by the scripts. Plus, will add a dependency to the module mentioned in the local Riap URI. For example, in Perinci::CmdLine-based script:
url => '/MyApp/myfunc',The plugin will retrieve the Rinci metadata in
MyAppmodule as well as add a runtime-requires dependency to theMyAppmodule (unlessMyAppis in the same/current distribution).
Prereqs from Rinci function metadata
The following prereqs will be added according to information in Rinci function metadata.
Additional property module
If the Rinci metadata contains non-standard properties, which require corresponding
Perinci::Sub::Property::NAMEmodules, then these modules will be added as prereqs.schema
Currently will only do this for Rinci metadata for CLI scripts.
The plugin will compile every schema of function argument using Data::Sah, then add a prereq to each module required by the generated argument validator produced by Data::Sah. For example, in Rinci metadata:
args => { arg1 => { schema => 'color::rgb24*', ... }, ... }When the
color::rgb24schema is compiled, the following modules are required: Sah::Schema::color::rgb24, Data::Sah::Coerce::perl::To_str::From_str::rgb24_from_colorname_X_or_code. The generated validator code requires these modules: strict, warnings, Graphics::ColorNames, Graphics::ColorNames::X. All of which will be added as prereq.x.schema.entity, x.schema.element_entity
Currently will only do this for Rinci metadata for CLI scripts.
For every entity mentioned in
x.schema.entityorx.schema.element_entityin argument specification in function metadata, the plugin will add a prereq toPerinci::Sub::ArgEntity::NAME. For example, in Rinci metadata:args => { arg1 => { 'x.schema.entity' => 'dirname', ... }, ... }(Note that
x.schema.entityis deprecated.)x.completion, x.element_completion
For every completion mentioned in
x.completionorx.element_completionin argument specification in function metadata, which can have the value ofNAMEor[NAME, ARGS], the plugin will add a prereq to correspondingPerinci::Sub::XCompletion::NAME. For example, in Rinci metadata:args => { arg1 => { 'schema' => 'str*', 'x.completion' => 'colorname', ... }, ... }
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Dist-Zilla-Plugin-Rinci-AddPrereqs.
SOURCE
Source repository is at https://github.com/perlancar/perl-Dist-Zilla-Plugin-Rinci-AddPrereqs.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Dist-Zilla-Plugin-Rinci-AddPrereqs
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
SEE ALSO
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020, 2019, 2018, 2016, 2015 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.