On Mon, Apr 15, 2013 at 11:02 AM, Mike Doherty <dohe...@cs.dal.ca> wrote: > On 13-04-15 01:56 PM, Michael G. Schwern wrote: >> >> Why we need this, why you can't do it with "requires" is because this is >> for modules which you do not depend on. Often they depend on you. >> MooseX::Blah depends on Moose, so Moose declares conflict with versions >> of MooseX::Blah it breaks. > > > This requires Moose maintainers to know about all the things their releases > break. Have you considered reversing the directionality so MooseX::Blah > knows about the things which break it? That seems like a more likely > scenario to me, and lets the right maintainer control the "conflicts" > relationship.
Ideally, you would have this information in both locations, as users can install in either sequence: 1) New install: MooseX::Blah requires Moose, so Moose will install first. Moose cannot warn because MooseX::Blah isn't installed yet. So MooseX::Blah needs to warn during installation. 2) Older version of Moose and latest version of MooseX::Blah already installed. User updates Moose. Moose should warn that it will break already installed MooseX::Blah. I've run into this scenario with DBI and DBD::AnyData before, where only DBI warns about the conflict, but DBD::AnyData doesn't: https://rt.cpan.org/Public/Bug/Display.html?id=83293 Cheers, -Jan