Kwalitee Issues

meta_yml_conforms_to_known_spec

Take a look at the META.yml Spec at https://metacpan.org/pod/CPAN::Meta::History::Meta_1_4 (for version 1.4) or https://metacpan.org/pod/CPAN::Meta::Spec (for version 2), and change your META.yml accordingly.

Error: License '<undef>' is invalid (license) [Validation: 1.3];Missing mandatory field, 'license' (license) [Validation: 1.3]

manifest_matches_dist

Run a proper command ("make manifest" or "./Build manifest", maybe with a force option), or use a distribution builder to generate the MANIFEST. Or update MANIFEST manually.

Error:

  • MANIFEST (140) does not match dist (278):
  • Missing in MANIFEST: ._Changes, ._LICENSE, ._Makefile.PL, ._README, ._Todo, lib/Module/._Pluggable.pm, lib/WWW/Mechanize/._Pluggable.pm, lib/WWW/Mechanize/Pluggable/._Design.pm, lib/WWW/Mechanize/Plugin/._Cookbook.pm, lib/WWW/Mechanize/Plugin/._HelloWorld.pm, t/._00.load.t, t/._001_load.t, t/._002_plugin.t, t/._add_header.t, t/._aliases.t, t/._area_link.html, t/._area_link.t, t/._autocheck.t, t/._clone.t, t/._die.t, t/._errors.err, t/._field.html, t/._field.t, t/._find_image.t, t/._find_link-warnings.t, t/._find_link.html, t/._find_link.t, t/._form-parsing.t, t/._frames.html, t/._frames.t, t/._google.html, t/._hooks.t, t/._image-new.t, t/._image-parse.html, t/._image-parse.t, t/._link-base.t, t/._link-relative.t, t/._link.t, t/._mech-dump.t, t/._new.t, t/._plugin_args.t, t/._pod-coverage.t, t/._pod.t, t/._regex-error.t, t/._select.html, t/._select.t, t/._taint.t, t/._tick.html, t/._tick.t, t/._upload.html, t/._upload.t, t/._warn.t, t/._warnings.t, t/acme/Acme/MyTest/Plugin/._Foo.pm, t/lib/Acme/MyTest/Plugin/._Foo.pm, t/lib/InnerTest/Plugin/._Foo.pm, t/lib/MyOtherTest/Plugin/._Bar.pm, t/lib/MyOtherTest/Plugin/._Foo.pm, t/lib/MyOtherTest/Plugin/._Quux.pm, t/lib/MyOtherTest/Plugin/Quux/._Foo.pm, t/lib/MyTest/Extend/Plugin/._Bar.pm, t/lib/MyTest/Plugin/._Bar.pm, t/lib/MyTest/Plugin/._Foo.pm, t/lib/MyTest/Plugin/Quux/._Foo.pm, t/lib/WWW/Mechanize/Plugin/._Echo.pm, t/lib/WWW/Mechanize/Plugin/Deeply/._Nested.pm, t/live/._back.t, t/live/._click.t, t/live/._follow.t, t/live/._follow_link.t, t/live/._form.t, t/live/._get.t, t/live/._hooks.t, t/live/._reload.t, t/live/._submit.t, t/local/._LocalServer.pm, t/local/._back.t, t/local/._back.t.orig, t/local/._click.t, t/local/._click_button.t, t/local/._failure.t, t/local/._follow.t, t/local/._form.t, t/local/._get.t, t/local/._hooks.t, t/local/._log-server, t/local/._overload.t, t/local/._page_stack.t, t/local/._plugin.t, t/local/._referer-server, t/local/._referer.t, t/local/._reload-old.t, t/local/._reload.t, t/local/._submit.t, t/notaint/._00.load.t, t/notaint/._aliases.t, t/notaint/._autocheck.t, t/notaint/._clone.t, t/notaint/._die.t, t/notaint/._new.t, t/notaint/._regex-error.t, t/notaint/._warn.t, t/notaint/._warnings.t, t/pluggable/._01use.t, t/pluggable/._02alsoworks.t, t/pluggable/._02works.t, t/pluggable/._03diffname.t, t/pluggable/._04acmedir.t, t/pluggable/._04acmedir_single.t, t/pluggable/._04acmepath.t, t/pluggable/._04acmepath_single.t, t/pluggable/._05postpath.t, t/pluggable/._06multipath.t, t/pluggable/._07instantiate.t, t/pluggable/._08nothing.t, t/pluggable/._09require.t, t/pluggable/._10innerpack.t, t/pluggable/._10innerpack_inner.t, t/pluggable/._10innerpack_noinner.t, t/pluggable/._10innerpack_override.t, t/pluggable/._11usetwice.t, t/pluggable/._12only.t, t/pluggable/._12onlyarray.t, t/pluggable/._12onlyregex.t, t/pluggable/._13except.t, t/pluggable/._13exceptarray.t, t/pluggable/._13exceptregex.t, t/pluggable/._14package.t, t/plugins/._test.plugin, t/taint/._00.load.t, t/taint/._aliases.t, t/taint/._autocheck.t, t/taint/._clone.t, t/taint/._die.t, t/taint/._new.t, t/taint/._regex-error.t, t/taint/._warn.t, t/taint/._warnings.t

