In a series of previous posts ( 1, 2, 3 ) I had a look at some metrics for measuring the river quality of distributions. This post presents those metrics for the distributions at the head of the river: those distributions which have 10,000 downstream dependents or greater.

Firstly, here's summary data for the 45 distributions, in decreasing order of number of downstream dependents. I didn't include that number to keep the width of the table down. Most of these are core dists (another indicator I might include in future versions of the table).

Distribution Released by min perl Bugs CPAN Testers Kwalitee META Pod-Simple MARCGREEN N/A 4 5 0 0 0 1 2 Y J Data-Dumper SMUELLER N/A 18 - 3909 25 15 0.6% 5 4 Y - Test-Simple EXODIST 5.006 28 27 0 0 0 1 1 Y J Scalar-List-Utils PEVANS N/A 28 0 5579 98 8 1.7% 1 2 Y J Test-Harness LEONT N/A 32 12 0 0 0 0 2 Y J podlators RRA 5.006 4 0 0 0 0 0 0 Y J Test JESSE N/A 6 - 2833 0 1 0.0% 0 0 Y J ExtUtils-MakeMaker BINGOS 5.006 29 24 0 0 0 0 2 Y J Carp RJBS N/A 6 - 0 0 0 1 2 Y J PathTools RJBS N/A 62 - 0 0 0 0 3 Y J parent CORION N/A 3 0 1721 0 0 0.0% 1 2 Y J Exporter TODDR N/A 0 - 1102 0 0 0.0% 4 2 Y J Encode DANKOGAI N/A 45 3 0 0 0 1 2 Y J IO TODDR N/A 34 - 332 8 1 2.3% 1 3 Y - constant RJBS N/A 0 - 729 0 0 0.0% 0 2 Y J File-Path RICHE N/A 1 1 0 0 0 0 2 Y J File-Temp DAGOLDEN 5.006 10 1 0 0 0 2 3 Y J lib SMUELLER N/A 2 - 2177 4 4 0.2% 2 3 Y - version JPEACOCK 5.006002 0 - 0 0 0 0 0 Y J Module-Load BINGOS N/A 4 1 1649 2 0 0.1% 0 1 Y J Module-Metadata ETHER 5.006 11 6 0 0 0 1 2 Y - Locale-Maketext-Simple JESSE N/A 8 - 1823 60 0 3.2% 1 1 Y - Module-CoreList BINGOS N/A 6 - 0 0 0 0 2 Y J Params-Check BINGOS N/A 3 1 1891 2 1 0.1% 0 2 Y J Module-Load-Conditional BINGOS N/A 0 0 1114 0 0 0.0% 0 2 Y J IPC-Cmd BINGOS N/A 26 1 1476 121 0 7.6% 0 2 Y - base RJBS N/A 4 - 0 0 0 3 4 Y J Text-ParseWords CHORNY 5.006 5 0 1021 0 0 0.0% 0 1 Y J Perl-OSType DAGOLDEN 5.006 0 1 0 0 0 0 0 Y J ExtUtils-CBuilder AMBS N/A 0 0 0 0 0 1 2 Y J Getopt-Long JV N/A 11 - 0 0 0 0 0 - - XSLoader SAPER N/A 0 - 2366 249 0 9.5% 1 2 Y J JSON-PP MAKAMAKA N/A 13 3 1929 2 0 0.1% 0 3 Y J ExtUtils-ParseXS SMUELLER N/A 4 - 0 0 0 0 2 Y J CPAN-Meta-YAML DAGOLDEN 5.008001 0 0 0 0 0 0 0 Y J CPAN-Meta-Requirements DAGOLDEN 5.006 0 5 0 0 0 0 0 Y J Parse-CPAN-Meta DAGOLDEN 5.008001 3 1 3647 0 0 0.0% 1 2 Y J CPAN-Meta DAGOLDEN 5.008 5 23 3675 2 0 0.1% 0 0 Y J ExtUtils-Install BINGOS N/A 21 2 1234 7 0 0.6% 2 3 Y J ExtUtils-Manifest ETHER 5.006 2 12 1302 0 0 0.0% 0 0 Y J Text-Abbrev FLORA 5.005 0 0 0 0 0 2 2 Y J Module-Build LEONT 5.006001 24 12 0 0 0 0 0 Y J if ETHER N/A 1 - 0 0 0 3 2 Y J MIME-Base64 GAAS 5.004 0 0 0 0 0 1 2 Y J Try-Tiny ETHER 5.006 0 0 0 0 0 0 0 Y J

Some explanation:

In the Bugs column, the lefthand number is the count of RT issues, and the right-hand is the number of github issues, or '-' if there isn't a github repo for the dist.

column, the lefthand number is the count of RT issues, and the right-hand is the number of github issues, or '-' if there isn't a github repo for the dist. The CPAN Testers column is: passes, fails, unknowns, and then the percentage of fails.

column is: passes, fails, unknowns, and then the percentage of fails. The Kwalitee column has the number of core metrics failed, and then the number of extra metrics failed.

column has the number of core metrics failed, and then the number of extra metrics failed. The META column has a Y if the dist has a META.yml , and a J if the dist has a META.json .

One obvious follow-on question, which at least Helmut asked: what are the kwalitee metrics involved. So I wrote another script to build a summary table of the metrics:

The most commonly failed metrics are:

Distribution doesn't use warnings

Distribution metadata doesn't declare min perl version

Now I've got this data, I'm going to start working through the distributions, seeing which ones can be fixed, and raising bugs or submitting pull requests, as appropriate.

Please enable JavaScript to view the comments powered by Disqus.

Disqus