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

Reply via email to