The meaning of MetaCPAN favorites

MetaCPAN Thu 29 January 2015

Until now I haven't really been sure what interpretation to put on MetaCPAN favorites, so I haven't favorited anything. You won't be surprised to hear that the PR challenge prompted me to think about favorites, and your response to my interpretation is likely to be "well, yeah, duh!".

For a long time I've wished that MetaCPAN had a way to say "I use this distribution". For some distributions, the number of reverse dependencies (how many other CPAN distributions use this one) is a good approximation for "is this a good / useful dist?"). But there are a lot of dists that won't ever have a lot of reverse dependencies, even though they're used a lot. For example most things in the App:: namespace. Plus we can't account for DarkPAN usage.

In the ranking scheme for the PR challenge, I give a +1 to a dist if it's used by any other dists on CPAN. David Pottage pointed out that this will miss some dists that should get a similar +1.

So I thought that maybe CPAN favorites can be used as a proxy for "worth a look", or "if I was editing CPAN, I'd keep this dist". Which made me wonder: what's the distribution of counts of CPAN favorites?

distribution of CPAN favorites

Just under 83% of CPAN distributions have 0 (zero) favorites, or roughly 5600 dists have at least one favorite. For comparison, just over 10,100 distributions have at least one reverse dependency.

A favorite is quite a lightweight thing, and an author can always like their own dist. So for now I've set the threshold at 2: if a dist has 2 or more favorites on MetaCPAN, or if it has reverse dependencies, then it gets a +1 in the PRC ranking.

If you're curious, at the time of writing there are 701 distributions that have no reverse dependencies but 2 or more MetaCPAN favorites. Of those, 394 are candidates for the PR challenge.

We could consider an extra +1 if a dist has more than 100 favorites. That's a pretty select group:

Test-Simple         113         Plack               163
Devel-NYTProf       113         DBI                 171
Catalyst-Runtime    116         Moo                 172
Try-Tiny            121         App-cpanminus       188
Dancer              128         DBIx-Class          202
App-perlbrew        131         Moose               226
Dist-Zilla          134         Mojolicious         246
DateTime            140

Most of those already get plenty of +1's, so maybe not.

At some point, hopefully soon, I'll change the ranking to only consider reverse dependencies created by other authors.

Now I have a meaning for favorites that makes sense for me, I can start using them!

Thanks to MICKEY for his help in getting the favorites data from MetaCPAN using MetaCPAN::Client.

comments powered by Disqus