The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Dist::Zilla::Plugin::Prereqs::Soften - Downgrade listed dependencies to recommendations if present.

VERSION

version 0.006003

SYNOPSIS

[Prereqs::Soften]
module = Foo
module = Bar

DESCRIPTION

This module iterates build, require and test dependency lists and migrates dependencies found in .requires and demotes them to .recommends

Optionally, it can duplicate softened dependencies to other locations

ATTRIBUTES

modules

A multi-value argument that specifies a module name to soften in prereqs.

to_relationship

The output relationship kind.

Default:

'recommends'

Valid Values:

'recommends', 'suggests', 'none', 'requires', 'conflicts'

Though the last two are reserved for people with $num_feet > 2 or with shotguns that only fire blanks.

none is available since 0.006000 to allow removal of dependencies in conjunction with copying them.

copy_to

Additional places to copy the dependency to:

Default:

[]

Example:

[Prereqs::Soften]
copy_to         = develop.requires
to_relationship = recommends
module          = Foo

This in effect means:

remove from: runtime.requires
    → add to: develop.requires
    → add to: runtime.recommends

remove from: test.requires
    → add to: develop.requires
    → add to: test.recommends

 remove from: build.requires
    → add to: develop.requires
    → add to: build.recommends

modules_from_features

This is for use in conjunction with [OptionalFeature], or anything that injects compatible structures into distmeta.

Recommended usage as follows:

[OptionalFeature / Etc]
...

[Prereqs::Soften]
modules_from_features = 1

In this example, copy_to and modules are both redundant, as modules are propagated from all features, and copy_to is not necessary because [OptionalFeature] automatically adds dependencies to develop.requires

AUTHOR

Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE

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