Kwalitee Issues

has_buildtool

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.

has_changelog

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

has_manifest

Add a MANIFEST to the distribution. Your buildtool should be able to autogenerate it (eg "make manifest" or "./Build manifest")

has_readme

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

has_tests

Add tests!

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: Cannot find MANIFEST in dist.

meta_yml_conforms_to_known_spec

Take a look at the META.yml Spec at http://module-build.sourceforge.net/META-spec-v1.4.html (for version 1.4) or http://search.cpan.org/perldoc?CPAN::Meta::Spec (for version 2), and change your META.yml accordingly.

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

no_pod_errors

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

Error: FreeHAL-71/AI/FreeHAL/Class.pm -- Around line 1511: Non-ASCII character seen before =encoding in ':key«value»'. Assuming ISO8859-1 FreeHAL-71/Lingua/DE/Tagger.pm -- Around line 181: You forgot a '=back' before '=head1'Around line 185: '=item' outside of any '=over'Around line 990: You forgot a '=back' before '=head1'

portable_filenames

Rename those files with alphanumerical characters, or maybe remove them because in many cases they are automatically generated for local installation.

Error:

  • lang_de/Sprichwörter.pro

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: AI::FreeHAL::Config, AI::FreeHAL::Module::Parser, AI::FreeHAL::Module::Tagger, AI::FreeHAL::Module::WebAccess, AI::Util

consistent_version

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

Error: 0.000004,0.000008,0.01,0.15,71

has_meta_json

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

has_tests_in_t_dir

Add tests or move tests.pl to the t/ directory!

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.

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.

proper_libs

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: AI/FreeHAL/Class.pm, AI/FreeHAL/Config.pm, AI/FreeHAL/Engine.pm, AI/FreeHAL/Module/Parser.pm, AI/FreeHAL/Module/Tagger.pm, AI/FreeHAL/Module/WebAccess.pm, AI/POS.pm, AI/Selector.pm, AI/SemanticNetwork.pm, AI/SemanticEngine.pm, AI/Util.pm, Lingua/DE/Tagger.pm

use_warnings

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: AI::FreeHAL::Config, AI::FreeHAL::Module::Parser, AI::FreeHAL::Module::Tagger, AI::FreeHAL::Module::WebAccess, AI::Util

has_separate_license_file

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

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
AI::FreeHAL::Class Support for creating standard "inside-out" classes 0.000008 metacpan
AI::FreeHAL::Config Load and save configuration files in a standard format 0.000004 metacpan
AI::FreeHAL::Engine Engine of FreeHAL, a self-learning conversation simulator which uses semantic nets to organize its knowledge. 71 metacpan
AI::FreeHAL::Module::Parser metacpan
AI::FreeHAL::Module::Tagger 0.01 metacpan
AI::FreeHAL::Module::WebAccess metacpan
AI::POS 0.01 metacpan
AI::Selector 0.01 metacpan
AI::SemanticNetwork 0.01 metacpan
AI::Util 0.01 metacpan
Lingua::DE::Tagger Part-of-speech tagger for German natural language processing. 0.15 metacpan

Provides

Name File View
AI::FreeHAL::Class::SCR AI/FreeHAL/Class.pm metacpan
AI::FreeHAL::Config::Block AI/FreeHAL/Config.pm metacpan
AI::FreeHAL::Config::Comment AI/FreeHAL/Config.pm metacpan
AI::FreeHAL::Config::Gap AI/FreeHAL/Config.pm metacpan
AI::FreeHAL::Config::Hash AI/FreeHAL/Config.pm metacpan
AI::FreeHAL::Config::Keyval AI/FreeHAL/Config.pm metacpan

Other Files

META.yml metacpan