This distribution doesn't create a directory and extracts its content into this directory. Instead, it creates more than one directories (some of which are probably system-specific hidden files/directories), or it spews its content into the current directory, making it really hard/annoying to remove the unpacked package.
Pack the distribution with a proper command such as "make dist" and "./Build dist", or use a distribution builder such as Dist::Zilla, Dist::Milla, Minilla.
|has meta yml||
The file "META.yml" is missing from this distribution. META.yml is needed by people maintaining module collections (like CPAN), for people writing installation tools, or just people who want to know some stuff about a distribution before downloading it.
Add a META.yml to the distribution. Your buildtool should be able to autogenerate it.
The distribution hasn't got a Changelog (named something like m/^chang(es?|log)|history$/i). A Changelog helps people decide if they want to upgrade to a new version.
Add a Changelog (best named 'Changes') to the distribution. It should list at least major changes implemented in newer versions.
This distribution includes symbolic links (symlinks). This is bad, because there are operating systems that do not handle symlinks.
Remove the symlinks from the distribution.
|buildtool not executable||
The build tool (Build.PL/Makefile.PL) is executable. This is bad because you should specify which perl you want to use while installing.
Change the permissions of Build.PL/Makefile.PL to not-executable.
|no generated files||
This distribution has files/directories that should be generated at build time, not distributed by the author.
Remove the offending files/directories!
|no dot underscore files||
This distribution has dot underscore files which may cause various problems.
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.
|no mymeta files||
This distribution contains MYMETA.* files which should be used only locally. This metric should be integrated into 'no_generated_files' eventually, but as MYMETA.* files are recent inventions, you might need to take special care if MANIFEST.SKIP exists in your distribution. Hence this metric.
Update MANIFEST.SKIP to exclude MYMETA files. If you are lazy, add "#!install_default" in your MANIFEST.SKIP and update your ExtUtils::Manifest if necessary, then some of the most common files will be excluded.
|manifest matches dist||
MANIFEST does not match the contents of this distribution.
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.
This distribution does not 'use strict;' (or its equivalents) in all of its modules. Note that this is not about the actual strictness of the modules. It's bad if nobody can tell whether the modules are strictly written or not, without reading the source code of your favorite clever module that actually enforces strictness. In other words, it's bad if someone feels the need to add 'use strict' to your modules.
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.
This distribution has .pm files with inconsistent versions.
Split the distribution, or fix the version numbers to make them consistent (use the highest version number to avoid version downgrade).
|meta yml declares perl version||
This distribution does not declare the minimum perl version in META.yml.
This distribution does not 'use warnings;' (or its equivalents) in all of its modules. Note that this is not about that your modules actually warn when something bad happens. It's bad if nobody can tell if a module warns or not, without reading the source code of your favorite module that actually enforces warnings. In other words, it's bad if someone feels the need to add 'use warnings' to your modules.
Add 'use warnings' (or its equivalents) to all modules (this will require perl > 5.6), or convince us that your favorite module is well-known enough and people can easily see the modules warn when something bad happens.
This distribution is not required by another distribution by another author.
Convince / force / bribe another CPAN author to use this distribution.
These fails are not serious and don't affect your Kwalitee scores at all.
|meta yml has repository resource||
This distribution does not have a link to a repository in META.yml.
Add a 'repository' resource to the META.yml via 'meta_add' accessor (for Module::Build) or META_ADD parameter (for ExtUtils::MakeMaker).
|has separate license file||
This distribution does not have a LICENSE or LICENCE file in its root directory.
|build prereq matches use||
This distribution uses a module or a dist in its test suite that's not listed as a build prerequisite.
List all modules used in the test suite in META.yml build_requires