> You are, however, ABSOLUTELY going to  break forwards compatibility. You
> were right, I did mean forwards.
>
> And this is just as bad.
>
> Let's look at the alternatives then.
>
> We're adding new stuff to META that old-spec consumers won't understand.
>  The two alternatives are to put it somewhere where they won't see it and
> thus will silently ignore it, or to put it somewhere where they'll choke on
> it.  Since we're talking about "requirements", and not "the author's
> favorite color", I suggest it's better to
>

(I assume you meant somewhere they'll choke on it)

Let me clear exactly what we are adding.

We are adding non-canonical ADVISORY meta-data. As such, while clients MAY
act on the basis of it in contexts outside of actual module installation (or
if dynamic_config: 0 is set) if they so choose, it will not be the primary
mechanism for enforcing the version.

That will continue to be the Makefile.PL or Build.PL as per normal.

Otherwise, see the last paragraph of
> http://en.wikipedia.org/wiki/INTERCAL_programming_language .
>
> Also, breaking forwards compatibility is most certainly NOT just as bad -
> the whole principle of "minimum version number" requirements for anything,
> for instance, is built upon it.  And there's a special word for a system
> that never breaks forward nor backward compatibility: static.  That's just
> one step away from dead.
>

Fortunately, META.yml is not code. It's just data.

XML/SGML is probably a better analogy. In XML, consumers are supposed to
discard information they don't understand. This is quite normal.

If a META.yml consumer for some reason didn't understand requires: this
would not be a big deal.

It would skip over it, the Makefile.PL would run, and the canonical source
of the dependencies would catch it.

This is exactly the same as what perl_requires will do.

And we're not NEVER breaking forwards compatibility, it's just that breaking
forwards compatibility should be a last resort when there is absolutely no
other options, not something we do to encourage compliance.

Reply via email to