Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

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