This is a review of CPAN and PAUSE in 2013.
The Comprehensive Perl Archive Network (CPAN) is an open archive of reusable components for the Perl programming language, mirrored on 268 servers around the world. Each distribution on CPAN contains one or more modules. A module might be an object-oriented class, or a library of functions. By the end of 2013, a total of 33,763 distributions had been released to CPAN since it started. Not all of those dists are still on CPAN.
The Perl Authors Upload SErver (PAUSE) is the service used by Perl authors to upload their distributions onto CPAN. Anyone can sign up for a PAUSE account, and by the end of 2013, a total of 11,112 people had signed up for a PAUSE account.
Let me know if you've any additional stats you'd like to see: neil at bowers dot com.
844 people signed up for a new PAUSE account in 2013. That's the second-best year so far, behind 2012.
You can see that something changed in 2012. There are a number of possible explanations, but the most likely one is that the 2nd edition of Intermediate Perl was released in 2012. The very first exercise in the book, on page 6, tells the reader to get a PAUSE account.
The two different colours highlight users who have uploaded at least one thing to CPAN (green), and those who haven't (orange). Before 1999 the PAUSE database didn't record the timestamp when an account was created. When someone did a release before 1999 I used their earliest release for their account creation year. This is why there's an unexpected peak in 1999, and no orange users for 1996, 1997, and 1998.
This graph shows the number of first-time uploads by new PAUSE users. The shape is fairly similar to the green part of the graph above, but the difference comes from the fact that the first upload might come quite a long time after creating your PAUSE account.
You can see that we hit a peak in 2003, in terms of account creation by active CPAN authors.
There's a latency between signing up for PAUSE and releasing your first dist: 13% release something on the same day, 20% have released something within 4 days, 30% within 3 weeks, 40% in just over 100 days, and 50% in just over 2 years. 56% of all PAUSE users had released at least one dist by the end of 2013.
This is most obvious in the signups by month for 2013. This graph will look quite different in April 2014.
There were 2840 new distributions released in 2013. If a dist was renamed, then the new name will be included in this count.
There was a clear step change in 2008. Was that when Moose took off? That's also the year Dist::Zilla was first released.
7440 different distributions were uploaded in 2013. This includes dists released for the first time, and dists that were first released in previous years.
There was quite a step up in 2013. Given new users and first-time releases were flat, that means that existing authors were a bit more active in 2013. I think.
The 7440 distributions that had a release in 2013 represented 22% of the dists on CPAN at the end of 2013.
The pie chart to the right shows the percentage of CPAN that had its most recent release for each year since 1996. Just over half of the dists have had a release in the last four years.
SHARYANTO | 769 |
---|---|
TOBYINK | 540 |
TOKUHIROM | 531 |
RJBS | 519 |
ETHER | 446 |
DAGOLDEN | 359 |
PLICEASE | 346 |
KENTNL | 297 |
PJFL | 289 |
MIYAGAWA | 279 |
The table on the right lists the top 10 authors who made the most releases, including multiple releases for each dist.
So on average RJBS released each of his dists 2.2 times, but SHARYANTO released each of his 4 times (for the dists they released).
App | 111 |
---|---|
Mojolicious::Plugin | 57 |
WebService | 44 |
Test | 39 |
Dist::Zilla::Plugin | 37 |
Net | 30 |
Acme | 28 |
WWW | 27 |
Alien | 25 |
Plack::Middleware | 24 |
The table on the right shows the top 10 namespaces used in dists that were released for the first time in 2013.
If a module is called Dist::Zilla::Plugin::Git, then the namespace is Dist::Zilla::Plugin
Regardless of how many modules used a given namespace in a distribution, it only scored +1 for that dist.
App | 149 |
---|---|
Dist | 108 |
Net | 95 |
Test | 81 |
Mojolicious | 66 |
Plack | 64 |
WebService | 54 |
Acme | 53 |
WWW | 51 |
AnyEvent | 42 |
The table on the right shows the top 10 top-level namespaces for new dists.
If a module is called Dist::Zilla::Plugin::Git, then the top-level namespace is Dist
MetaCPAN has firmly established itself as the tool to use when looking for things on CPAN. The plot on the right shows the monthly visit count for 2012 and 2013.
The interface has been quite stable recently. Changes files are now parsed and shown with dists. One of the biggest pieces of work in 2013 was making it easy to download a MetaCPAN VM and fire it up with Vagrant and VirtualBox. This makes it easier volunteers to hack on MetaCPAN.