Kwalitee Issues

extracts_nicely

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.

Error: More than one top directories are found: tcolour;two_main;canvas_scroll;geo_mgr;hlfm;cursor_demo;prop_demo;submethods;ptknews;leak_test;bindtest;menubar;symbols;findbase;dfpy;text_demo;disbutton;forward_test;geom;xlib_demo;mkExt;uninstall;lsfonts;after_demo;tixwm_demo;error_prop;font_test;basic_demo;destroy_test;adj_demo;pfm;tietext;oddmenu_demo;tie_basic;tkperldoc;motif_hack;gridbug;iconwin;sockets;grid_adj;al_bug;tiny;capture_demo;grepc;labelpack;floppy;local_demo;scrolled_demo;tkpsh;hlist_demo;time;checklen;keyWords;cbtest;tiehandle;tktail;clip_bug;tlist_demo;canvas_ps;grept;after_leak;font_demo;mkdist;popup;tainted;lbformat_demo;copydate;pipe_test;table_demo;autoraise;hackMM;ls_table;mitem_test;grepperl;nested_dialog;pixmap_test;derived_test;bulkedit;ewidth_demo;image_test;toyedit;blib;tcl2perl;hlist_bg;lentry;grid_test;pictgrid;scale_test;popup_menu

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!

has_version

Add a version number to the packed distribution. Or use a buildtool ('make dist' or 'Build dist')

has_proper_version

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'

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: Axis, Bundle::Tk, DSC, Dial, LWP::IO, Tk::Adjuster, Tk::After, Tk::Bitmap, Tk::Canvas, Tk::Checkbutton, Tk::ColorEditor, Tk::Config, Tk::Configure, Tk::DialogBox, Tk::DragDrop::Rect, Tk::DragDrop::SunConst, Tk::English, Tk::Entry, Tk::ErrorDialog, Tk::HList, Tk::IO, Tk::Image, Tk::InputO, Tk::LabEntry, Tk::LabRadiobutton, Tk::Label, Tk::LabeledEntryLabeledRadiobutton, Tk::Listbox, Tk::Menu, Tk::Menubutton, Tk::Message, Tk::Mwm, Tk::NBFrame, Tk::NoteBook, Tk::OlWm, Tk::Optionmenu, Tk::Parse, Tk::Photo, Tk::Pixmap, Tk::Pod, Tk::Pretty, Tk::ROText, Tk::Radiobutton, Tk::Scale, Tk::Scrollbar, Tk::Stats, Tk::Submethods, Tk::Text, Tk::Text::Tag, Tk::TextUndo, Tk::TiedListbox, Tk::Tiler, Tk::TixGrid, Tk::Toplevel, Tk::Widget, Tk::Xlib, Tk::Xrm, Tk::install, Tk::widgets, blib

prereq_matches_use

List all used modules in META.yml requires

Error:

  • HTML::Parse
  • LWP
  • LWP::Debug
  • Tk::Clipboard

main_module_version_matches_dist_version

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

no_pod_errors

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

