Why not adopt me?
NAME
Dist::Zilla::Plugin::Prereqs::SyncVersions - (DEPRECATED) Homogenize prerequisites so dependency versions are consistent
VERSION
version 0.003002
DEPRECATED
This module is deprecated as equivalent behavior is now part of Dist::Zilla
.
However, this module will keep maintained for anyone who wants this behavior without upgrading to DZil 5
SYNOPSIS
; <bunch of metaprereq providing modules>
[Prereqs::SyncVersions]
Note: This must come after packages that add their own prerequisites in order to work as intended.
DESCRIPTION
This module exists to pose mostly as a workaround for potential bugs in downstream tool-chains.
Namely, CPAN.pm
is confused when it sees:
runtime.requires : Foo >= 5.0
test.requires : Foo >= 6.0
It doesn't know what to do.
This is an easy enough problem to solve if you're using [Prereqs]
directly, and [AutoPrereqs]
already does the right thing, but it gets messier when you're working with plugins that inject their own prerequisites
So this plugin will homogenize dependencies to be the same version in all phases which infer the dependency, matching the largest one found, so the above becomes:
runtime.requires : Foo >= 6.0
test.requires : Foo >= 6.0
METHODS
mvp_multivalue_args
The following attributes exist, and may be specified more than once:
applyto
applyto_relation
applyto_phase
register_prereqs
This method is called during Dist::Zilla
prerequisite generation, and it injects supplementary prerequisites to make things match up.
ATTRIBUTES
applyto_phase
A multi-value attribute that specifies which phases to iterate and homogenize.
By default, this is:
applyto_phase = build
applyto_phase = test
applyto_phase = runtime
applyto_phase = configure
However, you could extend it further to include develop
if you wanted to.
applyto_phase = build
applyto_phase = test
applyto_phase = runtime
applyto_phase = configure
appyyto_phase = develop
applyto_relation
A multi-value attribute that specifies which relations to iterate and homogenize.
By default, this is:
applyto_relation = requires
However, you could extend it further to include suggests
and recommends
if you wanted to. You could even add conflicts
... but you really shouldn't.
applyto_relation = requires
applyto_relation = suggests
applyto_relation = recommends
applyto_relation = conflicts ; Danger will robinson.
applyto
A multi-value attribute that by default composites the values of
applyto_relation
and applyto_phase
.
This is if you want to be granular about how you specify phase/relations to process.
applyto = runtime.requires
applyto = develop.requires
applyto = test.suggests
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.