Skip Menu |

This queue is for tickets about the MooseX-Getopt CPAN distribution.

Report information
The Basics
Id: 92780
Status: resolved
Priority: 0/
Queue: MooseX-Getopt

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

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: 0.60



Subject: Cannot install MooseX::Getopt with old MooseX::Role::Parameterized
I think MooseX-Getopt is missing a version specification in dependency on MooseX::Role::Parameterized. In https://metacpan.org/source/ETHER/MooseX-Getopt-0.59/META.json#L69 I see "MooseX::Role::Parameterized" : "0". Is there any reason, why not specify the newest version of MooseX::Role::Parameterized (1.02) there? I had MooseX::Role::Parameterized 0.25 (and the newest Moose 2.1202) and I was not able to install MooseX-Getopt because of the following error: t/001_basic.t ....................... 1/? # Failed test 'use MooseX::Getopt;' # at t/001_basic.t line 9. # Tried to use 'MooseX::Getopt'. # Error: Can't locate object method "_process_isa_option" via package "Class::MOP::Attribute" at /perl_repo/Ubuntu/10.04/x86_64/lib/perl5/site_perl/5.12.2/x86_64-linux-thread-multi/Moose/Meta/Attribute.pm line 209. # Compilation failed in require at /perl_repo/Ubuntu/10.04/x86_64/lib/perl5/site_perl/5.12.2/MooseX/Role/Parameterized/Meta/Role/Parameterizable.pm line 8. I think the problem is related also to the version of Moose. On another machine with old Moose (2.0205) and old MooseX::Role::Parameterized (0.25), updating MooseX::Getopt (from 0.37 to 0.59) went OK. I know that when updating Moose, it prints (in the middle of thousands of other lines) Conflicts detected for Moose: ... MooseX::Role::Parameterized is version 0.25, but must be greater than version 1.00 However, cpan does not update MooseX::Role::Parameterized automatically (nor it shows the conflict message at the end of all output), so normal users probably won't notice it.
Subject: Re: [rt.cpan.org #92780] Cannot install MooseX::Getopt with old MooseX::Role::Parameterized
Date: Thu, 6 Feb 2014 09:46:07 -0800
To: Martin Popel via RT <bug-MooseX-Getopt [...] rt.cpan.org>
From: Karen Etheridge <ether [...] cpan.org>
On Thu, Feb 06, 2014 at 06:17:28AM -0500, Martin Popel via RT wrote: Show quoted text
> I think MooseX-Getopt is missing a version specification in dependency on MooseX::Role::Parameterized. > In https://metacpan.org/source/ETHER/MooseX-Getopt-0.59/META.json#L69 I see > "MooseX::Role::Parameterized" : "0". > > Is there any reason, why not specify the newest version of MooseX::Role::Parameterized (1.02) there?
Yes, because there is no actual dependency on a new version of MXRP in MooseX::Getopt, which you verify with: Show quoted text
> I think the problem is related also to the version of Moose. On another machine with old Moose (2.0205) and old MooseX::Role::Parameterized (0.25), updating MooseX::Getopt (from 0.37 to 0.59) went OK.
Show quoted text
> I know that when updating Moose, it prints (in the middle of thousands of other lines) > > Conflicts detected for Moose: > ... > MooseX::Role::Parameterized is version 0.25, but must be greater than version 1.00 > > However, cpan does not update MooseX::Role::Parameterized automatically (nor it shows the conflict message at the end of all output), so normal users probably won't notice it.
CPAN clients cannot automatically update MooseX::Role::Parameterized, because it needs to be updated *after* Moose is installed/updated, not before, and there is no facility for "postrequisites". This is why the moose-outdated utility exists, which tells you, after installing Moose, all the other things which must now be updated to work with the new version. I'm sorry this is confusing, but there is no easy way around this. We can perhaps add a unit test in the Moose distribution which prints the output of moose-outdated to your console, but we cannot make the test fail, as that would cause the Moose installation to fail.
I've just committed a unit test that will dump the output of `moose-outdated` to the console, in the hopes that it has a higher likelihood of being seen after installing.