After looking at David Wheeler's PGXN and David Cantrell's CPAN snapshots, I've 
come up with a story.  Tell me if you think this makes sense (or not):

Historically, CPAN mirrors have always been static files.  In other words, the 
paths in the 02packages file always pointed directly to some physical file on 
disk.  This made it possible to access mirrors the with the older ftp:// and 
file:// protocols supported by CPAN.pm.  It also made synchronizing the mirrors 
easy with tools like rsync.

This has worked well for a long time.  But the need to support older protocols 
limits the flexibility of a CPAN mirror.  If you drop support for ftp:// and 
file://, and just focus on http:// then things can become more interesting.  
This open the door for a CPAN server (like the PGXN::Manager) that can do all 
sorts of things.  For example, it could serve up distros that are spread across 
multiple remote machines.  Or they could be stored in version control system or 
database.  Or you could present a view of the mirror that meets certain 
criteria, such as by time, or cpantesters results, or by author, or by kwalitee 
scores, or by some other metadata (like http://cp2011-05an.barnyard.co.uk/).    
The concept of a CPAN server also provides a convenient hook for plugging in 
other services, like a private PAUSE or MetaCPAN.

I'm not saying that *the* CPAN should work this way.  I'm just suggesting that 
a *private* CPAN could work this way.

Jeffrey Thalhammer
Imaginative Software Systems
vcard: http://www.imaginative-software.com/contact/jeff.vcf




Reply via email to