Re: How to have Perl 5 and Perl 6 cohabitate nicely on CPAN

[email protected] (David Golden)
Newsgroups perl.cpan.workers
Message-ID <[email protected]>
On Wed, Apr 14, 2010 at 7:48 AM, Tim Bunce <[email protected]> wrote:
> Upload is essentially 'drop a distro tarball' + 'claim ownership'
> (+ and optional 'put in this directory') which then queues it for
> automated indexing later.

I believe it's important to distinguish those activities.  "drop a
tarball into a directory" is file manipulation, whereas "claim
ownership" is a form of indexing.  It's not clear to me that Perl 5
semantics for namespace ownership have any relevance for Perl 6.

> The META spec already includes a 'requires' element that can be used to
> specify a minimum perl version, so I suggest we use that to identify
> that perl6 is required:
>
>    requires:
>        perl: 6.0

I believe this is an acceptable option, but only for expediency.  The
CPAN Meta Spec has many elements which are specific to Perl 5's
approach to indexing.  After spending a lot of time considering it, I
do not think it will serve the needs of Perl 6 in its current form.
Nor, for that matter, do I think that Perl 6 semantics for packages,
authorities, modules, distributions, versions, etc. can be considered
stable (just like the rest of the language).

If Perl 6 authors choose to use the CPAN Meta Spec for Perl 6, I see
that akin to doctors proscribing off-label medicines to patients.  It
might address the symptoms, but the long term side-effects are
unknown.

>> 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.
>
> True, but is that *really* a significant need? Why bother?

There are only two "indexes" on CPAN that matter.  The first is
02packages, which is a map of Perl 5 namespaces to filepaths.  The
other is the filesystem, which organizes files into hierarchies.
Tools that wish to operate only on Perl 5 distributions or only on
Perl 6 distributions need a way to distinguish between them.

Using the filesystem as an index is possible immediately, without
additional effort.  It also would allow mirror operators who choose
not to mirror Perl 5 or Perl 6 to easily prune out portions of the
filetree during rsync.

-- David
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.