Kwalitee Issues


Add a Changelog (best named 'Changes') to the distribution. It should list at least major changes implemented in newer versions.


Add a README to the distribution. It should contain a quick description of your module and how to install it.


Take a look at the META.yml Spec at (for version 1.4) or (for version 2), and change your META.yml accordingly.

Error: Expected a list structure (author) [Validation: 1.3];License '<undef>' is invalid (license) [Validation: 1.3];Missing mandatory field, 'abstract' (abstract) [Validation: 1.3];Missing mandatory field, 'author' (author) [Validation: 1.3];Missing mandatory field, 'license' (license) [Validation: 1.3];value is an undefined string (abstract) [Validation: 1.3]


Remove the POD errors. You can check for POD errors automatically by including Test::Pod to your test suite.

Error: MooseX-Compile-0.01/lib/MooseX/ -- Around line 242: '=item' outside of any '=over'Around line 257: You forgot a '=back' before '=head1'


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


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.


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.


  • Point


Move your *.pm files in a directory named 'lib'. The directory structure should look like 'lib/Your/' 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: benchmarks/load_times/class_accessor/, benchmarks/load_times/class_accessor/


This is not a critical issue. Currently mainly informative for the CPANTS authors. It might be removed later.


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.


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


Name Abstract Version View
MooseX::Compile L<Moose> ♥ L<.pmc> metacpan
MooseX::Compile::Base 0.01 metacpan
MooseX::Compile::Bootstrap Helps L<Moose> C<.pmc> files load. metacpan
MooseX::Compile::Compiler The Moose metaclass C<.pmc> compiler metacpan
Point metacpan
Point3D metacpan


Name File View
MooseX::Compile::MetaBlackHole lib/MooseX/Compile/ metacpan
MooseX::Compile::Scope::Guard lib/MooseX/Compile/ metacpan
MooseX::Compile::mangled::constraint lib/MooseX/Compile/ metacpan
MooseX::Compile::mangled::immutable_metaclass lib/MooseX/Compile/ metacpan
MooseX::Compile::mangled::subref lib/MooseX/Compile/ metacpan

Other Files

MANIFEST metacpan
META.yml metacpan
Makefile.PL metacpan