NAME
    Dist::Zilla::Plugin::Rinci::AddPrereqs - Add prerequisites from Rinci
    metadata

VERSION
    This document describes version 0.144 of
    Dist::Zilla::Plugin::Rinci::AddPrereqs (from Perl distribution
    Dist-Zilla-Plugin-Rinci-AddPrereqs), released on 2019-12-28.

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
    <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-Rin
    ci-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
    Rinci

AUTHOR
    perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 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.

