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.
Add a Changelog (best named 'Changes') to the distribution. It should list at least major changes implemented in newer versions.
Add a META.yml to the distribution. Your buildtool should be able to autogenerate it.
Remove all letters from the version number. If you want to mark a release as a developer release, use the scheme 'Module-1.00_01'
Add a README to the distribution. It should contain a quick description of your module and how to install it.
Upgrade the bundled version of Module::Install to at least 0.89, but preferably to the most current release. Alternatively, you can switch to another build system / installer that does not suffer from this problem. (ExtUtils::MakeMaker, Module::Build both of which have their own set of problems.)
Upgrade the bundled version of Module::Install to the most current release. Alternatively, you can switch to another build system / installer that does not suffer from this problem. (ExtUtils::MakeMaker, Module::Build both of which have their own set of problems.)
Fix the version(s).
List all used modules in META.yml requires
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.
Split the distribution, or fix the version numbers to make them consistent (use the highest version number to avoid version downgrade).
Add a META.json to the distribution. Your buildtool should be able to autogenerate it.
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.
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.
Move your *.pm files in a directory named 'lib'. The directory structure should look like 'lib/Your/Module.pm' for a module named 'Your::Module'. If you need to provide additional files, e.g. for testing, that should not be considered for Kwalitee, then you should look at the 'provides' map in META.yml to limit the files scanned; or use the 'no_index' map to exclude parts of the distribution.
Error: thirdparty/inc/Module/AutoInstall.pm, thirdparty/inc/Module/Install.pm, thirdparty/inc/Module/Install/AutoInstall.pm, thirdparty/inc/Module/Install/Base.pm, thirdparty/inc/Module/Install/Can.pm, thirdparty/inc/Module/Install/Fetch.pm, thirdparty/inc/Module/Install/Include.pm, thirdparty/inc/Module/Install/Makefile.pm, thirdparty/inc/Module/Install/Metadata.pm, thirdparty/inc/Module/Install/Win32.pm, thirdparty/inc/Module/Install/WriteAll.pm
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.
Error: Module::AutoInstall, Module::Install, Module::Install::AutoInstall, Module::Install::Base, Module::Install::Can, Module::Install::Fetch, Module::Install::Include, Module::Install::Makefile, Module::Install::Metadata, Module::Install::Win32, Module::Install::WriteAll
List all modules used in the test suite in META.yml build_requires
|HoneyClient::Util::Config||Perl extension to provide a generic interface to the HoneyClient global configuration file.||0.98||metacpan|
|HoneyClient::Util::SOAP||Perl extension to provide a generic interface to all client and server SOAP operations, for any HoneyClient module.||0.98||metacpan|