Add a README to the distribution. It should contain a quick description of your module and how to install it.
Add a MANIFEST to the distribution. Your buildtool should be able to autogenerate it (eg "make manifest" or "./Build manifest")
Add a META.yml to the distribution. Your buildtool should be able to autogenerate it.
Add a Makefile.PL (for ExtUtils::MakeMaker/Module::Install) or a Build.PL (for Module::Build and its friends), 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 section called "LICENSE" to the documentation, or add a file named LICENSE to the distribution.
Add =head1 LICENSE and the text of the license to the main module in your code.
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: Cannot find MANIFEST in dist.
Provide a short description in the NAME section of the pod (after the module name followed by a hyphen) at least for the main module of this distribution.
Make sure that the main module name and version are the same of the distribution.
Add a META.json to the distribution. Your buildtool should be able to autogenerate it.
Add tests or move tests.pl to the t/ directory!
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.
Add =head1 LICENSE and/or the proper text of the well-known license to the main module in your code.
This is not a critical issue. Currently mainly informative for the CPANTS authors. It might be removed later.