Skip Menu |

This queue is for tickets about the Reaction CPAN distribution.

Report information
The Basics
Id: 90901
Status: open
Priority: 0/
Queue: Reaction

People
Owner: Nobody in particular
Requestors: upasna.shukla [...] gmail.com
cpan [...] zoffix.com
Cc:
AdminCc:

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



Subject: New Moose may break your code
Date: Fri, 29 Nov 2013 03:33:52 +0530
To: bug-Reaction [...] rt.cpan.org
From: "Upasana Shukla" <upasna.shukla [...] gmail.com>
We recently deprecated Class::MOP::load_class in Moose. It appears that your module is affected. You can read more about the change here: https://metacpan.org/pod/release/ETHER/Moose-2.1106-TRIAL/lib/Moose/Manual/Delta.pod#pod2.1200 We recommend that you take a look at your code to see if it indeed does need to be updated with respect to the latest Moose release, 2.1106-TRIAL. If you have any questions, then please ask either on Moose mailing list : http://lists.perl.org/list/moose.html or on #moose & #moose-dev on irc.perl.org.
Attached patch fixes the issue. Also, not sure if it's intentionaly, bit you packed 2.8MB .git dir in this distro. -- Cheers, ZZ [ https://metacpan.org/author/ZOFFIX ]
Subject: Reaction-0.002005.patch
diff -Naur Reaction-0.002005_orig/lib/Catalyst/Model/Reaction/InterfaceModel/DBIC.pm Reaction-0.002005/lib/Catalyst/Model/Reaction/InterfaceModel/DBIC.pm --- Reaction-0.002005_orig/lib/Catalyst/Model/Reaction/InterfaceModel/DBIC.pm 2014-01-22 21:38:30.025680648 -0500 +++ Reaction-0.002005/lib/Catalyst/Model/Reaction/InterfaceModel/DBIC.pm 2014-01-22 21:39:28.729681417 -0500 @@ -4,7 +4,7 @@ use Catalyst::Utils; use Catalyst::Component; -use Class::MOP; +use Class::Load; #XXX so yeah, thisis kinda hacky. big whop though, i need it. #this may just all together go away in the future @@ -21,7 +21,7 @@ my %cfg = %{ Catalyst::Utils::merge_hashes($class->config, $args) }; my $im_class = $cfg{im_class}; - Class::MOP::load_class($im_class); + Class::Load::load_class($im_class); #XXXthis could be cut out later for a more elegant method my @domain_models = $im_class->domain_models; @@ -31,7 +31,7 @@ if @domain_models > 1; my $domain_model = shift @domain_models; my $schema_class = $domain_model->_isa_metadata; - Class::MOP::load_class($schema_class); + Class::Load::load_class($schema_class); my $params = $cfg{db_params} || {}; my $schema = $schema_class diff -Naur Reaction-0.002005_orig/lib/Reaction/Class.pm Reaction-0.002005/lib/Reaction/Class.pm --- Reaction-0.002005_orig/lib/Reaction/Class.pm 2014-01-22 21:38:30.033680648 -0500 +++ Reaction-0.002005/lib/Reaction/Class.pm 2014-01-22 21:41:56.133683348 -0500 @@ -1,6 +1,7 @@ package Reaction::Class; use Moose qw(confess); +use Class::Load; use Sub::Exporter (); use Sub::Name (); use Reaction::Types::Core ':all'; @@ -120,7 +121,7 @@ if ($@) { confess "Couldn't make ${class} a Reaction class: $@"; } } if (@supers) { - Class::MOP::load_class($_) for @supers; + Class::Load::load_class($_) for @supers; $class->meta->superclasses(@supers); } $self->setup_and_cleanup($package, $setup); diff -Naur Reaction-0.002005_orig/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm Reaction-0.002005/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm --- Reaction-0.002005_orig/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm 2014-01-22 21:38:30.025680648 -0500 +++ Reaction-0.002005/lib/Reaction/InterfaceModel/Collection/DBIC/Role/Base.pm 2014-01-22 21:40:03.449681872 -0500 @@ -2,7 +2,7 @@ use Reaction::Role; use Scalar::Util qw/blessed/; -use Class::MOP; +use Class::Load; # WARNING - DANGER: this is just an RFC, please DO NOT USE YET @@ -27,7 +27,7 @@ #implements BUILD => as { # my $self = shift; -# Class::MOP::load_class($self->_im_class); +# Class::Load::load_class($self->_im_class); # confess "_im_result_class must be a Reaction::InterfaceModel::Object" # unless $self->_im_class->isa("Reaction::InterfaceModel::Object"); # confess "_im_result_class must have an inflate_result method" diff -Naur Reaction-0.002005_orig/lib/Reaction/InterfaceModel/Reflector/DBIC.pm Reaction-0.002005/lib/Reaction/InterfaceModel/Reflector/DBIC.pm --- Reaction-0.002005_orig/lib/Reaction/InterfaceModel/Reflector/DBIC.pm 2014-01-22 21:38:30.033680648 -0500 +++ Reaction-0.002005/lib/Reaction/InterfaceModel/Reflector/DBIC.pm 2014-01-22 21:41:09.169682733 -0500 @@ -9,7 +9,7 @@ use aliased 'Reaction::InterfaceModel::Object'; use aliased 'Reaction::InterfaceModel::Action'; use Reaction::Class; -use Class::MOP; +use Class::Load; use Catalyst::Utils; @@ -146,8 +146,8 @@ #load all necessary classes confess("model_class and schema_class are required parameters") unless($model && $schema); - Class::MOP::load_class( $base ); - Class::MOP::load_class( $schema ); + Class::Load::load_class( $base ); + Class::Load::load_class( $schema ); my $meta = $self->_load_or_create( $model, superclasses => [$base], @@ -219,7 +219,7 @@ #there's a lot of guessing going on, but it should work fine on most cases INNER: for my $needle (@haystack){ my $isa = $needle->_isa_metadata; - next INNER unless Class::MOP::load_class( $isa->_isa_metadata ); + next INNER unless Class::Load::load_class( $isa->_isa_metadata ); next INNER unless $isa->isa('DBIx::Class::Schema'); if( $source_name ){ @@ -350,8 +350,8 @@ unless $object && $source; $class ||= $self->class_name_for_collection_of($object); - Class::MOP::load_class( $base ); - Class::MOP::load_class( $object ); + Class::Load::load_class( $base ); + Class::Load::load_class( $object ); my $meta = $self->_load_or_create( $class, @@ -441,9 +441,9 @@ $class ||= $self->class_name_from_source_name($parent, $source_name); - Class::MOP::load_class($parent); - Class::MOP::load_class($schema) if $schema; - Class::MOP::load_class($source_class); + Class::Load::load_class($parent); + Class::Load::load_class($schema) if $schema; + Class::Load::load_class($source_class); my $meta = $self->_load_or_create( $class, @@ -725,9 +725,9 @@ my $attr_rules = delete $opts{attributes}; $class ||= $object->_default_action_class_for($name); - Class::MOP::load_class( $base ); - Class::MOP::load_class( $object ); - Class::MOP::load_class( $source ); + Class::Load::load_class( $base ); + Class::Load::load_class( $object ); + Class::Load::load_class( $source ); #print STDERR "\n\t", ref $attr_rules eq 'ARRAY' ? @$attr_rules : $attr_rules,"\n"; # attributes => undef, #default to qr/./ @@ -889,7 +889,7 @@ my ($self, $class) = @_; my $file = $class . '.pm'; $file =~ s{::}{/}g; - my $ret = eval { Class::MOP::load_class($class) }; + my $ret = eval { Class::Load::load_class($class) }; if ($INC{$file} && $@) { confess "Error loading ${class}: $@"; } diff -Naur Reaction-0.002005_orig/lib/Reaction/UI/Skin.pm Reaction-0.002005/lib/Reaction/UI/Skin.pm --- Reaction-0.002005_orig/lib/Reaction/UI/Skin.pm 2014-01-22 21:38:30.033680648 -0500 +++ Reaction-0.002005/lib/Reaction/UI/Skin.pm 2014-01-22 21:42:44.749683985 -0500 @@ -8,7 +8,7 @@ use File::ShareDir; use File::Basename; use Config::Any; - +use Class::Load; use aliased 'Path::Class::Dir'; use namespace::clean -except => [ qw(meta) ]; @@ -175,10 +175,10 @@ foreach my $class (@haystack) { #if the class is already loaded skip the call to Installed etc. - return $class if Class::MOP::is_class_loaded($class); + return $class if Class::Load::is_class_loaded($class); next unless Class::Inspector->installed($class); - my $ok = eval { Class::MOP::load_class($class) }; + my $ok = eval { Class::Load::load_class($class) }; confess("Failed to load widget '${class}': $@") if $@; return $class; } diff -Naur Reaction-0.002005_orig/lib/Reaction/UI/View.pm Reaction-0.002005/lib/Reaction/UI/View.pm --- Reaction-0.002005_orig/lib/Reaction/UI/View.pm 2014-01-22 21:38:30.033680648 -0500 +++ Reaction-0.002005/lib/Reaction/UI/View.pm 2014-01-22 21:43:05.757684261 -0500 @@ -7,7 +7,7 @@ use Reaction::UI::RenderingContext; use aliased 'Reaction::UI::Skin'; use aliased 'Path::Class::Dir'; - +use Class::Load; use namespace::clean -except => [ qw(meta) ]; @@ -122,7 +122,7 @@ next if $super eq View; if ($super =~ /::View::/) { (my $class = $super) =~ s/::View::/::${rel}::/; - if (eval { Class::MOP::load_class($class) }) { + if (eval { Class::Load::load_class($class) }) { return $class; } } diff -Naur Reaction-0.002005_orig/lib/Reaction/UI/ViewPort/SearchableListViewContainer.pm Reaction-0.002005/lib/Reaction/UI/ViewPort/SearchableListViewContainer.pm --- Reaction-0.002005_orig/lib/Reaction/UI/ViewPort/SearchableListViewContainer.pm 2014-01-22 21:38:30.033680648 -0500 +++ Reaction-0.002005/lib/Reaction/UI/ViewPort/SearchableListViewContainer.pm 2014-01-22 21:42:19.925683660 -0500 @@ -8,6 +8,7 @@ use aliased 'Reaction::UI::ViewPort'; use aliased 'Reaction::UI::ViewPort::Collection::Role::Pager', 'PagerRole'; +use Class::Load; use Method::Signatures::Simple; use namespace::clean -except => 'meta'; @@ -33,7 +34,7 @@ or confess "Argument action_class is required"; # TODO: how do we autodiscover spec classes? # $spec_class =~ s/^::/${\SearchSpec}::/; - Class::MOP::load_class($spec_class); + Class::Load::load_class($spec_class); my $spec = do { if (my $string = $args->{ctx}->req->query_params->{$spec_event_id}) { $spec_class->from_string($string, $args->{spec}||{}); diff -Naur Reaction-0.002005_orig/Makefile.PL Reaction-0.002005/Makefile.PL --- Reaction-0.002005_orig/Makefile.PL 2014-01-22 21:38:29.921680646 -0500 +++ Reaction-0.002005/Makefile.PL 2014-01-22 21:44:03.189685013 -0500 @@ -19,6 +19,7 @@ requires 'Config::General' => '2.42'; requires 'Crypt::Eksblowfish::Bcrypt' => '0.005'; requires 'Class::MOP' => '0.81'; +requires 'Class::Load' => '0.20'; requires 'DBIx::Class' => '0.08100'; requires 'DBIx::Class::IntrospectableM2M' => '0.001001'; requires 'DateTime' => '0.47';