Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Find CPAN Module Counts on search.cpan.org #1

Closed
wants to merge 1 commit into from

5 participants

chromatic Tatsuhiko Miyagawa Chris Prather Christian Walde Erik DeBill
chromatic

The Perl module stats on cpan.org represent a fraction of the modules on the CPAN. search.cpan.org has the full count.

This patch adds a suggested migration to change the data source for Perl modules.

Tatsuhiko Miyagawa

Ruby gems and PyPI's modules count distributions not namespaces. So CPAN should also match against Distributions (on search.cpan.org) not Modules.

Chris Prather

I'm curious to know where search.cpan.org itself gets the stats. The numbers on http://stats.cpantesters.org/statscpan.html are about 4K higher. The larger number (24K) are roughly what I would expect from a quick scan of a (min)cpan mirror:

$find ~/Dropbox/minicpan/ -type f -name *.tar.gz | wc -l
24361

Isn't it wonderful what a horrible thing trying to make some comparative metrics between languages is?

Christian Walde

perigrin, searching in that way you won't get all dists, since some files use zip or tar.bz2 or possible even more different formats. As far as i can tell, search.cpan counts the unique release files mentioned in 02_packages (which, since it serves to count namespaces, has duplicates). So, the correct way, which the author is already aware of at this point is to extract the releases mentioned in 02_packages, strip version information and collapse the remainder.

Erik DeBill edebill closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Showing 1 unique commit by 1 author.

Dec 20, 2010
chromatic Migration Perl module stats to search.cpan.org. 231195c
This page is out of date. Refresh to see the latest.
15  db/migrate/20101220190035_fix_cpan_stats.rb
... ...
@@ -0,0 +1,15 @@
  1
+class FixCPANStats < ActiveRecord::Migration
  2
+  def self.up
  3
+    r       = Repository.find( :first, :conditions => "name = 'CPAN'" )
  4
+    r.url   = "http://search.cpan.org/"
  5
+    r.regex = "([\\d,]+) Modules"
  6
+    r.update_count
  7
+  end
  8
+
  9
+  def self.down
  10
+    r       = Repository.find( :first, :conditions => "name = 'CPAN'" )
  11
+    r.url   = "http://www.cpan.org/"
  12
+    r.regex = "authors ([\\d,]+) modules"
  13
+    r.update_count
  14
+  end
  15
+end
Commit_comment_tip

Tip: You can add notes to lines in a file. Hover to the left of a line to make a note

Something went wrong with that request. Please try again.