In article <368479.98029...@web65702.mail.ac4.yahoo.com>, Ovid <publiustemp-moduleautho...@yahoo.com> wrote:
> I know there was a fair chunk of discussion regarding Perl 6 on the CPAN, but > have we gotten anywhere? More and more Perl 6 code is being written and > sooner or later, people would like someplace to put it other than github or > code.google.com :) It doesn't really matter where you put it in CPAN. Some people have suggested another section of PAUSE and the like. None of that really matters. I don't really care where they go, but creating a new subdirectory for Perl 6 doesn't get you any closer to a solution. The crux of the problem is how the tools translate a module that you want to install and discover which distro to download. PAUSE creates an authority in 02packages.details.txt and the tools beleive that. The tools take a path fragment from 02packages and puts it together with a CPAN mirror base address. However, the list of distributions in 02packages is only a small slice of everything on CPAN (about one-fifth the byte size last time I checked). If you upload something that PAUSE won't index, CPAN still mirrors it. The current 02packages is not sufficient for Perl 6 because it only lists the namespace, latest version, and file location. We need to have the author and other versions listed too. I think that would be useful for Perl 5 as well. At least one of the versions has to be marked at the default one if the user doesn't specify a particular author. >From there, the tools need to know how to select the right distro. The path it gets doesn't matter that much after it has already decided what it is going to download. This is something I'm working on next month. I have the stuff that can index distributions, create CPAN-like repositories, and create arbitrary 02packages files with arbitrary columns. My next step is a new index file and a new way to query it to get the path to the distribution to download. Specifically, I'm looking at ways that people can use CPAN and BackPAN to select versions of modules that are not the most recent versions, and doing it with the common tools.