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 "MyApp" module as well as add a runtime-requires dependency to the "MyApp" module (unless "MyApp" is 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::NAME" modules, 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::rgb24" schema 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.entity" or "x.schema.element_entity" in argument specification in function metadata, the plugin will add a prereq to "Perinci::Sub::ArgEntity::NAME". For example, in Rinci metadata: args => { arg1 => { 'x.schema.entity' => 'dirname', ... }, ... } (Note that "x.schema.entity" is deprecated.) * x.completion, x.element_completion For every completion mentioned in "x.completion" or "x.element_completion" in argument specification in function metadata, which can have the value of "NAME" or "[NAME, ARGS]", the plugin will add a prereq to corresponding "Perinci::Sub::XCompletion::NAME". For example, in Rinci metadata: args => { arg1 => { 'schema' => 'str*', 'x.completion' => 'colorname', ... }, ... } HOMEPAGE Please visit the project's homepage at . SOURCE Source repository is at . BUGS Please report any bugs or feature requests on the bugtracker website 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 Rinci AUTHOR perlancar 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.