develooper Front page | perl.perl5.porters | Postings from October 2009

Re: The Great Pumpkin

Thread Previous | Thread Next
David Golden
October 31, 2009 18:43
Re: The Great Pumpkin
Message ID:
On Sat, Oct 31, 2009 at 7:59 PM, jesse <> wrote:
>> I can already tell you that the CPAN Meta Spec 2.0 design process is
>> wrapping up around then and there will be major changes to the
>> toolchain modules to support it probably in the month of December.
>> You'll need to decide if you want to get those changes (or some of
>> them) into Version 12 or let them slip to 14.  No decision needed now,
>> but I want to put in a placeholder for discussions later.
> My inclination is "big changes moments before we'd like to ship" are
> something I'd like to avoid. That said, as your design process finishes
> up and implementation begins, keep p5p in the loop. If there are things
> we can do to ease the transition to the new toolchain, or help users
> not get hurt, well, I like my users unhurt. Then they won't try to hurt
> me. [see below]

Here's the timeline:

* tomorrow: I declare the "public comment" period closed
* before Dec 1: CPAN Meta Spec working group debates patches until we
have sufficient consensus on a new spec
* We implement the new spec

So... assuming the patches converge quickly and the working group can
decide quickly, we could accelerate the implementation process.
(sigh... November was already looking like a hellish month for me).

Major areas of implementation:

* CPAN spec writer/parser/validator -- as it looks like we're moving
to JSON as the format for 2.0+, we'll need to bring the (perl) JSON
distribution into core and create a simple META file wrapper around it
it and Parse::CPAN::Meta, depending on the file format.  That should
be relative quick and I think we can get it done in time for Version

* CPAN/CPANPLUS -- need to be updated to look for (and prefer)
META.json files and to use the new META spec handler module.  Their
behaviors may need to be altered in subtle ways to be consistent with
the spec.  E.g. it looks like there is going to be a new "prefers"
prerequisite type that is not an absolute "requires", but should be
installed except on resource constrained systems or if a user opts
out.  This allows authors to say 'requires Params::Validate' and
'prefers Params::ValidateXS' and the like.

If that doesn't get done in time for Version 12, or is deemed too
risky, it can probably slip.  It means people may not benefit from
META 2.0 changes in newly released distributions unless they upgrade
CPAN/CPANPLUS, but there will be a period of adoption anyway before
META 2.0 becomes widespread

* Distribution generators (M::B, EU::MM, M::I) -- need to be changed
to generate legal 2.0 META files.  This will be the most significant
effort as there will be many subtle and not-so-subtle changes.  But as
this only affects authors, they can reasonably upgrade their tools
before releasing new distributions.

As a side note, it would be great to get all three of M::B, EU::MM and
M::I generating the new MYMETA files for CPAN toolchain to communicate
dependencies in a standardized way. already supports it in
core; I don't know about CPANPLUS; Module::Build dev supports it;
there's been some work on M::I and EU::MM, but I don't know the

If I had to prioritize an area of work for November, I'd actually pick
MYMETA over the 2.0 spec.  It's lower risk and higher reward.

-- David

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About