Kwalitee Issues

has_readme

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

has_manifest

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

has_meta_yml

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

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_tests

Add tests!

no_generated_files

Remove the offending files/directories!

Error: Makefile

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.

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: cmt::english, cmt::proxy

prereq_matches_use

List all used modules in META.yml requires

Error:

  • Crypt::CBC
  • Crypt::DES
  • DBI
  • Digest::SHA1
  • HTML::TreeBuilder
  • HTTP::Response
  • LWP::UserAgent
  • Parse::Lex
  • Parse::Yapp
  • Parse::Yapp::Driver
  • Term::ReadKey
  • Text::Diff
  • Tk
  • Tk::Event
  • Win32::API
  • Win32::API::Struct
  • Win32::Console
  • Win32::Daemon
  • Win32::OLE
  • Win32::Service
  • Win32::TieRegistry
  • XML::Simple
  • YAML

main_module_version_matches_dist_version

Make sure that the main module name and version are the same of the distribution.

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!

no_dot_dirs

Fix MANIFEST (or MANIFEST.SKIP) to exclude dot directories from a distribution. Use an appropriate tool and avoid archiving your working directory by hand. If you switch your version control system, remove old VCS directories after you migrate.

Error: .svn

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: .class.pm, .pm, atext.pm, chm.pm, codec.pm, cstr.pm, db_ora.pm, dirdiff.pm, dlgbox.pm, dnsutil.pm, echohh.pm, english.pm, fileproc.pm, fswalk.pm, ftime.pm, g.pm, guiutil.pm, i18n.pm, inet.pm, ios.pm, lang.pm, lexutil.pm, log.pm, low.pm, mat.pm, mess.pm, moduse.pm, msc.pm, netutil.pm, oop.pm, oop_mod.pm, oop_y.pm, path.pm, perlsys.pm, php.pm, pp.pm, proxy.pm, serv.pm, service.pm, simpled.pm, str.pm, stream.pm, table.pm, test.pm, time.pm, util.pm, utree.pm, vcs.pm, whois.pm, win32.pm, winuser.pm, zio.pm

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.

no_abstract_stub_in_pod

Modify the stub. You might need to modify other stubs (for name, synopsis, license, etc) as well.

Error: cmt::low

use_warnings

Add 'use warnings' (or its equivalents) to all modules, or convince us that your favorite module is well-known enough and people can easily see the modules warn when something bad happens.

Error: UnKnOwN, UnKnOwN, cmt::atext, cmt::chm, cmt::codec, cmt::cstr, cmt::db_ora, cmt::dirdiff, cmt::dlgbox, cmt::dnsutil, cmt::echohh, cmt::english, cmt::fileproc, cmt::fswalk, cmt::ftime, cmt::g, cmt::guiutil, cmt::i18n, cmt::inet, cmt::ios, cmt::lang, cmt::lexutil, cmt::log, cmt::mat, cmt::mess, cmt::moduse, cmt::msc, cmt::netutil, cmt::oop, cmt::oop_mod, cmt::oop_y, cmt::path, cmt::perlsys, cmt::php, cmt::pp, cmt::proxy, cmt::serv, cmt::service, cmt::simpled, cmt::str, cmt::stream, cmt::table, cmt::test, cmt::time, cmt::util, cmt::utree, cmt::vcs, cmt::whois, cmt::win32, cmt::winuser, cmt::zio

no_unauthorized_packages

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.

Error:

  • UnKnOwN

has_separate_license_file

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

Modules

Name Abstract Version View
UnKnOwN DeScRiPtIoN metacpan
cmt::atext metacpan
cmt::chm metacpan
cmt::codec metacpan
cmt::cstr metacpan
cmt::db_ora metacpan
cmt::dirdiff metacpan
cmt::dlgbox Common Dialog Boxes metacpan
cmt::dnsutil metacpan
cmt::echohh metacpan
cmt::english metacpan
cmt::fileproc Batch file process framework metacpan
cmt::fswalk files iterator metacpan
cmt::ftime metacpan
cmt::g Graphical Script Encoder Vol.gene metacpan
cmt::guiutil DeScRiPtIoN metacpan
cmt::i18n metacpan
cmt::inet Internet Client Functions metacpan
cmt::ios I/O Stream metacpan
cmt::lang metacpan
cmt::lexutil metacpan
cmt::log metacpan
cmt::low Perl extension for blah blah blah 0.01 metacpan
cmt::mat metacpan
cmt::mess metacpan
cmt::moduse metacpan
cmt::msc metacpan
cmt::netutil Network Utilities metacpan
cmt::oop metacpan
cmt::oop_mod metacpan
cmt::oop_y metacpan
cmt::path path utilities metacpan
cmt::perlsys metacpan
cmt::php simple php functions for dynamic contents support metacpan
cmt::pp General Preprocessor metacpan
cmt::proxy metacpan
cmt::serv Simple Network Service Class metacpan
cmt::service metacpan
cmt::simpled metacpan
cmt::str String Utilities metacpan
cmt::stream metacpan
cmt::table metacpan
cmt::test metacpan
cmt::time metacpan
cmt::util metacpan
cmt::utree metacpan
cmt::vcs metacpan
cmt::whois replace Net::Whois metacpan
cmt::win32 metacpan
cmt::winuser metacpan
cmt::zio i/o with zipped stream metacpan

Provides

Name File View
cmt::atext::Call atext.pm metacpan
cmt::atext::Cat atext.pm metacpan
cmt::atext::Gat atext.pm metacpan
cmt::atext::Or atext.pm metacpan
cmt::atext::Sel atext.pm metacpan
cmt::atext::Tag atext.pm metacpan
cmt::atext::Test atext.pm metacpan
cmt::atext::Then atext.pm metacpan
cmt::ios::context ios.pm metacpan
cmt::ios::merged ios.pm metacpan
simdiff fileproc.pm metacpan