Skip Menu |

This queue is for tickets about the Moose CPAN distribution.

Report information
The Basics
Id: 92781
Status: rejected
Priority: 0/
Queue: Moose

People
Owner: ether [...] cpan.org
Requestors: POPEL [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: (no value)
Fixed in: (no value)



Subject: Check conflicting modules also after installing Moose
This is just a suggestion for better error handling and user friendliness. The motivation is described in https://rt.cpan.org/Ticket/Display.html?id=92780 When Moose is installed/updated it checks for conflicting modules and produces a warning, e.g.: Conflicts detected for Moose: Catalyst is version 5.90007, but must be greater than version 5.90049999 Config::MVP is version 2.200002, but must be greater than version 2.200004 Devel::REPL is version 1.003014, but must be greater than version 1.003020 MooseX::NonMoose is version 0.20, but must be greater than version 0.22 MooseX::Object::Pluggable is version 0.0011, but must be greater than version 0.0011 MooseX::Role::Parameterized is version 0.25, but must be greater than version 1.00 MooseX::Traits is version 0.11, but must be greater than version 0.11 However, cpan does not update these conflicting modules (as these are not dependencies) and the message gets hidden among thousands of other lines. My suggestion is to check for conflicting modules (and print the warning) also each time when an uncaught Moose exception is produced. I know checking conflicts takes some time, but I hope a small slowdown *after* printing a fatal error should not hurt.
On 2014-02-06 03:36:22, POPEL wrote: Show quoted text
> My suggestion is to check for conflicting modules (and print the > warning) also each time when an uncaught Moose exception is produced. > I know checking conflicts takes some time, but I hope a small slowdown > *after* printing a fatal error should not hurt.
Checking for conflicting modules requires (attempting to) load every module that is in the conflicts list, of which there are dozens. I don't think it's a good idea to load more Moose-relaed classes when we've already just encountered an exception. However, this is something that you can add in your own code, thanks to the new exception system - whenever you catch an exception and isa('Moose::Exception'), you can call Moose::Conflicts->check_conflicts.
Thanks for the answer. Now, I know that after upgrading Moose, I should always call perl -MMoose::Conflicts -E 'Moose::Conflicts->check_conflicts' or equivalently moose-outdated -v After reading https://metacpan.org/pod/Dist::CheckConflicts, I hope that future cpan/cpanm/cpanp clients will be set up (by default) to update also conflicting modules automatically. That would be definitely a nicer solution than what I suggested in this ticket.