Stories
Slash Boxes
Comments

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

ethan (3163)

ethan
  tassilo.von.pars ... AMrwth-aachen.de

Being a 25-year old chap living in the western-most town of Germany. Stuying communication and information science and being a huge fan of XS-related things.

Journal of ethan (3163)

Thursday March 31, 2005
06:51 AM

Kwalitee

[ #23949 ]

Lately I poked around a bit at CPANTS. I should maybe say that I am not really believing in this kwalitee thing and am mostly d'accord with what Schwern wrote about it on cpanratings.

Nonetheless I couldn't resist of looking up the scores of my modules. They weren't quite as high as possible because so far I haven't done any pod-coverage in my tests. This can be easily rectified. Then I noticed an annoying thing about Test::Pod and Test::Pod::Coverage: They claim to rely on Test::More. This is bad for some of my modules which are supposed to run on older perls, too, so I only use the plain Test module for their tests. Yet, CPANTS somehow tickled my vanity so I came up with test suites that use Test::Pod and Test::Pod::Coverage respectively without any need for Test::More:

eval "use Test::Pod";
if ($@) {
    print "1..0 # Skip Test::Pod not installed\n";
    exit;
}
 
my @PODS = qw#../blib#;
 
all_pod_files_ok( all_pod_files(@PODS) );

and in a similar fashion for Test::Pod::Coverage.

Of course, this exposes my modules to other potential problems, such as when the Test::Harness protocol changes, and thus makes it more flakey. However, the kwalitee score is now higher which already says something about the value of the kwalitee measurement.

Also, I think this test from CPANTS:

is_prereq
    Shortcoming: This distribution is only required by 2 or less other distributions.
    Defined in: Module::CPANTS::Generator::Prereq

is plain wrong and worthless. Why should it be a good thing that a module is used as a prerequisite by other modules? There's a whole class of modules on the CPAN that provide very high-level functionality and will therefore never be a prerequisite (think of modules such as Mail::Box or MPEG::MP3Play). This applies to all modules that are used to write applications instead of other modules.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • is plain wrong and worthless. [...] This applies to all modules that are used to write applications instead of other modules.

    Email domm :-)

  • is_prereq is not worthless. While what you say is obviously true (some good modules may not be used by any other), the reverse does not necessarily apply: if a module is being used by other modules, written by different authors, then that's a sign that there are other people who respect it, and therefore it's got a chance of being of higher quality than other, similar modules that have no such dependencies.

    If I'm trying to pick between several app-oriented modules then none of them will have is_prereq,

    • if a module is being used by other modules, written by different authors, then that's a sign that there are other people who respect it, and therefore it's got a chance of being of higher quality than other, similar modules that have no such dependencies.

      Ah, but you say "quality". kwalitee != quality.

      If I chose to add a module as dependency, do I care whether this module has a README? Or whether it has POD coverage tests? Or uses strict everywhere? No, no and no. I include it because it turned out to be
      • if a module is being used by other modules, written by different authors, then that's a sign that there are other people who respect it, and therefore it's got a chance of being of higher quality than other, similar modules that have no such dependencies.

        Ah, but you say "quality". kwalitee != quality.

        Actually I said "a chance of ... quality", the point being that it doesn't necessarily mean that the module is of higher quality, but in general there's likely to be a correlation between quality of mo