The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
NAME
    Dist::Zilla::Plugin::Prereqs::Recommend::MatchInstalled - Advertise
    versions of things you have as soft dependencies

VERSION
    version 0.001000

SYNOPSIS
    "[Prereqs::MatchInstalled]" was a good concept, but its application
    seemed too strong for some things.

    This is a variation on the same theme, but instead of upgrading
    dependencies in-place, it propagates the upgrade to a different
    relation, to produce a softer dependency map.

    Below shows the defaults expanded by hand.

        [Prereqs::Recommend::MatchInstalled]
        applyto_phase = configure
        applyto_phase = runtime
        applyto_phase = test
        applyto_phase = build
        applyto_phase = develop
        source_relation = requires
        target_relation = recommends

    And add these stanzas for example:

        modules = Module::Build
        modules = Moose

    And you have yourself a distribution that won't needlessly increase the
    dependencies on either, but will add increased dependencies to the
    "recommends" phase.

    This way, people doing

        cpanm YourModule

    Get only what they *need*

    While

        cpanm --with-recommends YourModule

    Will get more recent things upgraded

ATTRIBUTES
  "applyto_phase"
        [Prereqs::Recommend::MatchInstalled]
        applyto_phase = SOMEPHASE
        applyto_phase = SOMEPHASE

    This attribute can be specified multiple times.

    Valuable values are:

        build test runtime configure develop

    And those are the default values too.

  "source_relation"
        [Prereqs::Recommend::MatchInstalled]
        source_relation = requires

    This attribute specifies the prerequisites to skim for modules to
    recommend upgrades on.

    Valuable values are:

        requires recommends suggests

    Lastly:

        conflicts

    Will probably do *something*, but I have no idea if that means anything.
    If you want to conflict with what you've installed with, ... go right
    ahead.

  "target_relation"
        [Prereqs::Recommend::MatchInstalled]
        target_relation = recommends

    This attribute specifies the relationship type to inject upgrades into.

    Valuable values are:

        requires recommends suggests

    Lastly:

        conflicts

    Will probably do *something*, but I have no idea if that means anything.
    If you want to conflict with what you've installed with, ... go right
    ahead.

  "applyto_map"
        [Prereqs::Recommend::MatchInstalled]
        applyto_map = runtime.requires = runtime.recommends

    This attribute is the advanced internals of the other attributes, and it
    exists for insane, advanced, and niché applications.

    General format is:

        applyto_map = <source_phase>.<source_relation> = <target_phase>.<target_relation>

    And you can probably do everything with this.

    You could also conceivably emulate "[Prereqs::MatchInstalled]" in
    entirety by using this feature excessively.

    "applyto_map" may be declared multiple times.

AUTHOR
    Kent Fredric <kentfredric@gmail.com>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2014 by Kent Fredric
    <kentfredric@gmail.com>.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.