Slash Boxes
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

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Cool!

    Some ideas:

    1) Document/discuss possible future metrics on the Perl-QA wiki []

    2) For each metric, document the aspect of Quality that is being judged and how the Kwalitee metric is a good proxy for it, and/or possible other proxies. For example, consider the software goal of "Good documentation". Currently that metric follows the following chain of proxy metrics:

        Good documentation => 100% POD coverage => has t/.*pod.*coverage.* file

    A better proxy might be for CPANTS to run Pod::Coverage itself, thus:

        Good documentation => 100% POD coverage => passes Test::Pod::Coverage

    Another possibility (not a good one, just an example):

        Good documentation => ratings of docs

    And we don't have to choose just one. As I argued on the Perl-QA list, the more metrics the better. More metrics makes CPANTS harder to gain, and lets us apply weights to the metrics we like best.

    3) Other possible metrics:
      * is_ascii_or_unicode - avoid Latin-1, Shift-JIS, etc in code
      * consistent_newlines - proposed by Adam Kennedy on Perl-QA in April
      * has_synopsis - usage examples in POD (David Golden, in March on Perl-QA)
      * does_synopsis_compile - this is a sketchy one
      * has_meta_yml_license - check for a META.yml field named "license"

    4) Some of the Perl::Critic policies might be universal enough to be CPANTS metrics
    • consistent_newlines - proposed by Adam Kennedy on Perl-QA in April

      Was that consistent newlines per file, or per dist? Some dists have legit reason to have some files native line endings and some files w/ non-0native line endings. I've done it in Handel. Some things just don't work in windows unless the file has *nix line endings, like __DATA__ vs. __END__ in some situations.