Skip to content

Incorrect Errors in Module-less Distros #37

Open
zoffixznet opened this Issue Oct 25, 2013 · 2 comments

3 participants

@zoffixznet

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 http://search.cpan.org/perldoc?cpan_bot and the other where I actually ran the test is http://search.cpan.org/perldoc?file2ftp

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: http://cpants.cpanauthors.org/dist/cpan_bot/errors

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.
Details:
known; License '' is invalid (license) [Validation: 1.3]; Missing mandatory field, 'license' (license) [Validation: 1.3]
known
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 http://module-build.sourceforge.net/META-spec-current.html 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
Details:
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
Details:
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/Uses.pm line 158.
Details:
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)

@charsbar

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.

@karenetheridge

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.