use_strict

Add 'use strict' (or its equivalents) to all modules, or convince us that your favorite module is well-known enough and people can easily see the modules are strictly written.

Error: Module::._Pluggable, WWW::Mechanize::._Pluggable, WWW::Mechanize::Pluggable::._Design, WWW::Mechanize::Plugin::._Cookbook, WWW::Mechanize::Plugin::._HelloWorld

meta_yml_declares_perl_version

If you are using Build.PL define the {requires}{perl} = VERSION field. If you are using MakeMaker (Makefile.PL) you should upgrade ExtUtils::MakeMaker to 6.48 and use MIN_PERL_VERSION parameter. Perl::MinimumVersion can help you determine which version of Perl your module needs.

has_meta_json

Add a META.json to the distribution. Your buildtool should be able to autogenerate it.

no_dot_underscore_files

If you use Mac OS X, set COPYFILE_DISABLE (for OS 10.5 and better) or COPY_EXTENDED_ATTRIBUTES_DISABLE (for OS 10.4) environmental variable to true to exclude dot underscore files from a distribution.

Error:

  • ._Changes
  • ._LICENSE
  • ._Makefile.PL
  • ._README
  • ._Todo
  • lib/Module/._Pluggable.pm
  • lib/WWW/Mechanize/._Pluggable.pm
  • lib/WWW/Mechanize/Pluggable/._Design.pm
  • lib/WWW/Mechanize/Plugin/._Cookbook.pm
  • lib/WWW/Mechanize/Plugin/._HelloWorld.pm
  • t/._00.load.t
  • t/._001_load.t
  • t/._002_plugin.t
  • t/._add_header.t
  • t/._aliases.t
  • t/._area_link.html
  • t/._area_link.t
  • t/._autocheck.t
  • t/._clone.t
  • t/._die.t
  • t/._errors.err
  • t/._field.html
  • t/._field.t
  • t/._find_image.t
  • t/._find_link-warnings.t
  • t/._find_link.html
  • t/._find_link.t
  • t/._form-parsing.t
  • t/._frames.html
  • t/._frames.t
  • t/._google.html
  • t/._hooks.t
  • t/._image-new.t
  • t/._image-parse.html
  • t/._image-parse.t
  • t/._link-base.t
  • t/._link-relative.t
  • t/._link.t
  • t/._mech-dump.t
  • t/._new.t
  • t/._plugin_args.t
  • t/._pod-coverage.t
  • t/._pod.t
  • t/._regex-error.t
  • t/._select.html
  • t/._select.t
  • t/._taint.t
  • t/._tick.html
  • t/._tick.t
  • t/._upload.html
  • t/._upload.t
  • t/._warn.t
  • t/._warnings.t
  • t/acme/Acme/MyTest/Plugin/._Foo.pm
  • t/lib/Acme/MyTest/Plugin/._Foo.pm
  • t/lib/InnerTest/Plugin/._Foo.pm
  • t/lib/MyOtherTest/Plugin/._Bar.pm
  • t/lib/MyOtherTest/Plugin/._Foo.pm
  • t/lib/MyOtherTest/Plugin/._Quux.pm
  • t/lib/MyOtherTest/Plugin/Quux/._Foo.pm
  • t/lib/MyTest/Extend/Plugin/._Bar.pm
  • t/lib/MyTest/Plugin/._Bar.pm
  • t/lib/MyTest/Plugin/._Foo.pm
  • t/lib/MyTest/Plugin/Quux/._Foo.pm
  • t/lib/WWW/Mechanize/Plugin/._Echo.pm
  • t/lib/WWW/Mechanize/Plugin/Deeply/._Nested.pm
  • t/live/._back.t
  • t/live/._click.t
  • t/live/._follow.t
  • t/live/._follow_link.t
  • t/live/._form.t
  • t/live/._get.t
  • t/live/._hooks.t
  • t/live/._reload.t
  • t/live/._submit.t
  • t/local/._LocalServer.pm
  • t/local/._back.t
  • t/local/._back.t.orig
  • t/local/._click.t
  • t/local/._click_button.t
  • t/local/._failure.t
  • t/local/._follow.t
  • t/local/._form.t
  • t/local/._get.t
  • t/local/._hooks.t
  • t/local/._log-server
  • t/local/._overload.t
  • t/local/._page_stack.t
  • t/local/._plugin.t
  • t/local/._referer-server
  • t/local/._referer.t
  • t/local/._reload-old.t
  • t/local/._reload.t
  • t/local/._submit.t
  • t/notaint/._00.load.t
  • t/notaint/._aliases.t
  • t/notaint/._autocheck.t
  • t/notaint/._clone.t
  • t/notaint/._die.t
  • t/notaint/._new.t
  • t/notaint/._regex-error.t
  • t/notaint/._warn.t
  • t/notaint/._warnings.t
  • t/pluggable/._01use.t
  • t/pluggable/._02alsoworks.t
  • t/pluggable/._02works.t
  • t/pluggable/._03diffname.t
  • t/pluggable/._04acmedir.t
  • t/pluggable/._04acmedir_single.t
  • t/pluggable/._04acmepath.t
  • t/pluggable/._04acmepath_single.t
  • t/pluggable/._05postpath.t
  • t/pluggable/._06multipath.t
  • t/pluggable/._07instantiate.t
  • t/pluggable/._08nothing.t
  • t/pluggable/._09require.t
  • t/pluggable/._10innerpack.t
  • t/pluggable/._10innerpack_inner.t
  • t/pluggable/._10innerpack_noinner.t
  • t/pluggable/._10innerpack_override.t
  • t/pluggable/._11usetwice.t
  • t/pluggable/._12only.t
  • t/pluggable/._12onlyarray.t
  • t/pluggable/._12onlyregex.t
  • t/pluggable/._13except.t
  • t/pluggable/._13exceptarray.t
  • t/pluggable/._13exceptregex.t
  • t/pluggable/._14package.t
  • t/plugins/._test.plugin
  • t/taint/._00.load.t
  • t/taint/._aliases.t
  • t/taint/._autocheck.t
  • t/taint/._clone.t
  • t/taint/._die.t
  • t/taint/._new.t
  • t/taint/._regex-error.t
  • t/taint/._warn.t
  • t/taint/._warnings.t