Error: blib/lib/Tk/CmdLine.pm -- Around line 297: =back doesn't take any parameters, but you said =back 4 blib/lib/Tk/Derived.pm -- Around line 409: Unterminated I<...> sequence blib/lib/Tk/FileDialog.pm -- Around line 43: You forgot a '=back' before '=head2' Around line 111: =back without =over Around line 123: You forgot a '=back' before '=head2' Around line 140: =back without =over Around line 157: You forgot a '=back' before '=head2' Around line 236: =back without =over Around line 244: You forgot a '=back' before '=head2' Around line 291: =back without =over Around line 360: You forgot a '=back' before '=head2' Around line 382: =back without =over blib/lib/Tk/TiedListbox.pm -- Around line 246: You forgot a '=back' before '=head1' Around line 256: '=item' outside of any '=over' blib/lib/Tk/WaitBox.pm -- Around line 40: You forgot a '=back' before '=head2' Around line 60: =back without =over Around line 68: Expected text after =item, not a bullet Around line 70: You forgot a '=back' before '=head2' Around line 80: '=item' outside of any '=over'

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!

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: blib/lib/Tk/Axis.pm, blib/lib/Tk/demos/widget_lib/Ball.pm, blib/lib/Bundle/Tk.pm, blib/lib/Tk/DSC.pm, blib/lib/Tk/Dial.pm, blib/lib/Tk/HTML/IO.pm, blib/lib/Tk/demos/widget_lib/Plot.pm, blib/lib/Tk.pm, blib/lib/Tk/Adjuster.pm, blib/lib/Tk/After.pm, blib/lib/Tk/Balloon.pm, blib/lib/Tk/Bitmap.pm, blib/lib/Tk/BrowseEntry.pm, blib/lib/Tk/Button.pm, blib/lib/Tk/Canvas.pm, blib/lib/Tk/Checkbutton.pm, blib/lib/Tk/CmdLine.pm, blib/lib/Tk/ColorEditor.pm, blib/arch/Tk/Config.pm, blib/lib/Tk/Configure.pm, blib/lib/Tk/Derived.pm, blib/lib/Tk/Dialog.pm, blib/lib/Tk/DialogBox.pm, blib/lib/Tk/Dirlist.pm, blib/lib/Tk/DragDrop.pm, blib/lib/Tk/DragDrop/Common.pm, blib/lib/Tk/DragDrop/Rect.pm, blib/lib/Tk/DragDrop/SunConst.pm, blib/lib/Tk/DragDrop/SunDrop.pm, blib/lib/Tk/DragDrop/SunSite.pm, blib/lib/Tk/DropSite.pm, blib/lib/Tk/English.pm, blib/lib/Tk/Entry.pm, blib/lib/Tk/ErrorDialog.pm, blib/lib/Tk/FileDialog.pm, blib/lib/Tk/FileSelect.pm, blib/lib/Tk/Font.pm, blib/lib/Tk/Frame.pm, blib/lib/Tk/Ghostscript.pm, blib/lib/Tk/Ghostview.pm, blib/lib/Tk/HList.pm, blib/lib/Tk/HTML.pm, blib/lib/Tk/HTML/Form.pm, blib/lib/Tk/HTML/Handler.pm, blib/lib/Tk/IO.pm, blib/lib/Tk/Image.pm, blib/lib/Tk/InputO.pm, blib/lib/Tk/LabEntry.pm, blib/lib/Tk/LabFrame.pm, blib/lib/Tk/LabRadio.pm, blib/lib/Tk/Label.pm, blib/lib/Tk/demos/LabEnLabRad.pm, blib/lib/Tk/Listbox.pm, blib/lib/Tk/MMtry.pm, blib/lib/Tk/MMutil.pm, blib/lib/Tk/MainWindow.pm, blib/lib/Tk/Menu.pm, blib/lib/Tk/Menu/Item.pm, blib/lib/Tk/Menubar.pm, blib/lib/Tk/Menubutton.pm, blib/lib/Tk/Message.pm, blib/lib/Tk/Mwm.pm, blib/lib/Tk/NBFrame.pm, blib/lib/Tk/NoteBook.pm, blib/lib/Tk/OlWm.pm, blib/lib/Tk/Optionmenu.pm, blib/lib/Tk/Parse.pm, blib/lib/Tk/Photo.pm, blib/lib/Tk/Pixmap.pm, blib/lib/Tk/Pod.pm, blib/lib/Tk/Pretty.pm, blib/lib/Tk/ROText.pm, blib/lib/Tk/Radiobutton.pm, blib/lib/Tk/Scale.pm, blib/lib/Tk/Scrollbar.pm, blib/lib/Tk/Stats.pm, blib/lib/Tk/Submethods.pm, blib/lib/Tk/TList.pm, blib/lib/Tk/Table.pm, blib/lib/Tk/Text.pm, blib/lib/Tk/Text/Tag.pm, blib/lib/Tk/TextUndo.pm, blib/lib/Tk/TiedListbox.pm, blib/lib/Tk/Tiler.pm, blib/lib/Tk/TixGrid.pm, blib/lib/Tk/Toplevel.pm, blib/lib/Tk/VStack.pm, blib/lib/Tk/WaitBox.pm, blib/lib/Tk/Web.pm, blib/lib/Tk/Clipboard.pm, blib/lib/Tk/Widget.pm, blib/lib/Tk/Wm.pm, blib/lib/Tk/X.pm, blib/lib/Tk/Xlib.pm, blib/lib/Tk/Xrm.pm, blib/lib/Tk/install.pm, blib/lib/Tk/widgets.pm, blib/lib/Tk/demos/widget_lib/WidgetDemo.pm, blib/lib/blib.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.

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: Axis, Ball, Bundle::Tk, DSC, Dial, LWP::IO, Plot, Tk, Tk::Adjuster, Tk::After, Tk::Balloon, Tk::Bitmap, Tk::BrowseEntry, Tk::Button, Tk::Canvas, Tk::Checkbutton, Tk::CmdLine, Tk::ColorEditor, Tk::Config, Tk::Configure, Tk::Derived, Tk::Dialog, Tk::DialogBox, Tk::Dirlist, Tk::DragDrop, Tk::DragDrop::Common, Tk::DragDrop::Rect, Tk::DragDrop::SunConst, Tk::DragDrop::SunDrop, Tk::DragDrop::SunSite, Tk::DropSite, Tk::English, Tk::Entry, Tk::ErrorDialog, Tk::FileDialog, Tk::FileSelect, Tk::Font, Tk::Frame, Tk::Ghostscript, Tk::Ghostview, Tk::HList, Tk::HTML, Tk::HTML::Form, Tk::HTML::Handler, Tk::IO, Tk::Image, Tk::InputO, Tk::LabEntry, Tk::LabFrame, Tk::LabRadiobutton, Tk::Label, Tk::LabeledEntryLabeledRadiobutton, Tk::Listbox, Tk::MMtry, Tk::MMutil, Tk::MainWindow, Tk::Menu, Tk::Menu::Item, Tk::Menubar, Tk::Menubutton, Tk::Message, Tk::Mwm, Tk::NBFrame, Tk::NoteBook, Tk::OlWm, Tk::Optionmenu, Tk::Parse, Tk::Photo, Tk::Pixmap, Tk::Pod, Tk::Pretty, Tk::ROText, Tk::Radiobutton, Tk::Scale, Tk::Scrollbar, Tk::Stats, Tk::Submethods, Tk::TList, Tk::Table, Tk::Text, Tk::Text::Tag, Tk::TextUndo, Tk::TiedListbox, Tk::Tiler, Tk::TixGrid, Tk::Toplevel, Tk::VStack, Tk::WaitBox, Tk::Web, Tk::Widget, Tk::Widget, Tk::Wm, Tk::X, Tk::Xlib, Tk::Xrm, Tk::install, Tk::widgets, WidgetDemo, blib

has_separate_license_file

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

has_security_doc

Add SECURITY(.pod|md). See Software::Security::Policy.

security_doc_contains_contact

Add SECURITY(.pod|md) and add a contact address. See Software::Security::Policy.

has_contributing_doc

Add CONTRIBUTING(.pod|md). See https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.