I'm writing up my notes from an extensive IRC conversation with Jesse Vincent. I offered to post it to cpan-workers for feedback.
He and I agree that there are significant benefits to the community to using a single repository for both Perl 5 and Perl 6 distributions. We worked through some differences of opinion in various ways this could be accomplished harmoniously and came up with what we think is a reasonable approach using much of the existing infrastructure. We agreed on several things: * We want to avoid bikeshed discussions of "CPAN/PAUSE 2.0" * We want to use the existing PAUSE/CPAN author credentials for both Perl 5 and Perl 6 * We want to use the existing PAUSE upload infrastructure with as few changes as possible * We want to consider "uploading" and "indexing" as separate issues [1] * We want to keep the existing package index files for Perl 5 only * We want to distinguish between Perl 5 and Perl 6 distributions within the file system I will explain the last point briefly as it was the crux of our discussion. While the 02packages file is a useful index of "things that are Perl 5 modules", it does not include developer distributions, outdated distributions, distributions without modules, etc. It is a subset of Perl 5 things, not complete index. Any tool that wants to look at Perl 5 things that aren't in the 02packages file is forced to look at the only other "index" available -- the file system. If we separate Perl 5 and Perl 6 distributions within the file system, we can distinguish between them easily and without relying on indexes, meta data files or other elements of complexity. Our proposal is for Perl 6 modules to be uploaded into a 'perl6' subdirectory of a CPAN author's directory like so: ...D/DA/DAGOLDEN/perl6/Foo-Bar-1.23.tar.gz PAUSE already supports uploading to subdirectories today, so the functionality exists NOW without any changes to PAUSE. It requires a *convention* of authors uploading their Perl 6 distributions to the right place and Jesse is looking into who is writing the Perl 6 "uploader" client (and will encourage them to join cpan-workers). If uploads are automated with tools, it would be a fairly simple matter to have the tools follow the convention. We also thought that it might be relatively easy for to add radio-boxes to the PAUSE upload page to indicate Perl 5 or Perl 6 and to place Perl 6 distributions into the proper directory without it having to be specified explicitly. (Whether it *must* be specified as one or the other, which would require updates to Perl 5 tools like CPAN::Uploader I will defer to Andreas' judgment.) This seemed like a very easy way to let Perl 5 and Perl 6 co-habitate nicely on CPAN, without any change to the existing infrastructure. It makes it easier (though not foolproof) for PAUSE or other indexers like the ones for CP5XXXAN or BackPAN to differentiate Perl 5 and Perl 6 distributions. [2] We considered whether we should encourage new Perl 5 uploads to be put in a 'perl5' subdirectory but decided that historical precedent was too strong and it would be a point of unnecessary controversy. [1] There will, of course, eventually be a need down the line for Perl 6 package/distribution indexing, but that is true regardless of where/how files are uploaded. [2] Indexers may still need to double check inside things in case they were put in the wrong place. -- David