Skip to content

Incorrect Errors in Module-less Distros #37

zoffixznet opened this Issue Oct 25, 2013 · 2 comments

3 participants


EDIT: Can't figure out how to close this issue. It was explained elsewhere to me that such distros won't even get indexed by PAUSE, so this "issue" is really an issue with my distro and not with CPANTS. Please close this issue. Thanks.

I have a couple of distros that only contain a script (i.e. no modules; no .pm files) and CPANTS game is showing these as lacking "use strict" among other errors.

One of such dists is and the other where I actually ran the test is

Test::Kwalitee fails on these by telling me I've not used strict in my modules (and then provides the empty list of modules that need use strict).

Here's an error message, seemingly by calling a module on an idenfined value:

Here's the error messages from the Test::Kwalitee test running in the shell:

t/kwalitee.t ...... 1/?
Failed test 'metayml_conforms_to_known_spec'
at t/kwalitee.t line 5.
Error: META.yml does not conform to any recognised META.yml Spec.
known; License '' is invalid (license) [Validation: 1.3]; Missing mandatory field, 'license' (license) [Validation: 1.3]
License '' is invalid (license) [Validation: 1.3]
Missing mandatory field, 'license' (license) [Validation: 1.3]
Remedy: Take a look at the META.yml Spec at and change your META.yml accordingly.

Failed test 'has_human_readable_license'
at t/kwalitee.t line 5.
Error: This distribution does not have a license defined in the documentation or in a file called LICENSE
Neither LICENSE file nor LICENSE section in pod was found.
Remedy: Add a section called "LICENSE" to the documentation, or add a file named LICENSE to the distribution.

Failed test 'has_license_in_source_file'
at t/kwalitee.t line 5.
Error: Does not have license information in any of its source files
LICENSE section was not found in the pod.
Remedy: Add =head1 LICENSE and the text of the license to the main module in your code.

Failed test 'use_strict'
at t/kwalitee.t line 5.
Error: This distribution does not 'use strict;' (or its equivalents) in all of its modules. Note that this is not about the actual strictness of the modules. It's bad if nobody can tell whether the modules are strictly written or not, without reading the source code of your favorite clever module that actually enforces strictness. In other words, it's bad if someone feels the need to add 'use strict' to the modules.
Use of uninitialized value in concatenation (.) or string at /usr/local/share/perl/5.14.2/Module/CPANTS/Kwalitee/ line 158.
The following modules don't use strict (or equivalents):
Remedy: Add 'use strict' to all modules, or convince us that your favorite module is well-known enough and people can easily see the modules are strictly written.
Looks like you failed 4 tests of 14.
t/kwalitee.t ...... Dubious, test returned 4 (wstat 1024, 0x400)


Sorry for being late to reply (I'm travelling now). Part of this may be your issue, but some other part (like use_strict failure for a distribution without .pm file) is certainly our issue and should be fixed in Module::CPANTS::Kwalitee. So, please don't rush to close this. Thanks for your heads-up.


Distributions really should have .pm files though.. it has been discussed as a possibility that PAUSE might reject them, or return angry warnings, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.