On Nov 17, 2007 11:30 PM, Michael G Schwern <[EMAIL PROTECTED]> wrote:
> Let's put it on it's head.  We control META.yml.  META.yml consumers have to
> write special code to handle "requires: perl" anyway.  What's the advantage of
> doubling up the meaning of "requires"?  It didn't take advantage of any
> existing code or meaning.
>
> Why not make up a new key?

Because right now, consumers already have the special-case code and
will need to keep that special-case code to be backwards compatible
with older META.yml specs they might encounter.  Adding new key
doesn't undo the design mistakes of the past and just creates new work
and new sources of incompatibility.  E.g.:

CPAN author:  "Why are you complaining that my module doesn't work on
5.6?  I clearly put 'requires_perl' in the META.yml"

CPAN user:  "My $job still uses 5.6.s and doesn't let us install newer
versions of @toolchain_modules"

Hell, we're already there with incompatibility issues now with
"requires => { perl => 5.006 }" which still blows up on older Perls if
the main module specifies a version with "our $VERSION" (at least for
M::B <= 0.2808.  Dev version 0.2808_01 fixes that problem).

So, yes, it was a crappy design decision/hack, but now we're stuck with it.

David

Reply via email to