Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kentnl/dist-zilla-plugin-prereqs-matchinstalled-all

Upgrade ALL your dependencies to the ones you have installed
https://github.com/kentnl/dist-zilla-plugin-prereqs-matchinstalled-all

Last synced: 4 days ago
JSON representation

Upgrade ALL your dependencies to the ones you have installed

Awesome Lists containing this project

README

        

# NAME

Dist::Zilla::Plugin::Prereqs::MatchInstalled::All - Upgrade ALL your dependencies to the ones you have installed.

# VERSION

version 1.001002

# SYNOPSIS

[Prereqs::MatchInstalled::All]
; upgrade_perl = 1 ; if you want to upgrade to your installed perl
; include these too if you don't want to force a perl upgrade indirectly.
exclude = strict
exclude = warnings

# DESCRIPTION

This is a special case of
[`Dist::Zilla::Plugin::**Prereqs::MatchInstalled**`](https://metacpan.org/pod/Dist::Zilla::Plugin::Prereqs::MatchInstalled) that
automatically upgrades all versions of all dependencies, unless asked not to.

## PITFALLS

Presently, there is one very large gotcha about using this module, in that it will upgrade everything,
even things that don't make sense to upgrade.

For instance:

### Local Versions

If you have a single dependency on your system you might use, which is locally patched, and locally patched in such a way the
local version is more recent than any on `CPAN`, you should either

- a. Not use this module
- b. Put that module in the exclusion list

### Non-Dual Life modules

This plugin is not very smart, and can't differentiate between modules that do exist on `CPAN` independent of Perl, and
modules that don't.

For instance, if you use `Autoprereqs`, its very likely your distribution will add a dependency on either `strict` or
`warnings`

This module will ask your user to upgrade those versions to their latest versions, which will likely require them to upgrade
their Perl installation to do so.

Which basically means for the mean time, either

- a. You must be o.k. with end users needing more recent Perls
- b. You should avoid upgrading those dependencies by either
- a. Not using this plugin
- b. Adding problematic modules to the exclusion list

# ATTRIBUTES

## `exclude`

This parameter can be specified multiple times, and each
time should represent a single package string to exclude from
version upgrades.

[Prereqs::MatchInstalled::All]
exclude = foo
exclude = bar

## `upgrade_perl`

If specified, this will permit upgrades on the dependency on `perl` to the installed version.

[Prereqs::MatchInstalled::All]
upgrade_perl = 1

Note, this has no effect on the modules that may inherently be only available by upgrading Perl.

Default is false.

See ["PITFALLS"](#pitfalls) for details.

# PRIVATE ATTRIBUTES

## `_exclude_hash`

# PRIVATE METHODS

## `_build__exclude_hash`

## `_user_wants_excluded`

## `_user_wants_upgrade_on`

# AUTHOR

Kent Fredric

# COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Kent Fredric .

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