[Catalyst-commits] r8932 - in Catalyst-Runtime/5.80/trunk: . lib lib/Catalyst t t/lib

t0m at dev.catalyst.perl.org t0m at dev.catalyst.perl.org
Sun Dec 21 15:41:42 GMT 2008


Author: t0m
Date: 2008-12-21 15:41:42 +0000 (Sun, 21 Dec 2008)
New Revision: 8932

Modified:
   Catalyst-Runtime/5.80/trunk/Changes
   Catalyst-Runtime/5.80/trunk/TODO
   Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm
   Catalyst-Runtime/5.80/trunk/lib/Catalyst/ClassData.pm
   Catalyst-Runtime/5.80/trunk/t/cdi_backcompat_plugin_accessor_override.t
   Catalyst-Runtime/5.80/trunk/t/lib/CDICompatTestPlugin.pm
Log:
Fix the CDI issue, Plugin::Auth's tests now blow up a different way..

Modified: Catalyst-Runtime/5.80/trunk/Changes
===================================================================
--- Catalyst-Runtime/5.80/trunk/Changes	2008-12-21 14:30:19 UTC (rev 8931)
+++ Catalyst-Runtime/5.80/trunk/Changes	2008-12-21 15:41:42 UTC (rev 8932)
@@ -1,5 +1,9 @@
 # This file documents the revision history for Perl extension Catalyst.
 
+        - Fix Catalyst::Plugin::Authentication's authentication
+          plugin backwards compatibility issues by fixing 
+          Class::Data::Inheritable compatibility (t0m)
+          - Test for this (t0m)
         - Fix bug causing Catalyst::Request::Upload's basename method
           to return undef (t0m)
           - Test for this (Carl Franks)

Modified: Catalyst-Runtime/5.80/trunk/TODO
===================================================================
--- Catalyst-Runtime/5.80/trunk/TODO	2008-12-21 14:30:19 UTC (rev 8931)
+++ Catalyst-Runtime/5.80/trunk/TODO	2008-12-21 15:41:42 UTC (rev 8932)
@@ -4,12 +4,26 @@
   - Adopt::NEXT
      - updated docs with how to disable it (t0m/rafl)
 
-Known issues:  
+Back-compat investigation / konwon issues:
 
-  - Fix t/cdi_backcompat_plugin_accessor_override.t - Catalyst::ClassData
-    doesn't emulate Class::Data::Inheritable by crapping on the symbol table
-    of the top level MyApp class, which causes back-compat fail.
+  - Find out why C::P::A's test suite causes the 'stack' attributes
+    default method to not be called. (new not being run??)
 
+  - Common engine test failures, look into and get tests into core.
+
+  - CatalystX-Imports, Class::MOP doesn't consider anon subs in the symbol 
+    table as methods, tests + fix, or explanation and documentation?
+    (rafl & phaylon)
+
+  - Run another round of repository smokes against latest 5.80 trunk, manually
+    go through all the things which are broken (t0m).
+
+  - Issues with TWMC not being loaded when it used to be in 5.70 
+    (Bill Moseley)
+
+  - Fix memory leaks (I already tried Devel::Leak::Object, but no joy).
+
+
 Cleanups:
 
   - Catalyst-Plugin-Authorization-ACL, Can't locate object method "tree" 
@@ -47,22 +61,6 @@
 
   - vs 5.70 and optimisation as needed.
 
-Back-compat investigation:
-
-  - Common engine test failures, look into and get tests into core.
-
-  - CatalystX-Imports, Class::MOP doesn't consider anon subs in the symbol 
-    table as methods, tests + fix, or explanation and documentation?
-    (rafl & phaylon)
-  
-  - Run another round of repository smokes against latest 5.80 trunk, manually
-    go through all the things which are broken (t0m).
-    
-   - Issues with TWMC not being loaded when it used to be in 5.70 
-     (Bill Moseley)
-     
-   - Fix memory leaks (I already tried Devel::Leak::Object, but no joy).
-
 Tests:
 
   - Moosified test application?

Modified: Catalyst-Runtime/5.80/trunk/lib/Catalyst/ClassData.pm
===================================================================
--- Catalyst-Runtime/5.80/trunk/lib/Catalyst/ClassData.pm	2008-12-21 14:30:19 UTC (rev 8931)
+++ Catalyst-Runtime/5.80/trunk/lib/Catalyst/ClassData.pm	2008-12-21 15:41:42 UTC (rev 8932)
@@ -29,6 +29,13 @@
      return ${$v};
     } else {
       foreach my $super ( $meta->linearized_isa ) {
+        # If there is a code symbol for this attr in a parent class, 
+        # then copy it into our package. Is this the correct
+        # fix for C::D::I back-compat? (t0m)
+        my $parent_symbol = *{"${super}::${attribute}"}{CODE} ? \&{"${super}::${attribute}"} : undef;
+        if (defined $parent_symbol) {
+          *{"${pkg}::${attribute}"} = $parent_symbol;
+        }
         # tighter version of same after
         # my $super_meta = Moose::Meta::Class->initialize($super);
         my $v = ${"${super}::"}{$attribute} ? *{"${super}::${attribute}"}{SCALAR} : undef;

Modified: Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm
===================================================================
--- Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm	2008-12-21 14:30:19 UTC (rev 8931)
+++ Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm	2008-12-21 15:41:42 UTC (rev 8932)
@@ -34,7 +34,8 @@
 
 BEGIN { require 5.008001; }
 
-has stack => (is => 'rw', default => sub { [] });
+# FIXME lazy => 1 here makes C::P::Auth tests pass?!?
+has stack => (is => 'ro', default => sub { [] });
 has stash => (is => 'rw', default => sub { {} });
 has state => (is => 'rw', default => 0);
 has stats => (is => 'rw');

Modified: Catalyst-Runtime/5.80/trunk/t/cdi_backcompat_plugin_accessor_override.t
===================================================================
--- Catalyst-Runtime/5.80/trunk/t/cdi_backcompat_plugin_accessor_override.t	2008-12-21 14:30:19 UTC (rev 8931)
+++ Catalyst-Runtime/5.80/trunk/t/cdi_backcompat_plugin_accessor_override.t	2008-12-21 15:41:42 UTC (rev 8932)
@@ -24,9 +24,7 @@
     __PACKAGE__->config;
 }
 
-TODO: {
-    local $TODO = 'The overridden setup in CDICompatTestApp + the overridden accessor causes destruction';
-    lives_ok {
-        CDICompatTestApp->setup;
-    } 'Setup app with plugins which says use base qw/Class::Accessor::Fast/';
-}
+lives_ok {
+    CDICompatTestApp->setup;
+} 'Setup app with plugins which says use base qw/Class::Accessor::Fast/';
+

Modified: Catalyst-Runtime/5.80/trunk/t/lib/CDICompatTestPlugin.pm
===================================================================
--- Catalyst-Runtime/5.80/trunk/t/lib/CDICompatTestPlugin.pm	2008-12-21 14:30:19 UTC (rev 8931)
+++ Catalyst-Runtime/5.80/trunk/t/lib/CDICompatTestPlugin.pm	2008-12-21 15:41:42 UTC (rev 8932)
@@ -15,13 +15,14 @@
 use strict;
 use warnings;
 use base qw/Class::Accessor::Fast/;
+use MRO::Compat;
 __PACKAGE__->mk_accessors(qw/_config/);
 
 sub setup {
     my $app = shift;
 
     $app->config;
-    $app->NEXT::setup(@_);
+    $app->next::method(@_);
 }
 
 1;




More information about the Catalyst-commits mailing list