view release on metacpan or search on metacpan
CODE_OF_CONDUCT.md view on Meta::CPAN
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age,
body size, disability, ethnicity, gender identity and expression, level of
experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an
appointed representative at an online or offline event. Representation of a
project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at autarch@urth.org. All complaints
will be reviewed and investigated and will result in a response that is deemed
necessary and appropriate to the circumstances. The project team is obligated
to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 1.4, available at
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
CONTRIBUTING.md view on Meta::CPAN
# CONTRIBUTING
Thank you for considering contributing to this distribution. This file
contains instructions that will help you work with the source code.
Please note that if you have any questions or difficulties, you can reach the
maintainer(s) through the bug queue described later in this document
(preferred), or by emailing the releaser directly. You are not required to
follow any of the steps in this document to submit a patch or bug report;
these are just recommendations, intended to help you (and help us help you
faster).
The distribution is managed with
[Dist::Zilla](https://metacpan.org/release/Dist-Zilla).
However, you can still compile and test the code with the
`Makefile.PL`
in the repository:
perl Makefile.PL
make
make test
You may need to satisfy some dependencies. The easiest way to satisfy
dependencies is to install the last release. This is available at
https://metacpan.org/release/Package-DeprecationManager
You can use [`cpanminus`](https://metacpan.org/pod/App::cpanminus) to do this
without downloading the tarball first:
$> cpanm --reinstall --installdeps --with-recommends Package::DeprecationManager
[`Dist::Zilla`](https://metacpan.org/pod/Dist::Zilla) is a very powerful
authoring tool, but requires a number of author-specific plugins. If you would
like to use it for contributing, install it from CPAN, then the following
command to install the needed distros:
$> dzil authordeps --missing | cpanm
There may also be additional requirements not needed by the dzil build which
are needed for tests or other development:
$> dzil listdeps --author --missing | cpanm
Or, you can use the 'dzil stale' command to install all requirements at once:
$> cpanm Dist::Zilla::App::Command::stale
$> dzil stale --all | cpanm
You can also do this via cpanm directly:
$> cpanm --reinstall --installdeps --with-develop --with-recommends Package::DeprecationManager
Once installed, here are some dzil commands you might try:
$> dzil build
$> dzil test
$> dzil test --release
$> dzil xtest
$> dzil listdeps --json
$> dzil build --notgz
You can learn more about Dist::Zilla at http://dzil.org/.
The code for this distribution is [hosted on GitHub](https://github.com/moose/Package-DeprecationManager).
You can submit code changes by forking the repository, pushing your code
changes to your clone, and then submitting a pull request. Please update the
Changes file with a user-facing description of your changes as part of your
work. See the GitHub documentation for [detailed instructions on pull
requests](https://help.github.com/articles/creating-a-pull-request)
If you have found a bug, but do not have an accompanying patch to fix it, you
can submit an issue report [via the web](https://github.com/moose/Package-DeprecationManager/issues).
## Continuous Integration
All pull requests for this distribution will be automatically tested using
[Azure Pipelines](https://dev.azure.com/houseabsolute/houseabsolute/_build).
All CI results will be visible in the pull request on GitHub. Follow the
appropriate links for details when tests fail. PRs cannot be merged until tests
pass.
## Precious
This distribution uses [precious](https://github.com/houseabsolute/precious)
to enforce a uniform coding style. This is tested as part of the author
testing suite. You can install this and any other necessary non-Perl tools by
running `./dev-bin/install-xt-tools.sh`.
Then you can use `precious` to tidy and lint your code:
$> precious tidy -a
$> precious lint -a
Please run `precious tidy -a` and `precious lint -a` before committing your
changes and address any issues that it reports.
You can also set up a git pre-commit hook that checks all changed files for
linting issues by running `./git/setup.pl`.
## Contributor Names
If you send a patch or pull request, your name and email address will be
included in the documentation as a contributor (using the attribution on the
commit or patch), unless you specifically request for it not to be. If you
wish to be listed under a different name or address, you should submit a pull
request to the `.mailmap` file to contain the correct mapping.
## Generated By
This file was generated via Dist::Zilla::Plugin::GenerateFile::FromShareDir 0.015 from a
template file originating in Dist-Zilla-PluginBundle-DROLSKY-1.22.
0.18 2023-02-19
- Use Sub::Util instead of Sub::Name, which is part of Scalar-List-Utils,
which itself is a dependency already. Implemented by Aristotle Pagaltzis. GH
#3.
0.17 2016-06-17
- Remove use of namespace::autoclean.
0.16 2016-03-21
- The subs installed into the caller are now named with Sub::Name. This makes
these subs appear to be part of the caller, as opposed to an import, which
is what we want, since each installed sub is constructed uniquely for a
given package.
0.15 2015-11-13
- Made this module co-operate with existing import() subs in packages that use
this module, as long as you use this module last.
0.14 2015-04-18
- Use any() from List::Util 1.33+ instead of List::MoreUtils.
0.13 2012-03-09
- Fix dist.ini to not add Test::Spelling as a requirement. (Tomas Doran)
0.12 2012-03-04
- Fix tests to pass with Carp 1.25. Reported by Andreas Koenig. RT #75520.
0.11 2011-06-19
- Allow an empty hash for the -deprecations parameter.
0.10 2010-10-25
- The test suite now uses Test::Fatal instead of Test::Exception. (Karen
Etheridge)
0.09 2010-10-17
- Added a compilation test, because otherwise all test files could not end up
doing skip_all, which may make smokers and test harnesses unhappy.
0.08 2010-10-15
- Include Test::Requires in prereq list. Reported by Todd Rinaldo. RT #62173.
0.07 2010-10-15
- The use of regular expressions in ignores didn't really work in 0.06.
- Added missing dep on List::MoreUtils.
- Replaced Test::Warn with Test::Output in the tests, and made the tests
actually test what I think they should be testing.
0.06 2010-10-14
- The -ignore parameter now accepts regular expressions as well as package
names.
0.05 2010-10-14
- Fixed what looked like a bug in -ignore handling, although I couldn't seem
to write a test that triggered it.
- Removed hard dep on Test::Warn for the benefit of Moose.
0.04 2010-07-14
- A single feature will now warn more than once if each warning consists of a
different error message.
0.03 2010-07-14
- Added an -ignore parameter when importing Package::DeprecationManager. This
lets you explicitly ignore packages in the call stack when determining where
a deprecated feature was called.
0.02 2010-07-12
- Made it possible to deprecate any feature, not just a subroutine or method.
0.01 2010-07-12
- First release
This is the Perl distribution Package-DeprecationManager.
Installing Package-DeprecationManager is straightforward.
## Installation with cpanm
If you have cpanm, you only need one line:
% cpanm Package::DeprecationManager
If it does not have permission to install modules to the current perl, cpanm
will automatically set up and install to a local::lib in your home directory.
See the local::lib documentation (https://metacpan.org/pod/local::lib) for
details on enabling it in your environment.
## Installing with the CPAN shell
Alternatively, if your CPAN shell is set up, you should just be able to do:
% cpan Package::DeprecationManager
## Manual installation
As a last resort, you can manually install it. If you have not already
downloaded the release tarball, you can find the download link on the module's
MetaCPAN page: https://metacpan.org/pod/Package::DeprecationManager
Untar the tarball, install configure prerequisites (see below), then build it:
% perl Makefile.PL
% make && make test
Then install it:
% make install
On Windows platforms, you should use `dmake` or `nmake`, instead of `make`.
If your perl is system-managed, you can create a local::lib in your home
directory to install modules to. For details, see the local::lib documentation:
https://metacpan.org/pod/local::lib
The prerequisites of this distribution will also have to be installed manually. The
prerequisites are listed in one of the files: `MYMETA.yml` or `MYMETA.json` generated
by running the manual build process described above.
## Configure Prerequisites
This distribution requires other modules to be installed before this
distribution's installer can be run. They can be found under the
"configure_requires" key of META.yml or the
"{prereqs}{configure}{requires}" key of META.json.
## Other Prerequisites
This distribution may require additional modules to be installed after running
Makefile.PL.
Look for prerequisites in the following phases:
* to run make, PHASE = build
* to use the module code itself, PHASE = runtime
* to run tests, PHASE = test
They can all be found in the "PHASE_requires" key of MYMETA.yml or the
"{prereqs}{PHASE}{requires}" key of MYMETA.json.
## Documentation
Package-DeprecationManager documentation is available as POD.
You can run `perldoc` from a shell to read the documentation:
% perldoc Package::DeprecationManager
For more information on installing Perl modules via CPAN, please see:
https://www.cpan.org/modules/INSTALL.html
This software is Copyright (c) 2023 by Dave Rolsky.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
The Artistic License 2.0
Copyright (c) 2000-2006, The Perl Foundation.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
This license establishes the terms under which a given free software
Package may be copied, modified, distributed, and/or redistributed.
The intent is that the Copyright Holder maintains some artistic
control over the development of that Package while still keeping the
Package available as open source and free software.
You are always permitted to make arrangements wholly outside of this
license directly with the Copyright Holder of a given Package. If the
terms of this license do not permit the full use that you propose to
make of the Package, you should contact the Copyright Holder and seek
a different licensing arrangement.
Definitions
"Copyright Holder" means the individual(s) or organization(s)
named in the copyright notice for the entire Package.
"Contributor" means any party that has contributed code or other
material to the Package, in accordance with the Copyright Holder's
procedures.
"You" and "your" means any person who would like to copy,
distribute, or modify the Package.
"Package" means the collection of files distributed by the
Copyright Holder, and derivatives of that collection and/or of
those files. A given Package may consist of either the Standard
Version, or a Modified Version.
"Distribute" means providing a copy of the Package or making it
accessible to anyone else, or in the case of a company or
organization, to others outside of your company or organization.
"Distributor Fee" means any fee that you charge for Distributing
this Package or providing support for this Package to another
party. It does not mean licensing fees.
"Standard Version" refers to the Package if it has not been
modified, or has been modified only in ways explicitly requested
by the Copyright Holder.
"Modified Version" means the Package, if it has been changed, and
such changes were not explicitly requested by the Copyright
Holder.
"Original License" means this Artistic License as Distributed with
the Standard Version of the Package, in its current version or as
it may be modified by The Perl Foundation in the future.
"Source" form means the source code, documentation source, and
configuration files for the Package.
"Compiled" form means the compiled bytecode, object code, binary,
or any other form resulting from mechanical transformation or
translation of the Source form.
Permission for Use and Modification Without Distribution
(1) You are permitted to use the Standard Version and create and use
Modified Versions for any purpose without restriction, provided that
you do not Distribute the Modified Version.
Permissions for Redistribution of the Standard Version
(2) You may Distribute verbatim copies of the Source form of the
Standard Version of this Package in any medium without restriction,
either gratis or for a Distributor Fee, provided that you duplicate
all of the original copyright notices and associated disclaimers. At
your discretion, such verbatim copies may or may not include a
Compiled form of the Package.
(3) You may apply any bug fixes, portability changes, and other
modifications made available from the Copyright Holder. The resulting
Package will still be considered the Standard Version, and as such
will be subject to the Original License.
Distribution of Modified Versions of the Package as Source
(4) You may Distribute your Modified Version as Source (either gratis
or for a Distributor Fee, and with or without a Compiled form of the
Modified Version) provided that you clearly document how it differs
from the Standard Version, including, but not limited to, documenting
any non-standard features, executables, or modules, and provided that
you do at least ONE of the following:
(a) make the Modified Version available to the Copyright Holder
of the Standard Version, under the Original License, so that the
Copyright Holder may include your modifications in the Standard
Version.
(b) ensure that installation of your Modified Version does not
prevent the user installing or running the Standard Version. In
addition, the Modified Version must bear a name that is different
from the name of the Standard Version.
(c) allow anyone who receives a copy of the Modified Version to
make the Source form of the Modified Version available to others
under
(i) the Original License or
(ii) a license that permits the licensee to freely copy,
modify and redistribute the Modified Version using the same
licensing terms that apply to the copy that the licensee
received, and requires that the Source form of the Modified
Version, and of any works derived from it, be made freely
available in that license fees are prohibited but Distributor
Fees are allowed.
Distribution of Compiled Forms of the Standard Version
or Modified Versions without the Source
(5) You may Distribute Compiled forms of the Standard Version without
the Source, provided that you include complete instructions on how to
get the Source of the Standard Version. Such instructions must be
valid at the time of your distribution. If these instructions, at any
time while you are carrying out such distribution, become invalid, you
must provide new instructions on demand or cease further distribution.
If you provide valid instructions or cease distribution within thirty
days after you become aware that the instructions are invalid, then
you do not forfeit any of your rights under this license.
(6) You may Distribute a Modified Version in Compiled form without
the Source, provided that you comply with Section 4 with respect to
the Source of the Modified Version.
Aggregating or Linking the Package
(7) You may aggregate the Package (either the Standard Version or
Modified Version) with other packages and Distribute the resulting
aggregation provided that you do not charge a licensing fee for the
Package. Distributor Fees are permitted, and licensing fees for other
components in the aggregation are permitted. The terms of this license
apply to the use and Distribution of the Standard or Modified Versions
as included in the aggregation.
(8) You are permitted to link Modified and Standard Versions with
other works, to embed the Package in a larger work of your own, or to
build stand-alone binary or bytecode versions of applications that
include the Package, and Distribute the result without restriction,
provided the result does not expose a direct interface to the Package.
Items That are Not Considered Part of a Modified Version
(9) Works (including, but not limited to, modules and scripts) that
merely extend or make use of the Package, do not, by themselves, cause
the Package to be a Modified Version. In addition, such works are not
considered parts of the Package itself, and are not subject to the
terms of this license.
General Provisions
(10) Any use, modification, and distribution of the Standard or
Modified Versions is governed by this Artistic License. By using,
modifying or distributing the Package, you accept this license. Do not
use, modify, or distribute the Package, if you do not accept this
license.
(11) If your Modified Version has been derived from a Modified
Version made by someone other than you, you are nevertheless required
to ensure that your Modified Version complies with the requirements of
this license.
(12) This license does not grant you the right to use any trademark,
service mark, tradename, or logo of the Copyright Holder.
(13) This license includes the non-exclusive, worldwide,
free-of-charge patent license to make, have made, use, offer to sell,
sell, import and otherwise transfer the Package with respect to any
patent claims licensable by the Copyright Holder that are necessarily
infringed by the Package. If you institute patent litigation
(including a cross-claim or counterclaim) against any party alleging
that the Package constitutes direct or contributory patent
infringement, then this Artistic License to you shall terminate on the
date that such litigation is filed.
(14) Disclaimer of Warranty:
THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.030.
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Changes
INSTALL
LICENSE
MANIFEST
META.json
META.yml
Makefile.PL
README.md
azure-pipelines.yml
cpanfile
dev-bin/install-xt-tools.sh
dist.ini
git/hooks/pre-commit.sh
git/setup.pl
lib/Package/DeprecationManager.pm
perlcriticrc
perltidyrc
precious.toml
t/00-report-prereqs.dd
t/00-report-prereqs.t
t/basic.t
t/export.t
xt/author/00-compile.t
xt/author/eol.t
xt/author/mojibake.t
xt/author/no-tabs.t
xt/author/pod-coverage.t
xt/author/pod-spell.t
xt/author/pod-syntax.t
xt/author/portability.t
xt/author/precious.t
xt/author/test-version.t
xt/release/cpan-changes.t
xt/release/meta-json.t
{
"abstract" : "Manage deprecation warnings for your distribution",
"author" : [
"Dave Rolsky <autarch@urth.org>"
],
"dynamic_config" : 0,
"generated_by" : "Dist::Zilla version 6.030, CPAN::Meta::Converter version 2.150010",
"license" : [
"artistic_2"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
"version" : 2
},
"name" : "Package-DeprecationManager",
"prereqs" : {
"configure" : {
"requires" : {
"ExtUtils::MakeMaker" : "0"
}
},
"develop" : {
"requires" : {
"Capture::Tiny" : "0",
"Encode" : "0",
"File::Spec" : "0",
"FindBin" : "0",
"IO::Handle" : "0",
"IPC::Open3" : "0",
"Perl::Critic" : "1.138",
"Perl::Critic::Moose" : "1.05",
"Perl::Tidy" : "20210111",
"Pod::Checker" : "1.74",
"Pod::Coverage::TrustPod" : "0",
"Pod::Tidy" : "0.10",
"Pod::Wordlist" : "0",
"Test::CPAN::Changes" : "0.19",
"Test::CPAN::Meta::JSON" : "0.16",
"Test::EOL" : "0",
"Test::Mojibake" : "0",
"Test::More" : "0.96",
"Test::NoTabs" : "0",
"Test::Pod" : "1.41",
"Test::Pod::Coverage" : "1.08",
"Test::Portability::Files" : "0",
"Test::Spelling" : "0.12",
"Test::Version" : "2.05",
"perl" : "5.006"
}
},
"runtime" : {
"requires" : {
"Carp" : "0",
"List::Util" : "1.33",
"Package::Stash" : "0",
"Params::Util" : "0",
"Sub::Install" : "0",
"Sub::Util" : "0",
"strict" : "0",
"warnings" : "0"
}
},
"test" : {
"recommends" : {
"CPAN::Meta" : "2.120900"
},
"requires" : {
"Exporter" : "0",
"ExtUtils::MakeMaker" : "0",
"File::Spec" : "0",
"Test::Fatal" : "0",
"Test::More" : "0.96",
"Test::Warnings" : "0"
}
}
},
"provides" : {
"Package::DeprecationManager" : {
"file" : "lib/Package/DeprecationManager.pm",
"version" : "0.18"
}
},
"release_status" : "stable",
"resources" : {
"bugtracker" : {
"web" : "https://github.com/moose/Package-DeprecationManager/issues"
},
"homepage" : "https://metacpan.org/release/Package-DeprecationManager",
"repository" : {
"type" : "git",
"url" : "git://github.com/moose/Package-DeprecationManager.git",
"web" : "https://github.com/moose/Package-DeprecationManager"
}
},
"version" : "0.18",
"x_Dist_Zilla" : {
"perl" : {
"version" : "5.032001"
},
"plugins" : [
{
"class" : "Dist::Zilla::Plugin::DROLSKY::BundleAuthordep",
"name" : "@DROLSKY/DROLSKY::BundleAuthordep",
"version" : "1.22"
},
{
"class" : "Dist::Zilla::Plugin::Git::GatherDir",
"config" : {
"Dist::Zilla::Plugin::GatherDir" : {
"exclude_filename" : [
"CODE_OF_CONDUCT.md",
"CONTRIBUTING.md",
"LICENSE",
"Makefile.PL",
"README.md",
"cpanfile"
],
"exclude_match" : [],
"follow_symlinks" : 0,
"include_dotfiles" : 0,
"prefix" : "",
"prune_directory" : [],
"root" : "."
},
"Dist::Zilla::Plugin::Git::GatherDir" : {
"include_untracked" : 0
}
},
"name" : "@DROLSKY/Git::GatherDir",
"version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::ManifestSkip",
"name" : "@DROLSKY/ManifestSkip",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::License",
"name" : "@DROLSKY/License",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::ExecDir",
"name" : "@DROLSKY/ExecDir",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::ShareDir",
"name" : "@DROLSKY/ShareDir",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::Manifest",
"name" : "@DROLSKY/Manifest",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::CheckVersionIncrement",
"name" : "@DROLSKY/CheckVersionIncrement",
"version" : "0.121750"
},
{
"class" : "Dist::Zilla::Plugin::TestRelease",
"name" : "@DROLSKY/TestRelease",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::ConfirmRelease",
"name" : "@DROLSKY/ConfirmRelease",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::UploadToCPAN",
"name" : "@DROLSKY/UploadToCPAN",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::VersionFromMainModule",
"config" : {
"Dist::Zilla::Role::ModuleMetadata" : {
"Module::Metadata" : "1.000037",
"version" : "0.006"
}
},
"name" : "@DROLSKY/VersionFromMainModule",
"version" : "0.04"
},
{
"class" : "Dist::Zilla::Plugin::Authority",
"name" : "@DROLSKY/Authority",
"version" : "1.009"
},
{
"class" : "Dist::Zilla::Plugin::AutoPrereqs",
"name" : "@DROLSKY/AutoPrereqs",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::CopyFilesFromBuild",
"name" : "@DROLSKY/CopyFilesFromBuild",
"version" : "0.170880"
},
{
"class" : "Dist::Zilla::Plugin::GitHub::Meta",
"name" : "@DROLSKY/GitHub::Meta",
"version" : "0.48"
},
{
"class" : "Dist::Zilla::Plugin::GitHub::Update",
"config" : {
"Dist::Zilla::Plugin::GitHub::Update" : {
"metacpan" : 1
}
},
"name" : "@DROLSKY/GitHub::Update",
"version" : "0.48"
},
{
"class" : "Dist::Zilla::Plugin::MetaResources",
"name" : "@DROLSKY/MetaResources",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::MetaProvides::Package",
"config" : {
"Dist::Zilla::Plugin::MetaProvides::Package" : {
"finder_objects" : [
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
"version" : "6.030"
}
],
"include_underscores" : 0
},
"Dist::Zilla::Role::MetaProvider::Provider" : {
"$Dist::Zilla::Role::MetaProvider::Provider::VERSION" : "2.002004",
"inherit_missing" : 1,
"inherit_version" : 1,
"meta_noindex" : 1
},
"Dist::Zilla::Role::ModuleMetadata" : {
"Module::Metadata" : "1.000037",
"version" : "0.006"
}
},
"name" : "@DROLSKY/MetaProvides::Package",
"version" : "2.004003"
},
{
"class" : "Dist::Zilla::Plugin::Meta::Contributors",
"name" : "@DROLSKY/Meta::Contributors",
"version" : "0.003"
},
{
"class" : "Dist::Zilla::Plugin::MetaConfig",
"name" : "@DROLSKY/MetaConfig",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::MetaJSON",
"name" : "@DROLSKY/MetaJSON",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::MetaYAML",
"name" : "@DROLSKY/MetaYAML",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::NextRelease",
"name" : "@DROLSKY/NextRelease",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
"config" : {
"Dist::Zilla::Plugin::Prereqs" : {
"phase" : "test",
"type" : "requires"
}
},
"name" : "@DROLSKY/Test::More with subtest",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
"config" : {
"Dist::Zilla::Plugin::Prereqs" : {
"phase" : "develop",
"type" : "requires"
}
},
"name" : "@DROLSKY/Tools for use with precious",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
"config" : {
"Dist::Zilla::Plugin::Prereqs" : {
"phase" : "develop",
"type" : "requires"
}
},
"name" : "@DROLSKY/Test::Version which fixes https://github.com/plicease/Test-Version/issues/7",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::PromptIfStale",
"config" : {
"Dist::Zilla::Plugin::PromptIfStale" : {
"check_all_plugins" : 0,
"check_all_prereqs" : 0,
"modules" : [
"Dist::Zilla::PluginBundle::DROLSKY"
],
"phase" : "build",
"run_under_travis" : 0,
"skip" : []
}
},
"name" : "@DROLSKY/Dist::Zilla::PluginBundle::DROLSKY",
"version" : "0.057"
},
{
"class" : "Dist::Zilla::Plugin::PromptIfStale",
"config" : {
"Dist::Zilla::Plugin::PromptIfStale" : {
"check_all_plugins" : 1,
"check_all_prereqs" : 1,
"modules" : [],
"phase" : "release",
"run_under_travis" : 0,
"skip" : [
"Dist::Zilla::Plugin::DROLSKY::BundleAuthordep",
"Dist::Zilla::Plugin::DROLSKY::Contributors",
"Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch",
"Dist::Zilla::Plugin::DROLSKY::License",
"Dist::Zilla::Plugin::DROLSKY::MakeMaker",
"Dist::Zilla::Plugin::DROLSKY::PerlLinterConfigFiles",
"Dist::Zilla::Plugin::DROLSKY::Precious",
"Dist::Zilla::Plugin::DROLSKY::Test::Precious",
"Dist::Zilla::Plugin::DROLSKY::WeaverConfig",
"Pod::Weaver::PluginBundle::DROLSKY"
]
}
},
"name" : "@DROLSKY/PromptIfStale",
"version" : "0.057"
},
{
"class" : "Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable",
"name" : "@DROLSKY/Test::Pod::Coverage::Configurable",
"version" : "0.07"
},
{
"class" : "Dist::Zilla::Plugin::Test::PodSpelling",
"config" : {
"Dist::Zilla::Plugin::Test::PodSpelling" : {
"directories" : [
"bin",
"lib"
],
"spell_cmd" : "",
"stopwords" : [
"DROLSKY",
"DROLSKY's",
"Goro",
"PayPal",
"Rolsky",
"Rolsky's",
"deprecations",
"drolsky"
],
"wordlist" : "Pod::Wordlist"
}
},
"name" : "@DROLSKY/Test::PodSpelling",
"version" : "2.007005"
},
{
"class" : "Dist::Zilla::Plugin::PodSyntaxTests",
"name" : "@DROLSKY/PodSyntaxTests",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::MojibakeTests",
"name" : "@DROLSKY/MojibakeTests",
"version" : "0.8"
},
{
"class" : "Dist::Zilla::Plugin::RunExtraTests",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : "12"
}
},
"name" : "@DROLSKY/RunExtraTests",
"version" : "0.029"
},
{
"class" : "Dist::Zilla::Plugin::Test::CPAN::Changes",
"config" : {
"Dist::Zilla::Plugin::Test::CPAN::Changes" : {
"changelog" : "Changes"
}
},
"name" : "@DROLSKY/Test::CPAN::Changes",
"version" : "0.012"
},
{
"class" : "Dist::Zilla::Plugin::Test::CPAN::Meta::JSON",
"name" : "@DROLSKY/Test::CPAN::Meta::JSON",
"version" : "0.004"
},
{
"class" : "Dist::Zilla::Plugin::Test::EOL",
"config" : {
"Dist::Zilla::Plugin::Test::EOL" : {
"filename" : "xt/author/eol.t",
"finder" : [
":ExecFiles",
":InstallModules",
":TestFiles"
],
"trailing_whitespace" : 1
}
},
"name" : "@DROLSKY/Test::EOL",
"version" : "0.19"
},
{
"class" : "Dist::Zilla::Plugin::Test::NoTabs",
"config" : {
"Dist::Zilla::Plugin::Test::NoTabs" : {
"filename" : "xt/author/no-tabs.t",
"finder" : [
":InstallModules",
":ExecFiles",
":TestFiles"
]
}
},
"name" : "@DROLSKY/Test::NoTabs",
"version" : "0.15"
},
{
"class" : "Dist::Zilla::Plugin::Test::Portability",
"config" : {
"Dist::Zilla::Plugin::Test::Portability" : {
"options" : ""
}
},
"name" : "@DROLSKY/Test::Portability",
"version" : "2.001001"
},
{
"class" : "Dist::Zilla::Plugin::Test::Compile",
"config" : {
"Dist::Zilla::Plugin::Test::Compile" : {
"bail_out_on_fail" : 0,
"fail_on_warning" : "author",
"fake_home" : 0,
"filename" : "xt/author/00-compile.t",
"module_finder" : [
":InstallModules"
],
"needs_display" : 0,
"phase" : "develop",
"script_finder" : [
":PerlExecFiles"
],
"skips" : [],
"switch" : []
}
},
"name" : "@DROLSKY/Test::Compile",
"version" : "2.058"
},
{
"class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
"name" : "@DROLSKY/Test::ReportPrereqs",
"version" : "0.029"
},
{
"class" : "Dist::Zilla::Plugin::Test::Version",
"name" : "@DROLSKY/Test::Version",
"version" : "1.09"
},
{
"class" : "Dist::Zilla::Plugin::DROLSKY::Test::Precious",
"name" : "@DROLSKY/DROLSKY::Test::Precious",
"version" : "1.22"
},
{
"class" : "Dist::Zilla::Plugin::DROLSKY::Contributors",
"name" : "@DROLSKY/DROLSKY::Contributors",
"version" : "1.22"
},
{
"class" : "Dist::Zilla::Plugin::Git::Contributors",
"config" : {
"Dist::Zilla::Plugin::Git::Contributors" : {
"git_version" : "2.39.2",
"include_authors" : 0,
"include_releaser" : 1,
"order_by" : "name",
"paths" : []
}
},
"name" : "@DROLSKY/Git::Contributors",
"version" : "0.036"
},
{
"class" : "Dist::Zilla::Plugin::SurgicalPodWeaver",
"config" : {
"Dist::Zilla::Plugin::PodWeaver" : {
"config_plugins" : [
"@DROLSKY"
],
"finder" : [
":InstallModules",
":ExecFiles"
],
"plugins" : [
{
"class" : "Pod::Weaver::Plugin::EnsurePod5",
"name" : "@CorePrep/EnsurePod5",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Plugin::H1Nester",
"name" : "@CorePrep/H1Nester",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Plugin::SingleEncoding",
"name" : "@DROLSKY/SingleEncoding",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Plugin::Transformer",
"name" : "@DROLSKY/List",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Plugin::Transformer",
"name" : "@DROLSKY/Verbatim",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Region",
"name" : "@DROLSKY/header",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Name",
"name" : "@DROLSKY/Name",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Version",
"name" : "@DROLSKY/Version",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Region",
"name" : "@DROLSKY/prelude",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Generic",
"name" : "SYNOPSIS",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Generic",
"name" : "DESCRIPTION",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Generic",
"name" : "OVERVIEW",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Collect",
"name" : "ATTRIBUTES",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Collect",
"name" : "METHODS",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Collect",
"name" : "FUNCTIONS",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Collect",
"name" : "TYPES",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Leftovers",
"name" : "@DROLSKY/Leftovers",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Region",
"name" : "@DROLSKY/postlude",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::GenerateSection",
"name" : "@DROLSKY/generate SUPPORT",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::AllowOverride",
"name" : "@DROLSKY/allow override SUPPORT",
"version" : "0.05"
},
{
"class" : "Pod::Weaver::Section::GenerateSection",
"name" : "@DROLSKY/generate SOURCE",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::GenerateSection",
"name" : "@DROLSKY/generate DONATIONS",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Authors",
"name" : "@DROLSKY/Authors",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::Contributors",
"name" : "@DROLSKY/Contributors",
"version" : "0.009"
},
{
"class" : "Pod::Weaver::Section::Legal",
"name" : "@DROLSKY/Legal",
"version" : "4.018"
},
{
"class" : "Pod::Weaver::Section::AllowOverride",
"name" : "@DROLSKY/allow override Legal",
"version" : "0.05"
},
{
"class" : "Pod::Weaver::Section::Region",
"name" : "@DROLSKY/footer",
"version" : "4.018"
}
]
}
},
"name" : "@DROLSKY/SurgicalPodWeaver",
"version" : "0.0023"
},
{
"class" : "Dist::Zilla::Plugin::DROLSKY::WeaverConfig",
"name" : "@DROLSKY/DROLSKY::WeaverConfig",
"version" : "1.22"
},
{
"class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
"config" : {
"Dist::Zilla::Role::FileWatcher" : {
"version" : "0.006"
}
},
"name" : "@DROLSKY/README.md in build",
"version" : "0.163250"
},
{
"class" : "Dist::Zilla::Plugin::GenerateFile::FromShareDir",
"config" : {
"Dist::Zilla::Plugin::GenerateFile::FromShareDir" : {
"destination_filename" : "CONTRIBUTING.md",
"dist" : "Dist-Zilla-PluginBundle-DROLSKY",
"encoding" : "UTF-8",
"has_xs" : 0,
"location" : "build",
"source_filename" : "CONTRIBUTING.md"
},
"Dist::Zilla::Role::RepoFileInjector" : {
"allow_overwrite" : 1,
"repo_root" : ".",
"version" : "0.009"
}
},
"name" : "@DROLSKY/Generate CONTRIBUTING.md",
"version" : "0.015"
},
{
"class" : "Dist::Zilla::Plugin::GenerateFile::FromShareDir",
"config" : {
"Dist::Zilla::Plugin::GenerateFile::FromShareDir" : {
"destination_filename" : "CODE_OF_CONDUCT.md",
"dist" : "Dist-Zilla-PluginBundle-DROLSKY",
"encoding" : "UTF-8",
"has_xs" : 0,
"location" : "build",
"source_filename" : "CODE_OF_CONDUCT.md"
},
"Dist::Zilla::Role::RepoFileInjector" : {
"allow_overwrite" : 1,
"repo_root" : ".",
"version" : "0.009"
}
},
"name" : "@DROLSKY/Generate CODE_OF_CONDUCT.md",
"version" : "0.015"
},
{
"class" : "Dist::Zilla::Plugin::InstallGuide",
"config" : {
"Dist::Zilla::Role::ModuleMetadata" : {
"Module::Metadata" : "1.000037",
"version" : "0.006"
}
},
"name" : "@DROLSKY/InstallGuide",
"version" : "1.200014"
},
{
"class" : "Dist::Zilla::Plugin::CPANFile",
"name" : "@DROLSKY/CPANFile",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::DROLSKY::License",
"name" : "@DROLSKY/DROLSKY::License",
"version" : "1.22"
},
{
"class" : "Dist::Zilla::Plugin::CheckStrictVersion",
"name" : "@DROLSKY/CheckStrictVersion",
"version" : "0.001"
},
{
"class" : "Dist::Zilla::Plugin::CheckSelfDependency",
"config" : {
"Dist::Zilla::Plugin::CheckSelfDependency" : {
"finder" : [
":InstallModules"
]
},
"Dist::Zilla::Role::ModuleMetadata" : {
"Module::Metadata" : "1.000037",
"version" : "0.006"
}
},
"name" : "@DROLSKY/CheckSelfDependency",
"version" : "0.011"
},
{
"class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
"name" : "@DROLSKY/CheckPrereqsIndexed",
"version" : "0.022"
},
{
"class" : "Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch",
"config" : {
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.39.2",
"repo_root" : "."
}
},
"name" : "@DROLSKY/DROLSKY::Git::CheckFor::CorrectBranch",
"version" : "1.22"
},
{
"class" : "Dist::Zilla::Plugin::EnsureChangesHasContent",
"name" : "@DROLSKY/EnsureChangesHasContent",
"version" : "0.02"
},
{
"class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts",
"config" : {
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.39.2",
"repo_root" : "."
}
},
"name" : "@DROLSKY/Git::CheckFor::MergeConflicts",
"version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::DROLSKY::PerlLinterConfigFiles",
"name" : "@DROLSKY/DROLSKY::PerlLinterConfigFiles",
"version" : "1.22"
},
{
"class" : "Dist::Zilla::Plugin::DROLSKY::DevTools",
"name" : "@DROLSKY/DROLSKY::DevTools",
"version" : "1.22"
},
{
"class" : "Dist::Zilla::Plugin::DROLSKY::Precious",
"name" : "@DROLSKY/DROLSKY::Precious",
"version" : "1.22"
},
{
"class" : "Dist::Zilla::Plugin::Git::Check",
"config" : {
"Dist::Zilla::Plugin::Git::Check" : {
"untracked_files" : "die"
},
"Dist::Zilla::Role::Git::DirtyFiles" : {
"allow_dirty" : [
"CODE_OF_CONDUCT.md",
"CONTRIBUTING.md",
"Changes",
"LICENSE",
"Makefile.PL",
"README.md",
"cpanfile",
"precious.toml"
],
"allow_dirty_match" : [],
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.39.2",
"repo_root" : "."
}
},
"name" : "@DROLSKY/Git::Check",
"version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::Git::Commit",
"config" : {
"Dist::Zilla::Plugin::Git::Commit" : {
"add_files_in" : [],
"commit_msg" : "v%V%n%n%c",
"signoff" : 0
},
"Dist::Zilla::Role::Git::DirtyFiles" : {
"allow_dirty" : [
"CODE_OF_CONDUCT.md",
"CONTRIBUTING.md",
"Changes",
"LICENSE",
"Makefile.PL",
"README.md",
"cpanfile",
"precious.toml"
],
"allow_dirty_match" : [],
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.39.2",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
"time_zone" : "local"
}
},
"name" : "@DROLSKY/Commit generated files",
"version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
"config" : {
"Dist::Zilla::Plugin::Git::Tag" : {
"branch" : null,
"changelog" : "Changes",
"signed" : 0,
"tag" : "v0.18",
"tag_format" : "v%V",
"tag_message" : "v%V"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.39.2",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
"time_zone" : "local"
}
},
"name" : "@DROLSKY/Git::Tag",
"version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::Git::Push",
"config" : {
"Dist::Zilla::Plugin::Git::Push" : {
"push_to" : [
"origin"
],
"remotes_must_exist" : 1
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.39.2",
"repo_root" : "."
}
},
"name" : "@DROLSKY/Git::Push",
"version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease",
"config" : {
"Dist::Zilla::Plugin::BumpVersionAfterRelease" : {
"finders" : [
":ExecFiles",
":InstallModules"
],
"global" : 0,
"munge_makefile_pl" : 1
}
},
"name" : "@DROLSKY/BumpVersionAfterRelease",
"version" : "0.018"
},
{
"class" : "Dist::Zilla::Plugin::Git::Commit",
"config" : {
"Dist::Zilla::Plugin::Git::Commit" : {
"add_files_in" : [],
"commit_msg" : "Bump version after release",
"signoff" : 0
},
"Dist::Zilla::Role::Git::DirtyFiles" : {
"allow_dirty" : [
"Changes",
"dist.ini"
],
"allow_dirty_match" : [
"(?^:.+)"
],
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.39.2",
"repo_root" : "."
},
"Dist::Zilla::Role::Git::StringFormatter" : {
"time_zone" : "local"
}
},
"name" : "@DROLSKY/Commit version bump",
"version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::Git::Push",
"config" : {
"Dist::Zilla::Plugin::Git::Push" : {
"push_to" : [
"origin"
],
"remotes_must_exist" : 1
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.39.2",
"repo_root" : "."
}
},
"name" : "@DROLSKY/Push version bump",
"version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::DROLSKY::MakeMaker",
"config" : {
"Dist::Zilla::Plugin::MakeMaker" : {
"make_path" : "make",
"version" : "6.030"
},
"Dist::Zilla::Plugin::MakeMaker::Awesome" : {
"version" : "0.49"
},
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : "12",
"version" : "6.030"
}
},
"name" : "@DROLSKY/DROLSKY::MakeMaker",
"version" : "1.22"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":IncModules",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":TestFiles",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExtraTestFiles",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExecFiles",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":PerlExecFiles",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ShareFiles",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":MainModule",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":AllFiles",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":NoFiles",
"version" : "6.030"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
"version" : "6.030"
}
],
"zilla" : {
"class" : "Dist::Zilla::Dist::Builder",
"config" : {
"is_trial" : 0
},
"version" : "6.030"
}
},
"x_authority" : "cpan:DROLSKY",
"x_contributors" : [
"Aristotle Pagaltzis <pagaltzis@gmx.de>",
"Jesse Luehrs <doy@tozt.net>",
"Karen Etheridge <ether@cpan.org>",
"Tomas Doran <bobtfish@bobtfish.net>"
],
"x_generated_by_perl" : "v5.32.1",
"x_serialization_backend" : "Cpanel::JSON::XS version 4.26",
"x_spdx_expression" : "Artistic-2.0"
}
---
abstract: 'Manage deprecation warnings for your distribution'
author:
- 'Dave Rolsky <autarch@urth.org>'
build_requires:
Exporter: '0'
ExtUtils::MakeMaker: '0'
File::Spec: '0'
Test::Fatal: '0'
Test::More: '0.96'
Test::Warnings: '0'
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 0
generated_by: 'Dist::Zilla version 6.030, CPAN::Meta::Converter version 2.150010'
license: artistic_2
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: '1.4'
name: Package-DeprecationManager
provides:
Package::DeprecationManager:
file: lib/Package/DeprecationManager.pm
version: '0.18'
requires:
Carp: '0'
List::Util: '1.33'
Package::Stash: '0'
Params::Util: '0'
Sub::Install: '0'
Sub::Util: '0'
strict: '0'
warnings: '0'
resources:
bugtracker: https://github.com/moose/Package-DeprecationManager/issues
homepage: https://metacpan.org/release/Package-DeprecationManager
repository: git://github.com/moose/Package-DeprecationManager.git
version: '0.18'
x_Dist_Zilla:
perl:
version: '5.032001'
plugins:
-
class: Dist::Zilla::Plugin::DROLSKY::BundleAuthordep
name: '@DROLSKY/DROLSKY::BundleAuthordep'
version: '1.22'
-
class: Dist::Zilla::Plugin::Git::GatherDir
config:
Dist::Zilla::Plugin::GatherDir:
exclude_filename:
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- LICENSE
- Makefile.PL
- README.md
- cpanfile
exclude_match: []
follow_symlinks: 0
include_dotfiles: 0
prefix: ''
prune_directory: []
root: .
Dist::Zilla::Plugin::Git::GatherDir:
include_untracked: 0
name: '@DROLSKY/Git::GatherDir'
version: '2.048'
-
class: Dist::Zilla::Plugin::ManifestSkip
name: '@DROLSKY/ManifestSkip'
version: '6.030'
-
class: Dist::Zilla::Plugin::License
name: '@DROLSKY/License'
version: '6.030'
-
class: Dist::Zilla::Plugin::ExecDir
name: '@DROLSKY/ExecDir'
version: '6.030'
-
class: Dist::Zilla::Plugin::ShareDir
name: '@DROLSKY/ShareDir'
version: '6.030'
-
class: Dist::Zilla::Plugin::Manifest
name: '@DROLSKY/Manifest'
version: '6.030'
-
class: Dist::Zilla::Plugin::CheckVersionIncrement
name: '@DROLSKY/CheckVersionIncrement'
version: '0.121750'
-
class: Dist::Zilla::Plugin::TestRelease
name: '@DROLSKY/TestRelease'
version: '6.030'
-
class: Dist::Zilla::Plugin::ConfirmRelease
name: '@DROLSKY/ConfirmRelease'
version: '6.030'
-
class: Dist::Zilla::Plugin::UploadToCPAN
name: '@DROLSKY/UploadToCPAN'
version: '6.030'
-
class: Dist::Zilla::Plugin::VersionFromMainModule
config:
Dist::Zilla::Role::ModuleMetadata:
Module::Metadata: '1.000037'
version: '0.006'
name: '@DROLSKY/VersionFromMainModule'
version: '0.04'
-
class: Dist::Zilla::Plugin::Authority
name: '@DROLSKY/Authority'
version: '1.009'
-
class: Dist::Zilla::Plugin::AutoPrereqs
name: '@DROLSKY/AutoPrereqs'
version: '6.030'
-
class: Dist::Zilla::Plugin::CopyFilesFromBuild
name: '@DROLSKY/CopyFilesFromBuild'
version: '0.170880'
-
class: Dist::Zilla::Plugin::GitHub::Meta
name: '@DROLSKY/GitHub::Meta'
version: '0.48'
-
class: Dist::Zilla::Plugin::GitHub::Update
config:
Dist::Zilla::Plugin::GitHub::Update:
metacpan: 1
name: '@DROLSKY/GitHub::Update'
version: '0.48'
-
class: Dist::Zilla::Plugin::MetaResources
name: '@DROLSKY/MetaResources'
version: '6.030'
-
class: Dist::Zilla::Plugin::MetaProvides::Package
config:
Dist::Zilla::Plugin::MetaProvides::Package:
finder_objects:
-
class: Dist::Zilla::Plugin::FinderCode
name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
version: '6.030'
include_underscores: 0
Dist::Zilla::Role::MetaProvider::Provider:
$Dist::Zilla::Role::MetaProvider::Provider::VERSION: '2.002004'
inherit_missing: '1'
inherit_version: '1'
meta_noindex: '1'
Dist::Zilla::Role::ModuleMetadata:
Module::Metadata: '1.000037'
version: '0.006'
name: '@DROLSKY/MetaProvides::Package'
version: '2.004003'
-
class: Dist::Zilla::Plugin::Meta::Contributors
name: '@DROLSKY/Meta::Contributors'
version: '0.003'
-
class: Dist::Zilla::Plugin::MetaConfig
name: '@DROLSKY/MetaConfig'
version: '6.030'
-
class: Dist::Zilla::Plugin::MetaJSON
name: '@DROLSKY/MetaJSON'
version: '6.030'
-
class: Dist::Zilla::Plugin::MetaYAML
name: '@DROLSKY/MetaYAML'
version: '6.030'
-
class: Dist::Zilla::Plugin::NextRelease
name: '@DROLSKY/NextRelease'
version: '6.030'
-
class: Dist::Zilla::Plugin::Prereqs
config:
Dist::Zilla::Plugin::Prereqs:
phase: test
type: requires
name: '@DROLSKY/Test::More with subtest'
version: '6.030'
-
class: Dist::Zilla::Plugin::Prereqs
config:
Dist::Zilla::Plugin::Prereqs:
phase: develop
type: requires
name: '@DROLSKY/Tools for use with precious'
version: '6.030'
-
class: Dist::Zilla::Plugin::Prereqs
config:
Dist::Zilla::Plugin::Prereqs:
phase: develop
type: requires
name: '@DROLSKY/Test::Version which fixes https://github.com/plicease/Test-Version/issues/7'
version: '6.030'
-
class: Dist::Zilla::Plugin::PromptIfStale
config:
Dist::Zilla::Plugin::PromptIfStale:
check_all_plugins: 0
check_all_prereqs: 0
modules:
- Dist::Zilla::PluginBundle::DROLSKY
phase: build
run_under_travis: 0
skip: []
name: '@DROLSKY/Dist::Zilla::PluginBundle::DROLSKY'
version: '0.057'
-
class: Dist::Zilla::Plugin::PromptIfStale
config:
Dist::Zilla::Plugin::PromptIfStale:
check_all_plugins: 1
check_all_prereqs: 1
modules: []
phase: release
run_under_travis: 0
skip:
- Dist::Zilla::Plugin::DROLSKY::BundleAuthordep
- Dist::Zilla::Plugin::DROLSKY::Contributors
- Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch
- Dist::Zilla::Plugin::DROLSKY::License
- Dist::Zilla::Plugin::DROLSKY::MakeMaker
- Dist::Zilla::Plugin::DROLSKY::PerlLinterConfigFiles
- Dist::Zilla::Plugin::DROLSKY::Precious
- Dist::Zilla::Plugin::DROLSKY::Test::Precious
- Dist::Zilla::Plugin::DROLSKY::WeaverConfig
- Pod::Weaver::PluginBundle::DROLSKY
name: '@DROLSKY/PromptIfStale'
version: '0.057'
-
class: Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable
name: '@DROLSKY/Test::Pod::Coverage::Configurable'
version: '0.07'
-
class: Dist::Zilla::Plugin::Test::PodSpelling
config:
Dist::Zilla::Plugin::Test::PodSpelling:
directories:
- bin
- lib
spell_cmd: ''
stopwords:
- DROLSKY
- "DROLSKY's"
- Goro
- PayPal
- Rolsky
- "Rolsky's"
- deprecations
- drolsky
wordlist: Pod::Wordlist
name: '@DROLSKY/Test::PodSpelling'
version: '2.007005'
-
class: Dist::Zilla::Plugin::PodSyntaxTests
name: '@DROLSKY/PodSyntaxTests'
version: '6.030'
-
class: Dist::Zilla::Plugin::MojibakeTests
name: '@DROLSKY/MojibakeTests'
version: '0.8'
-
class: Dist::Zilla::Plugin::RunExtraTests
config:
Dist::Zilla::Role::TestRunner:
default_jobs: '12'
name: '@DROLSKY/RunExtraTests'
version: '0.029'
-
class: Dist::Zilla::Plugin::Test::CPAN::Changes
config:
Dist::Zilla::Plugin::Test::CPAN::Changes:
changelog: Changes
name: '@DROLSKY/Test::CPAN::Changes'
version: '0.012'
-
class: Dist::Zilla::Plugin::Test::CPAN::Meta::JSON
name: '@DROLSKY/Test::CPAN::Meta::JSON'
version: '0.004'
-
class: Dist::Zilla::Plugin::Test::EOL
config:
Dist::Zilla::Plugin::Test::EOL:
filename: xt/author/eol.t
finder:
- ':ExecFiles'
- ':InstallModules'
- ':TestFiles'
trailing_whitespace: 1
name: '@DROLSKY/Test::EOL'
version: '0.19'
-
class: Dist::Zilla::Plugin::Test::NoTabs
config:
Dist::Zilla::Plugin::Test::NoTabs:
filename: xt/author/no-tabs.t
finder:
- ':InstallModules'
- ':ExecFiles'
- ':TestFiles'
name: '@DROLSKY/Test::NoTabs'
version: '0.15'
-
class: Dist::Zilla::Plugin::Test::Portability
config:
Dist::Zilla::Plugin::Test::Portability:
options: ''
name: '@DROLSKY/Test::Portability'
version: '2.001001'
-
class: Dist::Zilla::Plugin::Test::Compile
config:
Dist::Zilla::Plugin::Test::Compile:
bail_out_on_fail: '0'
fail_on_warning: author
fake_home: 0
filename: xt/author/00-compile.t
module_finder:
- ':InstallModules'
needs_display: 0
phase: develop
script_finder:
- ':PerlExecFiles'
skips: []
switch: []
name: '@DROLSKY/Test::Compile'
version: '2.058'
-
class: Dist::Zilla::Plugin::Test::ReportPrereqs
name: '@DROLSKY/Test::ReportPrereqs'
version: '0.029'
-
class: Dist::Zilla::Plugin::Test::Version
name: '@DROLSKY/Test::Version'
version: '1.09'
-
class: Dist::Zilla::Plugin::DROLSKY::Test::Precious
name: '@DROLSKY/DROLSKY::Test::Precious'
version: '1.22'
-
class: Dist::Zilla::Plugin::DROLSKY::Contributors
name: '@DROLSKY/DROLSKY::Contributors'
version: '1.22'
-
class: Dist::Zilla::Plugin::Git::Contributors
config:
Dist::Zilla::Plugin::Git::Contributors:
git_version: 2.39.2
include_authors: 0
include_releaser: 1
order_by: name
paths: []
name: '@DROLSKY/Git::Contributors'
version: '0.036'
-
class: Dist::Zilla::Plugin::SurgicalPodWeaver
config:
Dist::Zilla::Plugin::PodWeaver:
config_plugins:
- '@DROLSKY'
finder:
- ':InstallModules'
- ':ExecFiles'
plugins:
-
class: Pod::Weaver::Plugin::EnsurePod5
name: '@CorePrep/EnsurePod5'
version: '4.018'
-
class: Pod::Weaver::Plugin::H1Nester
name: '@CorePrep/H1Nester'
version: '4.018'
-
class: Pod::Weaver::Plugin::SingleEncoding
name: '@DROLSKY/SingleEncoding'
version: '4.018'
-
class: Pod::Weaver::Plugin::Transformer
name: '@DROLSKY/List'
version: '4.018'
-
class: Pod::Weaver::Plugin::Transformer
name: '@DROLSKY/Verbatim'
version: '4.018'
-
class: Pod::Weaver::Section::Region
name: '@DROLSKY/header'
version: '4.018'
-
class: Pod::Weaver::Section::Name
name: '@DROLSKY/Name'
version: '4.018'
-
class: Pod::Weaver::Section::Version
name: '@DROLSKY/Version'
version: '4.018'
-
class: Pod::Weaver::Section::Region
name: '@DROLSKY/prelude'
version: '4.018'
-
class: Pod::Weaver::Section::Generic
name: SYNOPSIS
version: '4.018'
-
class: Pod::Weaver::Section::Generic
name: DESCRIPTION
version: '4.018'
-
class: Pod::Weaver::Section::Generic
name: OVERVIEW
version: '4.018'
-
class: Pod::Weaver::Section::Collect
name: ATTRIBUTES
version: '4.018'
-
class: Pod::Weaver::Section::Collect
name: METHODS
version: '4.018'
-
class: Pod::Weaver::Section::Collect
name: FUNCTIONS
version: '4.018'
-
class: Pod::Weaver::Section::Collect
name: TYPES
version: '4.018'
-
class: Pod::Weaver::Section::Leftovers
name: '@DROLSKY/Leftovers'
version: '4.018'
-
class: Pod::Weaver::Section::Region
name: '@DROLSKY/postlude'
version: '4.018'
-
class: Pod::Weaver::Section::GenerateSection
name: '@DROLSKY/generate SUPPORT'
version: '4.018'
-
class: Pod::Weaver::Section::AllowOverride
name: '@DROLSKY/allow override SUPPORT'
version: '0.05'
-
class: Pod::Weaver::Section::GenerateSection
name: '@DROLSKY/generate SOURCE'
version: '4.018'
-
class: Pod::Weaver::Section::GenerateSection
name: '@DROLSKY/generate DONATIONS'
version: '4.018'
-
class: Pod::Weaver::Section::Authors
name: '@DROLSKY/Authors'
version: '4.018'
-
class: Pod::Weaver::Section::Contributors
name: '@DROLSKY/Contributors'
version: '0.009'
-
class: Pod::Weaver::Section::Legal
name: '@DROLSKY/Legal'
version: '4.018'
-
class: Pod::Weaver::Section::AllowOverride
name: '@DROLSKY/allow override Legal'
version: '0.05'
-
class: Pod::Weaver::Section::Region
name: '@DROLSKY/footer'
version: '4.018'
name: '@DROLSKY/SurgicalPodWeaver'
version: '0.0023'
-
class: Dist::Zilla::Plugin::DROLSKY::WeaverConfig
name: '@DROLSKY/DROLSKY::WeaverConfig'
version: '1.22'
-
class: Dist::Zilla::Plugin::ReadmeAnyFromPod
config:
Dist::Zilla::Role::FileWatcher:
version: '0.006'
name: '@DROLSKY/README.md in build'
version: '0.163250'
-
class: Dist::Zilla::Plugin::GenerateFile::FromShareDir
config:
Dist::Zilla::Plugin::GenerateFile::FromShareDir:
destination_filename: CONTRIBUTING.md
dist: Dist-Zilla-PluginBundle-DROLSKY
encoding: UTF-8
has_xs: '0'
location: build
source_filename: CONTRIBUTING.md
Dist::Zilla::Role::RepoFileInjector:
allow_overwrite: 1
repo_root: .
version: '0.009'
name: '@DROLSKY/Generate CONTRIBUTING.md'
version: '0.015'
-
class: Dist::Zilla::Plugin::GenerateFile::FromShareDir
config:
Dist::Zilla::Plugin::GenerateFile::FromShareDir:
destination_filename: CODE_OF_CONDUCT.md
dist: Dist-Zilla-PluginBundle-DROLSKY
encoding: UTF-8
has_xs: '0'
location: build
source_filename: CODE_OF_CONDUCT.md
Dist::Zilla::Role::RepoFileInjector:
allow_overwrite: 1
repo_root: .
version: '0.009'
name: '@DROLSKY/Generate CODE_OF_CONDUCT.md'
version: '0.015'
-
class: Dist::Zilla::Plugin::InstallGuide
config:
Dist::Zilla::Role::ModuleMetadata:
Module::Metadata: '1.000037'
version: '0.006'
name: '@DROLSKY/InstallGuide'
version: '1.200014'
-
class: Dist::Zilla::Plugin::CPANFile
name: '@DROLSKY/CPANFile'
version: '6.030'
-
class: Dist::Zilla::Plugin::DROLSKY::License
name: '@DROLSKY/DROLSKY::License'
version: '1.22'
-
class: Dist::Zilla::Plugin::CheckStrictVersion
name: '@DROLSKY/CheckStrictVersion'
version: '0.001'
-
class: Dist::Zilla::Plugin::CheckSelfDependency
config:
Dist::Zilla::Plugin::CheckSelfDependency:
finder:
- ':InstallModules'
Dist::Zilla::Role::ModuleMetadata:
Module::Metadata: '1.000037'
version: '0.006'
name: '@DROLSKY/CheckSelfDependency'
version: '0.011'
-
class: Dist::Zilla::Plugin::CheckPrereqsIndexed
name: '@DROLSKY/CheckPrereqsIndexed'
version: '0.022'
-
class: Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch
config:
Dist::Zilla::Role::Git::Repo:
git_version: 2.39.2
repo_root: .
name: '@DROLSKY/DROLSKY::Git::CheckFor::CorrectBranch'
version: '1.22'
-
class: Dist::Zilla::Plugin::EnsureChangesHasContent
name: '@DROLSKY/EnsureChangesHasContent'
version: '0.02'
-
class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts
config:
Dist::Zilla::Role::Git::Repo:
git_version: 2.39.2
repo_root: .
name: '@DROLSKY/Git::CheckFor::MergeConflicts'
version: '0.014'
-
class: Dist::Zilla::Plugin::DROLSKY::PerlLinterConfigFiles
name: '@DROLSKY/DROLSKY::PerlLinterConfigFiles'
version: '1.22'
-
class: Dist::Zilla::Plugin::DROLSKY::DevTools
name: '@DROLSKY/DROLSKY::DevTools'
version: '1.22'
-
class: Dist::Zilla::Plugin::DROLSKY::Precious
name: '@DROLSKY/DROLSKY::Precious'
version: '1.22'
-
class: Dist::Zilla::Plugin::Git::Check
config:
Dist::Zilla::Plugin::Git::Check:
untracked_files: die
Dist::Zilla::Role::Git::DirtyFiles:
allow_dirty:
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- Changes
- LICENSE
- Makefile.PL
- README.md
- cpanfile
- precious.toml
allow_dirty_match: []
changelog: Changes
Dist::Zilla::Role::Git::Repo:
git_version: 2.39.2
repo_root: .
name: '@DROLSKY/Git::Check'
version: '2.048'
-
class: Dist::Zilla::Plugin::Git::Commit
config:
Dist::Zilla::Plugin::Git::Commit:
add_files_in: []
commit_msg: v%V%n%n%c
signoff: 0
Dist::Zilla::Role::Git::DirtyFiles:
allow_dirty:
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- Changes
- LICENSE
- Makefile.PL
- README.md
- cpanfile
- precious.toml
allow_dirty_match: []
changelog: Changes
Dist::Zilla::Role::Git::Repo:
git_version: 2.39.2
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@DROLSKY/Commit generated files'
version: '2.048'
-
class: Dist::Zilla::Plugin::Git::Tag
config:
Dist::Zilla::Plugin::Git::Tag:
branch: ~
changelog: Changes
signed: 0
tag: v0.18
tag_format: v%V
tag_message: v%V
Dist::Zilla::Role::Git::Repo:
git_version: 2.39.2
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@DROLSKY/Git::Tag'
version: '2.048'
-
class: Dist::Zilla::Plugin::Git::Push
config:
Dist::Zilla::Plugin::Git::Push:
push_to:
- origin
remotes_must_exist: 1
Dist::Zilla::Role::Git::Repo:
git_version: 2.39.2
repo_root: .
name: '@DROLSKY/Git::Push'
version: '2.048'
-
class: Dist::Zilla::Plugin::BumpVersionAfterRelease
config:
Dist::Zilla::Plugin::BumpVersionAfterRelease:
finders:
- ':ExecFiles'
- ':InstallModules'
global: 0
munge_makefile_pl: 1
name: '@DROLSKY/BumpVersionAfterRelease'
version: '0.018'
-
class: Dist::Zilla::Plugin::Git::Commit
config:
Dist::Zilla::Plugin::Git::Commit:
add_files_in: []
commit_msg: 'Bump version after release'
signoff: 0
Dist::Zilla::Role::Git::DirtyFiles:
allow_dirty:
- Changes
- dist.ini
allow_dirty_match:
- (?^:.+)
changelog: Changes
Dist::Zilla::Role::Git::Repo:
git_version: 2.39.2
repo_root: .
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@DROLSKY/Commit version bump'
version: '2.048'
-
class: Dist::Zilla::Plugin::Git::Push
config:
Dist::Zilla::Plugin::Git::Push:
push_to:
- origin
remotes_must_exist: 1
Dist::Zilla::Role::Git::Repo:
git_version: 2.39.2
repo_root: .
name: '@DROLSKY/Push version bump'
version: '2.048'
-
class: Dist::Zilla::Plugin::DROLSKY::MakeMaker
config:
Dist::Zilla::Plugin::MakeMaker:
make_path: make
version: '6.030'
Dist::Zilla::Plugin::MakeMaker::Awesome:
version: '0.49'
Dist::Zilla::Role::TestRunner:
default_jobs: '12'
version: '6.030'
name: '@DROLSKY/DROLSKY::MakeMaker'
version: '1.22'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
version: '6.030'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':IncModules'
version: '6.030'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':TestFiles'
version: '6.030'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExtraTestFiles'
version: '6.030'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExecFiles'
version: '6.030'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':PerlExecFiles'
version: '6.030'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ShareFiles'
version: '6.030'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':MainModule'
version: '6.030'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':AllFiles'
version: '6.030'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':NoFiles'
version: '6.030'
-
class: Dist::Zilla::Plugin::FinderCode
name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
version: '6.030'
zilla:
class: Dist::Zilla::Dist::Builder
config:
is_trial: '0'
version: '6.030'
x_authority: cpan:DROLSKY
x_contributors:
- 'Aristotle Pagaltzis <pagaltzis@gmx.de>'
- 'Jesse Luehrs <doy@tozt.net>'
- 'Karen Etheridge <ether@cpan.org>'
- 'Tomas Doran <bobtfish@bobtfish.net>'
x_generated_by_perl: v5.32.1
x_serialization_backend: 'YAML::Tiny version 1.73'
x_spdx_expression: Artistic-2.0
Makefile.PL view on Meta::CPAN
# This Makefile.PL for Package-DeprecationManager was generated by
# Dist::Zilla::Plugin::DROLSKY::MakeMaker 1.22
# and Dist::Zilla::Plugin::MakeMaker::Awesome 0.49.
# Don't edit it but the dist.ini and plugins used to construct it.
use strict;
use warnings;
use ExtUtils::MakeMaker;
my %WriteMakefileArgs = (
"ABSTRACT" => "Manage deprecation warnings for your distribution",
"AUTHOR" => "Dave Rolsky <autarch\@urth.org>",
"CONFIGURE_REQUIRES" => {
"ExtUtils::MakeMaker" => 0
},
"DISTNAME" => "Package-DeprecationManager",
"LICENSE" => "artistic_2",
"NAME" => "Package::DeprecationManager",
"PREREQ_PM" => {
"Carp" => 0,
"List::Util" => "1.33",
"Package::Stash" => 0,
"Params::Util" => 0,
"Sub::Install" => 0,
"Sub::Util" => 0,
"strict" => 0,
"warnings" => 0
},
"TEST_REQUIRES" => {
"Exporter" => 0,
"ExtUtils::MakeMaker" => 0,
"File::Spec" => 0,
"Test::Fatal" => 0,
"Test::More" => "0.96",
"Test::Warnings" => 0
},
"VERSION" => "0.18",
"test" => {
"TESTS" => "t/*.t"
}
);
my %FallbackPrereqs = (
"Carp" => 0,
"Exporter" => 0,
"ExtUtils::MakeMaker" => 0,
"File::Spec" => 0,
"List::Util" => "1.33",
"Package::Stash" => 0,
"Params::Util" => 0,
"Sub::Install" => 0,
"Sub::Util" => 0,
"Test::Fatal" => 0,
"Test::More" => "0.96",
"Test::Warnings" => 0,
"strict" => 0,
"warnings" => 0
);
unless ( eval { ExtUtils::MakeMaker->VERSION('6.63_03') } ) {
delete $WriteMakefileArgs{TEST_REQUIRES};
delete $WriteMakefileArgs{BUILD_REQUIRES};
$WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
}
delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
WriteMakefile(%WriteMakefileArgs);
# NAME
Package::DeprecationManager - Manage deprecation warnings for your distribution
# VERSION
version 0.18
# SYNOPSIS
package My::Class;
use Package::DeprecationManager -deprecations => {
'My::Class::foo' => '0.02',
'My::Class::bar' => '0.05',
'feature-X' => '0.07',
};
sub foo {
deprecated( 'Do not call foo!' );
...
}
sub bar {
deprecated();
...
}
sub baz {
my %args = @_;
if ( $args{foo} ) {
deprecated(
message => ...,
feature => 'feature-X',
);
}
}
package Other::Class;
use My::Class -api_version => '0.04';
My::Class->new()->foo(); # warns
My::Class->new()->bar(); # does not warn
My::Class->new()->bar(); # does not warn again
# DESCRIPTION
This module allows you to manage a set of deprecations for one or more modules.
When you import `Package::DeprecationManager`, you must provide a set of
`-deprecations` as a hash ref. The keys are "feature" names, and the values
are the version when that feature was deprecated.
In many cases, you can simply use the fully qualified name of a subroutine or
method as the feature name. This works for cases where the whole subroutine is
deprecated. However, the feature names can be any string. This is useful if you
don't want to deprecate an entire subroutine, just a certain usage.
You can also provide an optional array reference in the `-ignore` parameter.
The values to be ignored can be package names or regular expressions (made with
`qr//`). Use this to ignore packages in your distribution that can appear on
the call stack when a deprecated feature is used.
As part of the import process, `Package::DeprecationManager` will export two
subroutines into its caller. It provides an `import()` sub for the caller and
a `deprecated()` sub.
The `import()` sub allows callers of _your_ class to specify an
`-api_version` parameter. If this is supplied, then deprecation warnings are
only issued for deprecations with API versions earlier than the one specified.
You must call the `deprecated()` sub in each deprecated subroutine. When
called, it will issue a warning using `Carp::cluck()`.
The `deprecated()` sub can be called in several ways. If you do not pass any
arguments, it will generate an appropriate warning message. If you pass a
single argument, this is used as the warning message.
Finally, you can call it with named arguments. Currently, the only allowed
names are `message` and `feature`. The `feature` argument should correspond
to the feature name passed in the `-deprecations` hash.
If you don't explicitly specify a feature, the `deprecated()` sub uses
`caller()` to identify its caller, using its fully qualified subroutine name.
A given deprecation warning is only issued once for a given package. This
module tracks this based on both the feature name _and_ the error message
itself. This means that if you provide several different error messages for the
same feature, all of those errors will appear.
## Other import() subs
This module works by installing an `import` sub in any package that uses it.
If that package _already_ has an `import` sub, then that `import` will be
called after any arguments passed for `Package::DeprecationManager` are
stripped out. You need to define your `import` sub before you `use
Package::DeprecationManager` to make this work:
package HasExporter;
use Exporter qw( import );
use Package::DeprecationManager -deprecations => {
'HasExporter::foo' => '0.02',
};
our @EXPORT_OK = qw( some_sub another_sub );
# DONATIONS
If you'd like to thank me for the work I've done on this module, please
consider making a "donation" to me via PayPal. I spend a lot of free time
creating free software, and would appreciate any support you'd care to offer.
Please note that **I am not suggesting that you must do this** in order for me
to continue working on this particular software. I will continue to do so,
inasmuch as I have in the past, for as long as it interests me.
Similarly, a donation made in this way will probably not make me work on this
software much more, unless I get so many donations that I can consider working
on free software full time, which seems unlikely at best.
To donate, log into PayPal and send money to autarch@urth.org or use the button
on this page: [http://www.urth.org/~autarch/fs-donation.html](http://www.urth.org/~autarch/fs-donation.html)
# CREDITS
The idea for this functionality and some of its implementation was originally
created as [Class::MOP::Deprecated](https://metacpan.org/pod/Class%3A%3AMOP%3A%3ADeprecated) by Goro Fuji.
# BUGS
Please report any bugs or feature requests to
`bug-package-deprecationmanager@rt.cpan.org`, or through the web interface at
[http://rt.cpan.org](http://rt.cpan.org). I will be notified, and then you'll automatically be
notified of progress on your bug as I make changes.
Bugs may be submitted at [https://github.com/moose/Package-DeprecationManager/issues](https://github.com/moose/Package-DeprecationManager/issues).
# SOURCE
The source code repository for Package-DeprecationManager can be found at [https://github.com/moose/Package-DeprecationManager](https://github.com/moose/Package-DeprecationManager).
# DONATIONS
If you'd like to thank me for the work I've done on this module, please
consider making a "donation" to me via PayPal. I spend a lot of free time
creating free software, and would appreciate any support you'd care to offer.
Please note that **I am not suggesting that you must do this** in order for me
to continue working on this particular software. I will continue to do so,
inasmuch as I have in the past, for as long as it interests me.
Similarly, a donation made in this way will probably not make me work on this
software much more, unless I get so many donations that I can consider working
on free software full time (let's all have a chuckle at that together).
To donate, log into PayPal and send money to autarch@urth.org, or use the
button at [https://houseabsolute.com/foss-donations/](https://houseabsolute.com/foss-donations/).
# AUTHOR
Dave Rolsky <autarch@urth.org>
# CONTRIBUTORS
- Aristotle Pagaltzis <pagaltzis@gmx.de>
- Jesse Luehrs <doy@tozt.net>
- Karen Etheridge <ether@cpan.org>
- Tomas Doran <bobtfish@bobtfish.net>
# COPYRIGHT AND LICENSE
This software is Copyright (c) 2023 by Dave Rolsky.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
The full text of the license can be found in the
`LICENSE` file included with this distribution.
azure-pipelines.yml view on Meta::CPAN
resources:
repositories:
- repository: ci-perl-helpers
type: github
name: houseabsolute/ci-perl-helpers
endpoint: houseabsolute
stages:
- template: templates/helpers/build.yml@ci-perl-helpers
parameters:
debug: true
- template: templates/helpers/linux.yml@ci-perl-helpers
parameters:
debug: true
test_xt: true
use_default_perls: true
- template: templates/helpers/macos.yml@ci-perl-helpers
parameters:
debug: true
use_default_perls: true
- template: templates/helpers/windows.yml@ci-perl-helpers
parameters:
debug: true
use_default_perls: true
# This file is generated by Dist::Zilla::Plugin::CPANFile v6.030
# Do not edit this file directly. To change prereqs, edit the `dist.ini` file.
requires "Carp" => "0";
requires "List::Util" => "1.33";
requires "Package::Stash" => "0";
requires "Params::Util" => "0";
requires "Sub::Install" => "0";
requires "Sub::Util" => "0";
requires "strict" => "0";
requires "warnings" => "0";
on 'test' => sub {
requires "Exporter" => "0";
requires "ExtUtils::MakeMaker" => "0";
requires "File::Spec" => "0";
requires "Test::Fatal" => "0";
requires "Test::More" => "0.96";
requires "Test::Warnings" => "0";
};
on 'test' => sub {
recommends "CPAN::Meta" => "2.120900";
};
on 'configure' => sub {
requires "ExtUtils::MakeMaker" => "0";
};
on 'develop' => sub {
requires "Capture::Tiny" => "0";
requires "Encode" => "0";
requires "File::Spec" => "0";
requires "FindBin" => "0";
requires "IO::Handle" => "0";
requires "IPC::Open3" => "0";
requires "Perl::Critic" => "1.138";
requires "Perl::Critic::Moose" => "1.05";
requires "Perl::Tidy" => "20210111";
requires "Pod::Checker" => "1.74";
requires "Pod::Coverage::TrustPod" => "0";
requires "Pod::Tidy" => "0.10";
requires "Pod::Wordlist" => "0";
requires "Test::CPAN::Changes" => "0.19";
requires "Test::CPAN::Meta::JSON" => "0.16";
requires "Test::EOL" => "0";
requires "Test::Mojibake" => "0";
requires "Test::More" => "0.96";
requires "Test::NoTabs" => "0";
requires "Test::Pod" => "1.41";
requires "Test::Pod::Coverage" => "1.08";
requires "Test::Portability::Files" => "0";
requires "Test::Spelling" => "0.12";
requires "Test::Version" => "2.05";
requires "perl" => "5.006";
};
dev-bin/install-xt-tools.sh view on Meta::CPAN
#!/bin/sh
set -e
TARGET="$HOME/bin"
if [ $(id -u) -eq 0 ]; then
TARGET="/usr/local/bin"
fi
echo "Installing dev tools to $TARGET"
mkdir -p $TARGET
curl --silent --location \
https://raw.githubusercontent.com/houseabsolute/ubi/master/bootstrap/bootstrap-ubi.sh |
sh
"$TARGET/ubi" --project houseabsolute/precious --in "$TARGET"
"$TARGET/ubi" --project houseabsolute/omegasort --in "$TARGET"
echo "Add $TARGET to your PATH in order to use precious for linting and tidying"
name = Package-DeprecationManager
author = Dave Rolsky <autarch@urth.org>
license = Artistic_2_0
copyright_holder = Dave Rolsky
; authordep Dist::Zilla::PluginBundle::DROLSKY = 1.22
[@DROLSKY]
dist = Package-DeprecationManager
stopwords = Goro
stopwords = deprecations
; We don't want to use ns::clean or autoclean in this distro, so it's easier
; to just skip this test
-remove = Test::CleanNamespaces
-remove = Test::Synopsis
git/hooks/pre-commit.sh view on Meta::CPAN
#!/bin/bash
status=0
PRECIOUS=$(which precious)
if [[ -z $PRECIOUS ]]; then
PRECIOUS=./bin/precious
fi
"$PRECIOUS" lint -s
if (( $? != 0 )); then
status+=1
fi
exit $status
git/setup.pl view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use Cwd qw( abs_path );
symlink_hook('pre-commit');
sub symlink_hook {
my $hook = shift;
my $dot = ".git/hooks/$hook";
my $file = "git/hooks/$hook.sh";
my $link = "../../$file";
if ( -e $dot ) {
if ( -l $dot ) {
return if readlink $dot eq $link;
}
warn "You already have a hook at $dot!\n";
return;
}
symlink $link, $dot
or die "Could not link $dot => $link: $!";
}
lib/Package/DeprecationManager.pm view on Meta::CPAN
package Package::DeprecationManager;
use strict;
use warnings;
our $VERSION = '0.18';
use Carp qw( croak );
use List::Util 1.33 qw( any );
use Package::Stash;
use Params::Util qw( _HASH0 );
use Sub::Install;
use Sub::Util qw( set_subname );
sub import {
shift;
my %args = @_;
croak
'You must provide a hash reference -deprecations parameter when importing Package::DeprecationManager'
unless $args{-deprecations} && _HASH0( $args{-deprecations} );
my %registry;
my $caller = caller();
my $orig_import = $caller->can('import');
my $import = _build_import( \%registry, $orig_import );
my $warn
= _build_warn( \%registry, $args{-deprecations}, $args{-ignore} );
# We need to remove this to prevent a 'subroutine redefined' warning.
if ($orig_import) {
Package::Stash->new($caller)->remove_symbol('&import');
}
Sub::Install::install_sub(
{
code => set_subname( $caller . '::import', $import ),
into => $caller,
as => 'import',
}
);
Sub::Install::install_sub(
{
code => set_subname( $caller . '::deprecated', $warn ),
into => $caller,
as => 'deprecated',
}
);
return;
}
sub _build_import {
my $registry = shift;
my $orig_import = shift;
return sub {
my $class = shift;
my @args;
my $api_version;
## no critic (ControlStructures::ProhibitCStyleForLoops)
for ( my $i = 0; $i < @_; $i++ ) {
if ( $_[$i] eq '-api_version' || $_[$i] eq '-compatible' ) {
$api_version = $_[ ++$i ];
}
else {
push @args, $_[$i];
}
}
## use critic
my $caller = caller();
$registry->{$caller} = $api_version
if defined $api_version;
if ($orig_import) {
@_ = ( $class, @args );
goto &{$orig_import};
}
return;
};
}
sub _build_warn {
my $registry = shift;
my $deprecated_at = shift;
my $ignore = shift;
my %ignore = map { $_ => 1 } grep { !ref } @{ $ignore || [] };
my @ignore_res = grep {ref} @{ $ignore || [] };
my %warned;
return sub {
my %args = @_ < 2 ? ( message => shift ) : @_;
my ( $package, undef, undef, $sub ) = caller(1);
my $skipped = 1;
if ( @ignore_res || keys %ignore ) {
while (
defined $package
&& ( $ignore{$package} || any { $package =~ $_ } @ignore_res )
) {
$package = caller( $skipped++ );
}
}
$package = 'unknown package' unless defined $package;
unless ( defined $args{feature} ) {
$args{feature} = $sub;
}
my $compat_version = $registry->{$package};
my $at = $deprecated_at->{ $args{feature} };
return
if defined $compat_version
&& defined $deprecated_at
&& $compat_version lt $at;
my $msg;
if ( defined $args{message} ) {
$msg = $args{message};
}
else {
$msg = "$args{feature} has been deprecated";
$msg .= " since version $at"
if defined $at;
}
return if $warned{$package}{ $args{feature} }{$msg};
$warned{$package}{ $args{feature} }{$msg} = 1;
# We skip at least two levels. One for this anon sub, and one for the
# sub calling it.
local $Carp::CarpLevel = $Carp::CarpLevel + $skipped;
Carp::cluck($msg);
};
}
1;
# ABSTRACT: Manage deprecation warnings for your distribution
__END__
=pod
=encoding UTF-8
=head1 NAME
Package::DeprecationManager - Manage deprecation warnings for your distribution
=head1 VERSION
version 0.18
=head1 SYNOPSIS
package My::Class;
use Package::DeprecationManager -deprecations => {
'My::Class::foo' => '0.02',
'My::Class::bar' => '0.05',
'feature-X' => '0.07',
};
sub foo {
deprecated( 'Do not call foo!' );
...
}
sub bar {
deprecated();
...
}
sub baz {
my %args = @_;
if ( $args{foo} ) {
deprecated(
message => ...,
feature => 'feature-X',
);
}
}
package Other::Class;
use My::Class -api_version => '0.04';
My::Class->new()->foo(); # warns
My::Class->new()->bar(); # does not warn
My::Class->new()->bar(); # does not warn again
=head1 DESCRIPTION
This module allows you to manage a set of deprecations for one or more modules.
When you import C<Package::DeprecationManager>, you must provide a set of
C<-deprecations> as a hash ref. The keys are "feature" names, and the values
are the version when that feature was deprecated.
In many cases, you can simply use the fully qualified name of a subroutine or
method as the feature name. This works for cases where the whole subroutine is
deprecated. However, the feature names can be any string. This is useful if you
don't want to deprecate an entire subroutine, just a certain usage.
You can also provide an optional array reference in the C<-ignore> parameter.
The values to be ignored can be package names or regular expressions (made with
C<qr//>). Use this to ignore packages in your distribution that can appear on
the call stack when a deprecated feature is used.
As part of the import process, C<Package::DeprecationManager> will export two
subroutines into its caller. It provides an C<import()> sub for the caller and
a C<deprecated()> sub.
The C<import()> sub allows callers of I<your> class to specify an
C<-api_version> parameter. If this is supplied, then deprecation warnings are
only issued for deprecations with API versions earlier than the one specified.
You must call the C<deprecated()> sub in each deprecated subroutine. When
called, it will issue a warning using C<Carp::cluck()>.
The C<deprecated()> sub can be called in several ways. If you do not pass any
arguments, it will generate an appropriate warning message. If you pass a
single argument, this is used as the warning message.
Finally, you can call it with named arguments. Currently, the only allowed
names are C<message> and C<feature>. The C<feature> argument should correspond
to the feature name passed in the C<-deprecations> hash.
If you don't explicitly specify a feature, the C<deprecated()> sub uses
C<caller()> to identify its caller, using its fully qualified subroutine name.
A given deprecation warning is only issued once for a given package. This
module tracks this based on both the feature name I<and> the error message
itself. This means that if you provide several different error messages for the
same feature, all of those errors will appear.
=head2 Other import() subs
This module works by installing an C<import> sub in any package that uses it.
If that package I<already> has an C<import> sub, then that C<import> will be
called after any arguments passed for C<Package::DeprecationManager> are
stripped out. You need to define your C<import> sub before you C<use
Package::DeprecationManager> to make this work:
package HasExporter;
use Exporter qw( import );
use Package::DeprecationManager -deprecations => {
'HasExporter::foo' => '0.02',
};
our @EXPORT_OK = qw( some_sub another_sub );
=head1 DONATIONS
If you'd like to thank me for the work I've done on this module, please
consider making a "donation" to me via PayPal. I spend a lot of free time
creating free software, and would appreciate any support you'd care to offer.
Please note that B<I am not suggesting that you must do this> in order for me
to continue working on this particular software. I will continue to do so,
inasmuch as I have in the past, for as long as it interests me.
Similarly, a donation made in this way will probably not make me work on this
software much more, unless I get so many donations that I can consider working
on free software full time, which seems unlikely at best.
To donate, log into PayPal and send money to autarch@urth.org or use the button
on this page: L<http://www.urth.org/~autarch/fs-donation.html>
=head1 CREDITS
The idea for this functionality and some of its implementation was originally
created as L<Class::MOP::Deprecated> by Goro Fuji.
=head1 BUGS
Please report any bugs or feature requests to
C<bug-package-deprecationmanager@rt.cpan.org>, or through the web interface at
L<http://rt.cpan.org>. I will be notified, and then you'll automatically be
notified of progress on your bug as I make changes.
Bugs may be submitted at L<https://github.com/moose/Package-DeprecationManager/issues>.
=head1 SOURCE
The source code repository for Package-DeprecationManager can be found at L<https://github.com/moose/Package-DeprecationManager>.
=head1 DONATIONS
If you'd like to thank me for the work I've done on this module, please
consider making a "donation" to me via PayPal. I spend a lot of free time
creating free software, and would appreciate any support you'd care to offer.
Please note that B<I am not suggesting that you must do this> in order for me
to continue working on this particular software. I will continue to do so,
inasmuch as I have in the past, for as long as it interests me.
Similarly, a donation made in this way will probably not make me work on this
software much more, unless I get so many donations that I can consider working
on free software full time (let's all have a chuckle at that together).
To donate, log into PayPal and send money to autarch@urth.org, or use the
button at L<https://houseabsolute.com/foss-donations/>.
=head1 AUTHOR
Dave Rolsky <autarch@urth.org>
=head1 CONTRIBUTORS
=for stopwords Aristotle Pagaltzis Jesse Luehrs Karen Etheridge Tomas Doran
=over 4
=item *
Aristotle Pagaltzis <pagaltzis@gmx.de>
=item *
Jesse Luehrs <doy@tozt.net>
=item *
Karen Etheridge <ether@cpan.org>
=item *
Tomas Doran <bobtfish@bobtfish.net>
=back
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2023 by Dave Rolsky.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
The full text of the license can be found in the
F<LICENSE> file included with this distribution.
=cut
perlcriticrc view on Meta::CPAN
severity = 3
verbose = 11
theme = (core && (pbp || bugs || maintenance || cosmetic || complexity || security || tests)) || moose
program-extensions = pl psgi t
exclude = Subroutines::ProhibitCallsToUndeclaredSubs
[BuiltinFunctions::ProhibitStringySplit]
severity = 3
[CodeLayout::RequireTrailingCommas]
severity = 3
[ControlStructures::ProhibitCStyleForLoops]
severity = 3
[InputOutput::RequireCheckedSyscalls]
functions = :builtins
exclude_functions = sleep
severity = 3
[RegularExpressions::ProhibitComplexRegexes]
max_characters = 200
[RegularExpressions::ProhibitUnusualDelimiters]
severity = 3
[Subroutines::ProhibitUnusedPrivateSubroutines]
private_name_regex = _(?!build)\w+
[TestingAndDebugging::ProhibitNoWarnings]
allow = redefine
[ValuesAndExpressions::ProhibitEmptyQuotes]
severity = 3
[ValuesAndExpressions::ProhibitInterpolationOfLiterals]
severity = 3
[ValuesAndExpressions::RequireUpperCaseHeredocTerminator]
severity = 3
[Variables::ProhibitPackageVars]
add_packages = Carp Test::Builder
[-Subroutines::RequireFinalReturn]
# This incorrectly thinks signatures are prototypes.
[-Subroutines::ProhibitSubroutinePrototypes]
[-ErrorHandling::RequireCarping]
# No need for /xsm everywhere
[-RegularExpressions::RequireDotMatchAnything]
[-RegularExpressions::RequireExtendedFormatting]
[-RegularExpressions::RequireLineBoundaryMatching]
# http://stackoverflow.com/questions/2275317/why-does-perlcritic-dislike-using-shift-to-populate-subroutine-variables
[-Subroutines::RequireArgUnpacking]
# "use v5.14" is more readable than "use 5.014"
[-ValuesAndExpressions::ProhibitVersionStrings]
# Explicitly returning undef is a _good_ thing in many cases, since it
# prevents very common errors when using a sub in list context to construct a
# hash and ending up with a missing value or key.
[-Subroutines::ProhibitExplicitReturnUndef]
# Sometimes I want to write "return unless $x > 4"
[-ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions]
-l=78
-i=4
-ci=4
-se
-b
-bar
-boc
-vt=0
-vtc=0
-cti=0
-pt=1
-bt=1
-sbt=1
-bbt=1
-nolq
-npro
-nsfs
--blank-lines-before-packages=0
--opening-hash-brace-right
--no-outdent-long-comments
--iterations=2
-wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x="
precious.toml view on Meta::CPAN
exclude = [
".build/**/*",
"Package-DeprecationManager-*/**/*",
"blib/**/*",
"t/00-*",
"t/author-*",
"t/release-*",
"t/zzz-*",
"xt/**/*",
]
[commands.omegasort-gitignore]
type = "both"
include = "**/.gitignore"
cmd = [ "omegasort", "--sort=path" ]
lint_flags = "--check"
tidy_flags = "--in-place"
ok_exit_codes = 0
lint_failure_exit_codes = 1
[commands.perlcritic]
type = "lint"
include = [ "**/*.{pl,pm,t,psgi}" ]
cmd = [ "perlcritic", "--profile=$PRECIOUS_ROOT/perlcriticrc" ]
ok_exit_codes = 0
lint_failure_exit_codes = 2
[commands.perltidy]
type = "both"
include = [ "**/*.{pl,pm,t,psgi}" ]
cmd = [ "perltidy", "--profile=$PRECIOUS_ROOT/perltidyrc" ]
lint_flags = [ "--assert-tidy", "--no-standard-output", "--outfile=/dev/null" ]
tidy_flags = [ "--backup-and-modify-in-place", "--backup-file-extension=/" ]
ok_exit_codes = 0
lint_failure_exit_codes = 2
ignore_stderr = "Begin Error Output Stream"
[commands.podchecker]
type = "lint"
include = [ "**/*.{pl,pm,pod}" ]
cmd = [ "podchecker", "--warnings", "--warnings" ]
ok_exit_codes = [ 0, 2 ]
lint_failure_exit_codes = 1
ignore_stderr = [ ".+ pod syntax OK", ".+ does not contain any pod commands" ]
[commands.podtidy]
type = "tidy"
include = [ "**/*.{pl,pm,pod}" ]
cmd = [ "podtidy", "--columns", "80", "--inplace", "--nobackup" ]
ok_exit_codes = 0
lint_failure_exit_codes = 1
t/00-report-prereqs.dd view on Meta::CPAN
do { my $x = {
'configure' => {
'requires' => {
'ExtUtils::MakeMaker' => '0'
}
},
'develop' => {
'requires' => {
'Capture::Tiny' => '0',
'Encode' => '0',
'File::Spec' => '0',
'FindBin' => '0',
'IO::Handle' => '0',
'IPC::Open3' => '0',
'Perl::Critic' => '1.138',
'Perl::Critic::Moose' => '1.05',
'Perl::Tidy' => '20210111',
'Pod::Checker' => '1.74',
'Pod::Coverage::TrustPod' => '0',
'Pod::Tidy' => '0.10',
'Pod::Wordlist' => '0',
'Test::CPAN::Changes' => '0.19',
'Test::CPAN::Meta::JSON' => '0.16',
'Test::EOL' => '0',
'Test::Mojibake' => '0',
'Test::More' => '0.96',
'Test::NoTabs' => '0',
'Test::Pod' => '1.41',
'Test::Pod::Coverage' => '1.08',
'Test::Portability::Files' => '0',
'Test::Spelling' => '0.12',
'Test::Version' => '2.05',
'perl' => '5.006'
}
},
'runtime' => {
'requires' => {
'Carp' => '0',
'List::Util' => '1.33',
'Package::Stash' => '0',
'Params::Util' => '0',
'Sub::Install' => '0',
'Sub::Util' => '0',
'strict' => '0',
'warnings' => '0'
}
},
'test' => {
'recommends' => {
'CPAN::Meta' => '2.120900'
},
'requires' => {
'Exporter' => '0',
'ExtUtils::MakeMaker' => '0',
'File::Spec' => '0',
'Test::Fatal' => '0',
'Test::More' => '0.96',
'Test::Warnings' => '0'
}
}
};
$x;
}
t/00-report-prereqs.t view on Meta::CPAN
#!perl
use strict;
use warnings;
# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.029
use Test::More tests => 1;
use ExtUtils::MakeMaker;
use File::Spec;
# from $version::LAX
my $lax_version_re =
qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
|
(?:\.[0-9]+) (?:_[0-9]+)?
) | (?:
v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
|
(?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)?
)
)/x;
# hide optional CPAN::Meta modules from prereq scanner
# and check if they are available
my $cpan_meta = "CPAN::Meta";
my $cpan_meta_pre = "CPAN::Meta::Prereqs";
my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic
# Verify requirements?
my $DO_VERIFY_PREREQS = 1;
sub _max {
my $max = shift;
$max = ( $_ > $max ) ? $_ : $max for @_;
return $max;
}
sub _merge_prereqs {
my ($collector, $prereqs) = @_;
# CPAN::Meta::Prereqs object
if (ref $collector eq $cpan_meta_pre) {
return $collector->with_merged_prereqs(
CPAN::Meta::Prereqs->new( $prereqs )
);
}
# Raw hashrefs
for my $phase ( keys %$prereqs ) {
for my $type ( keys %{ $prereqs->{$phase} } ) {
for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
$collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
}
}
}
return $collector;
}
my @include = qw(
);
my @exclude = qw(
);
# Add static prereqs to the included modules list
my $static_prereqs = do './t/00-report-prereqs.dd';
# Merge all prereqs (either with ::Prereqs or a hashref)
my $full_prereqs = _merge_prereqs(
( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
$static_prereqs
);
# Add dynamic prereqs to the included modules list (if we can)
my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
my $cpan_meta_error;
if ( $source && $HAS_CPAN_META
&& (my $meta = eval { CPAN::Meta->load_file($source) } )
) {
$full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
}
else {
$cpan_meta_error = $@; # capture error from CPAN::Meta->load_file($source)
$source = 'static metadata';
}
my @full_reports;
my @dep_errors;
my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
# Add static includes into a fake section
for my $mod (@include) {
$req_hash->{other}{modules}{$mod} = 0;
}
for my $phase ( qw(configure build test runtime develop other) ) {
next unless $req_hash->{$phase};
next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
for my $type ( qw(requires recommends suggests conflicts modules) ) {
next unless $req_hash->{$phase}{$type};
my $title = ucfirst($phase).' '.ucfirst($type);
my @reports = [qw/Module Want Have/];
for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
next if grep { $_ eq $mod } @exclude;
my $want = $req_hash->{$phase}{$type}{$mod};
$want = "undef" unless defined $want;
$want = "any" if !$want && $want == 0;
if ($mod eq 'perl') {
push @reports, ['perl', $want, $]];
next;
}
my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
my $file = $mod;
$file =~ s{::}{/}g;
$file .= ".pm";
my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
if ($prefix) {
my $have = MM->parse_version( File::Spec->catfile($prefix, $file) );
$have = "undef" unless defined $have;
push @reports, [$mod, $want, $have];
if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
if ( $have !~ /\A$lax_version_re\z/ ) {
push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
}
elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
push @dep_errors, "$mod version '$have' is not in required range '$want'";
}
}
}
else {
push @reports, [$mod, $want, "missing"];
if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
push @dep_errors, "$mod is not installed ($req_string)";
}
}
}
if ( @reports ) {
push @full_reports, "=== $title ===\n\n";
my $ml = _max( map { length $_->[0] } @reports );
my $wl = _max( map { length $_->[1] } @reports );
my $hl = _max( map { length $_->[2] } @reports );
if ($type eq 'modules') {
splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl];
push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports;
}
else {
splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
}
push @full_reports, "\n";
}
}
}
if ( @full_reports ) {
diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
}
if ( $cpan_meta_error || @dep_errors ) {
diag "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n";
}
if ( $cpan_meta_error ) {
my ($orig_source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
diag "\nCPAN::Meta->load_file('$orig_source') failed with: $cpan_meta_error\n";
}
if ( @dep_errors ) {
diag join("\n",
"\nThe following REQUIRED prerequisites were not satisfied:\n",
@dep_errors,
"\n"
);
}
pass('Reported prereqs');
# vim: ts=4 sts=4 sw=4 et:
use strict;
use warnings;
use Test::More 0.88;
use Test::Fatal;
use Test::Warnings qw( warning warnings );
{
## no critic (BuiltinFunctions::ProhibitStringyEval, ErrorHandling::RequireCheckingReturnValueOfEval)
like(
exception {
eval 'package Whatever; use Package::DeprecationManager;';
die $@ if $@;
},
qr/^\QYou must provide a hash reference -deprecations parameter when importing Package::DeprecationManager/,
'must provide a set of deprecations when using Package::DeprecationManager'
);
}
## no critic (Modules::ProhibitMultiplePackages)
{
package Foo;
use Package::DeprecationManager -deprecations => {
'Foo::foo' => '0.02',
'Foo::bar' => '0.03',
'Foo::baz' => '1.21',
'not a sub' => '1.23',
};
sub foo {
deprecated('foo is deprecated');
}
sub bar {
deprecated('bar is deprecated');
}
sub baz {
deprecated();
}
sub quux {
if ( $_[0] > 5 ) {
deprecated(
message => 'quux > 5 has been deprecated',
feature => 'not a sub',
);
}
}
sub varies {
deprecated("The varies sub varies: $_[0]");
}
}
{
package Bar;
Foo->import();
::like(
::warning { Foo::foo() },
qr/\Qfoo is deprecated/,
'deprecation warning for foo'
);
::like(
::warning { Foo::bar() },
qr/\Qbar is deprecated/,
'deprecation warning for bar'
);
::like(
::warning { Foo::baz() },
qr/\QFoo::baz has been deprecated since version 1.21/,
'deprecation warning for baz, and message is generated by Package::DeprecationManager'
);
::is_deeply(
[ ::warnings { Foo::foo() } ],
[],
'no warning on second call to foo'
);
::is_deeply(
[ ::warnings { Foo::bar() } ],
[],
'no warning on second call to bar'
);
::is_deeply(
[ ::warnings { Foo::baz() } ],
[],
'no warning on second call to baz'
);
::like(
::warning { Foo::varies(1) },
qr/\QThe varies sub varies: 1/,
'warning for varies sub'
);
::like(
::warning { Foo::varies(2) },
qr/\QThe varies sub varies: 2/,
'warning for varies sub with different error'
);
::is_deeply(
[ ::warnings { Foo::varies(1) } ],
[],
'no warning for varies sub with same message as first call'
);
}
{
package Baz;
Foo->import( -api_version => '0.01' );
::is_deeply(
[ ::warnings { Foo::foo() } ],
[],
'no warning for foo with api_version = 0.01'
);
::is_deeply(
[ ::warnings { Foo::bar() } ],
[],
'no warning for bar with api_version = 0.01'
);
::is_deeply(
[ ::warnings { Foo::baz() } ],
[],
'no warning for baz with api_version = 0.01'
);
}
{
package Quux;
Foo->import( -api_version => '1.17' );
::like(
::warning { Foo::foo() },
qr/\Qfoo is deprecated/,
'deprecation warning for foo with api_version = 1.17'
);
::like(
::warning { Foo::bar() },
qr/\Qbar is deprecated/,
'deprecation warning for bar with api_version = 1.17'
);
::is_deeply(
[ ::warnings { Foo::baz() } ],
[],
'no warning for baz with api_version = 1.17'
);
}
{
package Another;
Foo->import();
::is_deeply(
[ ::warnings { Foo::quux(1) } ],
[],
'no warning for quux(1)'
);
::like(
::warning { Foo::quux(10) },
qr/\Qquux > 5 has been deprecated/,
'got a warning for quux(10)'
);
}
{
package Dep;
use Package::DeprecationManager -deprecations => {
'Dep::foo' => '1.00',
},
-ignore => [ 'My::Package1', 'My::Package2' ];
sub foo {
deprecated('foo is deprecated');
}
}
{
package Dep2;
use Package::DeprecationManager -deprecations => {
'Dep2::bar' => '1.00',
},
-ignore => [qr/My::Package[12]/];
sub bar {
deprecated('bar is deprecated');
}
}
{
package My::Package1;
sub foo { Dep::foo() }
sub bar { Dep2::bar() }
}
{
package My::Package2;
sub foo { My::Package1::foo() }
sub bar { My::Package1::bar() }
}
{
package My::Baz;
::like(
::warning { My::Package2::foo() },
qr/^foo is deprecated at t.basic\.t line \d+\.?\s+My::Baz/,
'deprecation warning for call to My::Package2::foo() and mentions My::Baz but not My::Package[12]'
);
::is_deeply(
[ ::warnings { My::Package2::foo() } ],
[],
'no deprecation warning for second call to My::Package2::foo()'
);
::is_deeply(
[ ::warnings { My::Package1::foo() } ],
[],
'no deprecation warning for call to My::Package1::foo()'
);
::like(
::warning { My::Package2::bar() },
qr/^bar is deprecated at t.basic\.t line \d+\.?\s+My::Baz/,
'deprecation warning for call to My::Package2::foo() and mentions My::Baz but not My::Package[12]'
);
::is_deeply(
[ ::warnings { My::Package2::bar() } ],
[],
'no deprecation warning for second call to My::Package2::bar()'
);
}
{
package My::Quux;
::like(
::warning { My::Package1::foo() },
qr/^foo is deprecated at t.basic\.t line \d+\.?\s+My::Quux/,
'deprecation warning for call to My::Package1::foo() and mentions My::Quux but not My::Package[12]'
);
::is_deeply(
[ ::warnings { My::Package1::foo() } ],
[],
'no deprecation warning for second call to My::Package1::foo()'
);
}
done_testing();
use strict;
use warnings;
use Test::More 0.88;
use Test::Warnings qw( warnings );
## no critic (Modules::ProhibitMultiplePackages)
{
package Foo;
our $VERSION = '0.03';
use Exporter qw( import );
our @EXPORT_OK = qw( exported );
use Package::DeprecationManager -deprecations => {
'Foo::foo' => '0.02',
};
sub foo {
deprecated();
}
sub exported {
return 'exported';
}
}
{
package Bar;
Foo->import( 'exported', -api_version => '0.01' );
::is_deeply(
[ ::warnings { Foo::foo() } ],
[],
'no warning for foo with api_version = 0.01'
);
::is(
exported(),
'exported',
'sub exported by Foo was imported and work as expected'
);
}
done_testing();
xt/author/00-compile.t view on Meta::CPAN
use 5.006;
use strict;
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.058
use Test::More;
plan tests => 2;
my @module_files = (
'Package/DeprecationManager.pm'
);
# no fake home requested
my @switches = (
-d 'blib' ? '-Mblib' : '-Ilib',
);
use File::Spec;
use IPC::Open3;
use IO::Handle;
open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
my @warnings;
for my $lib (@module_files)
{
# see L<perlfaq8/How can I capture STDERR from an external command?>
my $stderr = IO::Handle->new;
diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} }
$^X, @switches, '-e', "require q[$lib]"))
if $ENV{PERL_COMPILE_TEST_DEBUG};
my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]");
binmode $stderr, ':crlf' if $^O eq 'MSWin32';
my @_warnings = <$stderr>;
waitpid($pid, 0);
is($?, 0, "$lib loaded ok");
shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/
and not eval { +require blib; blib->VERSION('1.01') };
if (@_warnings)
{
warn @_warnings;
push @warnings, @_warnings;
}
}
is(scalar(@warnings), 0, 'no warnings found')
or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) );
xt/author/eol.t view on Meta::CPAN
use strict;
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19
use Test::More 0.88;
use Test::EOL;
my @files = (
'lib/Package/DeprecationManager.pm',
't/00-report-prereqs.dd',
't/00-report-prereqs.t',
't/basic.t',
't/export.t'
);
eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files;
done_testing;
xt/author/mojibake.t view on Meta::CPAN
#!perl
use strict;
use warnings qw(all);
use Test::More;
use Test::Mojibake;
all_files_encoding_ok();
xt/author/no-tabs.t view on Meta::CPAN
use strict;
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.15
use Test::More 0.88;
use Test::NoTabs;
my @files = (
'lib/Package/DeprecationManager.pm',
't/00-report-prereqs.dd',
't/00-report-prereqs.t',
't/basic.t',
't/export.t'
);
notabs_ok($_) foreach @files;
done_testing;
xt/author/pod-coverage.t view on Meta::CPAN
#!perl
# This file was automatically generated by Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable 0.07.
use Test::Pod::Coverage 1.08;
use Test::More 0.88;
BEGIN {
if ( $] <= 5.008008 ) {
plan skip_all => 'These tests require Pod::Coverage::TrustPod, which only works with Perl 5.8.9+';
}
}
use Pod::Coverage::TrustPod;
my %skip = map { $_ => 1 } qw( );
my @modules;
for my $module ( all_modules() ) {
next if $skip{$module};
push @modules, $module;
}
plan skip_all => 'All the modules we found were excluded from POD coverage test.'
unless @modules;
plan tests => scalar @modules;
my %trustme = ();
my @also_private;
for my $module ( sort @modules ) {
pod_coverage_ok(
$module,
{
coverage_class => 'Pod::Coverage::TrustPod',
also_private => \@also_private,
trustme => $trustme{$module} || [],
},
"pod coverage for $module"
);
}
done_testing();
xt/author/pod-spell.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.007005
use Test::Spelling 0.12;
use Pod::Wordlist;
add_stopwords(<DATA>);
all_pod_files_spelling_ok( qw( bin lib ) );
__DATA__
Aristotle
DROLSKY
DROLSKY's
Dave
DeprecationManager
Doran
Etheridge
Goro
Jesse
Karen
Luehrs
Package
Pagaltzis
PayPal
Rolsky
Rolsky's
Tomas
autarch
bobtfish
deprecations
doy
drolsky
ether
lib
pagaltzis