Subject: | MooseX-Alien 1.00 breaks on Moose 0.90 |
Date: | Mon, 21 Sep 2009 09:07:49 -0400 |
To: | bug-MooseX-Alien [...] rt.cpan.org |
From: | "Ben. B." <bennymack [...] gmail.com> |
There was a change to Moose::Role::_add_method_modifier where it no longer
calls Moose::Meta::Role->initialize on $meta so that the MooseX::Alien meta
class never gets initialized. I found that changing this line in
MooseX/Alien.pm fixes it for Moose 0.90:
< __PACKAGE__->Moose::Role::around
Show quoted text
> __PACKAGE__->meta->Moose::Role::around
This change is not backwards compatible with Moose <= 0.89 however. While
I'm probably incorrect on several technical points here, there does appear
to be an issue. Perhaps when upgrading to the newer version of Moose, an
incompatibility warning should be emitted? E.g.
***
This version of Moose conflicts with the version of
MooseX::Alien (1.00) you have installed.
You will need to upgrade MooseX::Alien after installing
this version of Moose.
***
I'm not entirely sure how these incompatibility warnings are implemented
however. And this would also rely on another version of MX::Alien being
released that can then be upgraded to.
Anyway, here's the actual error that we initially received:
$ perl -e 'use MooseX::Alien'
Can't locate object method "add_around_method_modifier" via package
"MooseX::Alien" at
~/documents/perl/perl500100/lib/site_perl/5.10.0/Moose/Role.pm line 61.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.