meta_yml_has_license

Define the license if you are using in Build.PL. If you are using MakeMaker (Makefile.PL) you should upgrade to ExtUtils::MakeMaker version 6.31.

use_warnings

Add 'use warnings' (or its equivalents) to all modules, or convince us that your favorite module is well-known enough and people can easily see the modules warn when something bad happens.

Error: Module::._Pluggable, Module::Pluggable, WWW::Mechanize::._Pluggable, WWW::Mechanize::Pluggable, WWW::Mechanize::Pluggable::._Design, WWW::Mechanize::Pluggable::Design, WWW::Mechanize::Plugin::._Cookbook, WWW::Mechanize::Plugin::._HelloWorld, WWW::Mechanize::Plugin::Cookbook

no_unauthorized_packages

Ask the owner of the distribution (the one who released it first, or the one who is designated in x_authority) to give you a (co-)maintainer's permission.

Error:

  • Module::Pluggable

consistent_version

Split the distribution, or fix the version numbers to make them consistent (use the highest version number to avoid version downgrade).

Error: 1.05,2.8

meta_yml_has_provides

Add all modules contained in this distribution to the META.yml field 'provides'. Module::Build or Dist::Zilla::Plugin::MetaProvides do this automatically for you.

meta_yml_has_repository_resource

Add a 'repository' resource to the META.yml via 'meta_add' accessor (for Module::Build) or META_ADD parameter (for ExtUtils::MakeMaker).

Modules

Name Abstract Version View
Module::Pluggable automatically give your module the ability to have plugins 2.8 metacpan
WWW::Mechanize::Pluggable A WWW::Mechanize that's custmomizable via plugins 1.05 metacpan
WWW::Mechanize::Plugin::HelloWorld a sample WWW::Mechanize::Pluggable plugin metacpan

Other Files

Changes metacpan
MANIFEST metacpan
META.yml metacpan
Makefile.PL metacpan
README metacpan