Detect redispatch exceptions by a class check, not by checking the exception message.
[catagits/Catalyst-Runtime.git] / Changes
diff --git a/Changes b/Changes
index c92f2a6..3b28c02 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,9 +1,86 @@
 # This file documents the revision history for Perl extension Catalyst.
 
+  Bug fixes:
+        -  Revert change to URL encode things passed into $c->uri_for
+           Args and CaptureArgs as this causes breakage to pre-existing
+           applications.
+        -  Remove use of Test::MockObject as it doesn't install from CPAN
+           in some environments.
+        -  Remove use of dclone to deep copy configs and replace with
+           Catalyst::Utils::merge_hashes which has the same effect, of
+           ensuring child classes don't inherit their parent's config,
+           except works correctly with closures.
+
+  New features:
+        -  Use ~ as prefix for plugins or action classes which are located in 
+           MyApp::Plugin / MyApp::Action (mo)
+        -  Controller methods without attributes are now considered actions if 
+           they are specified in config->{action(s)} (mo)
+
+5.80005 2009-06-06 14:40:00
+
+  Behaviour changes:
+        - Arguments ($c->req->args) in Chained dispatch are now automatically
+          URL decoded to be consistent with Local/Path dispatch (Caelum)
+
+  Documentation:
+        - Clarify correct techniques for Moose controllers (domm)
+
+  Bug fixes:
+        - Further change pushing 'env' attribute down into Catalyst::Engine
+          to make $c->engine->env work in all cases (kmx)
+        - Also fix $c->engine->env in Catalyst::Test tests (kmx)
+          - Tests for this (t0m)
+        - Fix Catalyst failing to start if any plugin changed $_ whilst
+          loading (t0m)
+          - Tests for this
+        - Be stricter about arguments to Args attributes for Chained actions,
+          so that they blow up on load instead of causing undefined behavior
+          later on (hdp)
+          - Tests for this
+        - Prefer Path actions with a smaller (or set) number of Args (caelum)
+          Bug reported here: http://stackoverflow.com/questions/931653/catalyst-action-that-matches-a-single-file-in-the-root-directory/933181#933181
+          - Tests for this
+
+   New features:
+        - Add $c->req->remote_user to disambiguate from $c->req->user (dwc)
+        - Require MooseX::MethodAttributes 0.12 so that action methods
+          (with attributes) can be used in / composed from Moose roles.
+        - Allow the generation of cookies with the HTTPOnly flag set
+          in Catalyst::Engine (kmx)
+
+5.80004 2009-05-18 17:03:23
+        - Rename the actions attribute in Catalyt::Controller to
+          _controller_actions to avoid name clashes with application
+          controller naming. (random)
+        - Test for using Moose in components which have a non-Moose base class
+          Fixed by 349cda in Moose 0.78 (t0m)
+        - Fix deprecation message for Catalyst::Dispatcher to refer
+          to the class actually calling the deprecated method. RT#45741 (t0m)
+        - Clarify limitations of $request->base and $request->secure.
+          (Phil Mitchell)
+        - Add 'use Catalyst' to documentation for a Moose MyApp class as
+          noted by dmaki. (t0m)
+        - Fix so that / (and other special characters) are URL encoded when
+          passed into $c->uri_for as Args/CaptureArgs (t0m)
+        - Fix development server so that $c->engine->env returns the correct
+          environment (t0m)
+        - Require Moose 0.78 to fix metaclass incompatibility issues (t0m)
+        - Require MooseX::MethodAttributes 0.10 and use
+          Moose::Meta::Class->initialize rather than Moose->init_meta to fix
+          bugs related to having a 'meta' method in your controller (t0m)
+        - Fix cases where your application failing to compile could cause perl
+          to report 'Unknown Error' (t0m)
+        - Support adding Moose::Roles to the plugin list. These are applied to
+          MyApp after plugins have been pushed onto @ISA (t0m)
+        - Fix calling $c->req->parameters as the first thing you do when
+          parse_on_demand is on (t0m)
+
+5.80003 2009-04-29 16:23:53
         - Various POD tweaks. (hdp, dandv)
         - Fix formatting error in the regex fallback warning. (rafl)
-        - Convert the dispatcher's BUILD method to attribute builders to not
-          override the BUILD method from
+        - Convert the dispatcher's and restarter engine's BUILD method to
+          attribute builders to not override the BUILD method from
           MooseX::Emulate::Class::Accessor::Fast. (rafl)
         - Fix classes without metaclasses restarting, when not using
           B::Hooks::OP::Check::StashChange (t0m)
         - Added ru/ua translations to error page
         - Improve the clarity and verbosity of the warning when component
           resolution uses regex fallback. (jhannah)
-        - Handle leading CRLF in HTTP requests sometimes sent by IE6 in 
+        - Handle leading CRLF in HTTP requests sometimes sent by IE6 in
           keep-alive requests. (andyg)
         - Fixes for FastCGI with IIS 6.0 (janus)
         - Passing request method exported by Catalyst::Test an extra
           parameter used to be ignored, but started breaking if the parameter
           was not a hash in 5.8000_04. Extra parameter is now ignored if
           it isn't a hashref (t0m)
-        - Fix request argumentss getting corrupted if you override the 
-          dispatcher and call an action which detaches (for 
+        - Fix request argumentss getting corrupted if you override the
+          dispatcher and call an action which detaches (for
           Catalyst::Plugin::Authorization::ACL) (t0m)
         - Fix calling use Catalyst::Test 'MyApp' 'foo' which used to work,
           but stopped as the 2nd parameter can be an options hash now (t0m)
         - Bump version of MooseX::Emulate::Class::Accessor::Fast (t0m)
         - Stop using MooseX::Adopt::Class::Accessor::Fast by default, to stop
           breaking other packages which use Class::Accessor::Fast
-        - Remove unused action_container_class attribute from 
+        - Remove unused action_container_class attribute from
           Catalyst::Dispatcher (t0m)
         - Replace {_body} instance access with calls to _body accessors (t0m)
-        - Add backwards compatibility alias methods for private attributes on 
-          Catalyst::Dispatcher which used to be public. Needed by 
-          Catalyst::Plugin::Server and  Catalyst::Plugin::Authorization::ACL 
+        - Add backwards compatibility alias methods for private attributes on
+          Catalyst::Dispatcher which used to be public. Needed by
+          Catalyst::Plugin::Server and  Catalyst::Plugin::Authorization::ACL
           (t0m)
         - Fix return value of $c->req->body, which delegates to the body
           method on the requests HTTP::Body instance (t0m)
           method in a plugin, as used by Catalyst::Plugin::Server (t0m)
           - Test for this (t0m)
         - Fix assignment to Catalyst::Dispatcher's preload_dispatch_types and
-          postload_dispatch_types attributes - assigning a list should later 
+          postload_dispatch_types attributes - assigning a list should later
           return a listref. Fixes Catalyst::Plugin::Server. (t0m)
           - Tests for this (t0m)
-        - Change streaming test to serve itself rather than 01use.t, making 
+        - Change streaming test to serve itself rather than 01use.t, making
           test sync for engines easier (t0m)
         - Refactor capturing of $app from Catalyst::Controller into
           Catalyst::Component::ApplicationAttribute for easier reuse in other
         - Make debug output show class name for the engine and dispatcher
           rather than the stringified ref. (t0m)
         - Make MyApp immutable at the end of the scope after the setup
-          method is called, fixing issues with plugins which have their 
+          method is called, fixing issues with plugins which have their
           own new methods by inlining a constructor on MyApp (t0m)
           - Test for this and method modifiers in MyApp (t0m)
         - Fix bug causing Catalyst::Request::Upload's basename method
           Sewn together by t0m from two patches provided by David E. Wheeler
         - Switch an around 'new' in Catalyst::Controller to a BUILDARGS
           method as it's much neater and more obvious what is going on (t0m)
-        - Add a clearer method on request and response _context 
+        - Add a clearer method on request and response _context
           attributes, and use if from ::Engine rather than deleting
           the key from the instance hash (t0m)
         - Use handles on tree attribute of Catalyst::Stats to replace
           Catalyst::Request: _path
           Catalyst::Stats: tree
           (t0m)
-        - Fix issues in Catalyst::Controller::WrapCGI 
-          and any other components which import (or define) their 
+        - Fix issues in Catalyst::Controller::WrapCGI
+          and any other components which import (or define) their
           own meta method by always explicitly calling
           Class::MOP::Object->meta inside Catalyst (t0m)
           - Add test for this (t0m)
-        - Add test case for the bug which is causing the 
+        - Add test case for the bug which is causing the
           Catalyst::Plugin::Authentication tests to fail (t0m)
         - Fix a bug in uri_for which could cause it to generate paths
           with multiple slashes in them. (t0m)
           - Add test for this (t0m)
         - Fix SKIP block name in t/optional_http-server-restart.t,
-          stopping 'Label not found for "last SKIP"' error from 
+          stopping 'Label not found for "last SKIP"' error from
           Test::More (t0m)
         - Workaround max_redirect 0 bug in LWP (andyg)
         - Move live_engine_response_print into aggregate (andyg)
         - Fix dependency bug, s/parent/base/ in new test (rafl)
-        - Fix optional tests to run the live tests in the aggregate 
+        - Fix optional tests to run the live tests in the aggregate
           dir (andyg)
         - Fix Catalyst->go error in remote tests (andyg)
-        - Fix upload test to work with remote servers, don't check for 
+        - Fix upload test to work with remote servers, don't check for
           deleted files (andyg)
-        - Fix engine_request_uri tests to work on remote server with 
+        - Fix engine_request_uri tests to work on remote server with
           different URI (andyg)
 
 5.8000_04  2008-12-05 12:15:00
           method is overridden by a plugin, and calls the base method,
           for example Catalyst::Plugin::SmartURI (t0m)
           - Test for this (caelum)
-        - Compose the MooseX::Emulate::Class::Accessor::Fast role to 
-          Catalyst::Action, Catalyst::Request, and all other modules which 
+        - Compose the MooseX::Emulate::Class::Accessor::Fast role to
+          Catalyst::Action, Catalyst::Request, and all other modules which
           inherit from Class::Accessor::Fast in 5.70.
           This fixes:
             - Catalyst::Controller::HTML::FormFu (zamolxes)
         - Fix list address in documentation (zarquon)
         - Fix ACCEPT_CONTEXT on MyApp, called as a class method (marcus)
            - Test for this (marcus)
-        - Bump MooseX::Emulate::Class::Accessor::Fast version requirement to 
+        - Bump MooseX::Emulate::Class::Accessor::Fast version requirement to
           get more back compatibility (t0m)
         - Improve documentation for $req->captures (caelum)
         - Fix a bug in Catalyst::Stats, stopping garbage being inserted into
         - Change Catalyst::ClassData to tweak the symbol table inline for
           performance after profiling (mst)
         - Fix POD typo in finalize_error (jhannah)
-        - Add tests to ensure that we delete the temp files created by 
+        - Add tests to ensure that we delete the temp files created by
           HTTP::Body's OctetStream parser (t0m)
 
 5.8000_03 2008-10-14 14:13:00
         - Added test for component instances getting $self->{value} from config.
         - Add Catalyst::Response->print() method (ilmari)
         - Optionally aggregate tests using Test::Aggregate (Florian Ragwitz).
-        - Additional docs for uri_for to mention how to use $c->action and 
+        - Additional docs for uri_for to mention how to use $c->action and
           $c->req->captures (jhannah)
         - List unattached chained actions in Debug mode (Florian Ragwitz).
         - Pod formatting fix for Engine::FastCGI (Oleg Kostyuk).
           1) model() or view() was called with no arguments, and two results are returned
              -- set default_(model|view), current_(model|view) or current_(model|view)_instance
              instead
-          2) you call a component resolution method with a string, and it resorts to a regexp 
+          2) you call a component resolution method with a string, and it resorts to a regexp
              fallback wherein a result is returned -- if you really want to search, call the
              method with a regex as the argument
         - remove 0-length query string components so warnings aren't thrown (RT #36428)
 
 5.7014  2008-05-25 15:26:00
         - Addition of .conf in restart regex in Catalyst::Engine::HTTP::Restarter::Watcher
-        - Fix regression for relative uri_for arguments after a forward()   
-          introduced in 5.7013 (Peter Karman)  
-        - Fix regression for "sub foo : Path {}" in the root controller which 
+        - Fix regression for relative uri_for arguments after a forward()
+          introduced in 5.7013 (Peter Karman)
+        - Fix regression for "sub foo : Path {}" in the root controller which
           was introduced when attempting to allow "0" as a Path.
 
 5.7013  2008-05-16 18:20:00
         - Resource forks in 5.7009
 
 5.7009  2007-08-22 00:14:00
-        - Moved Manual.pod to Manual.pm and clarified status of 
+        - Moved Manual.pod to Manual.pm and clarified status of
           Catalyst-Manual dist
         - Doc patches to Catalyst::Controller
         - remove ignore_loaded from plugin load, commenting why
 5.7006   2006-11-15 14.18
         - Updated manifest
         - Fix Slurp dependency
-        - Updated HTTP::Body dependency to 0.6, 0.5 can break on large POST 
+        - Updated HTTP::Body dependency to 0.6, 0.5 can break on large POST
           requests.
         - Skip utf8 fix for undef values in uri_with() and uri_for()
 
         - Allow use of Catalyst::Test without app name (Ton Voon, Altinity)
         - Catalyst::Manual moved to its own package
         - Add option to FastCGI engine to send errors to stdout, not the web server
-        - Use Module::Install's auto_install to install prerequisite modules 
+        - Use Module::Install's auto_install to install prerequisite modules
         - various documentation fixes and improvements
-        
+
 5.7003   2006-09-21 16:29:45
         - Additions and updates to tutorial
 
         - bumped inc::Module::Install to 0.63 in Makefile.PL
         - fixes to uri_for_action for DispatchType::Chained
         - Further doc work.
-        - Minor code cleanups 
+        - Minor code cleanups
         - Changed catalyst.pl to depend on Catalyst::Devel
 
 5.70_03  2006-06-28 16:42:00
         - Remove tarballs and OSX metadata files.
 
 5.6901  2006-05-03 11.17:00
-        - Module::Install didn't overwrite META.yml. 
+        - Module::Install didn't overwrite META.yml.
 
 5.6900  2006-05-03 11.17:00
         - Stupid pause indexer can't count.
         - more tests.
 
 5.682   2006-04-27 13:51:00
-        - Damn OSX attributes again :( 
+        - Damn OSX attributes again :(
 
 5.681   2006-04-27 08:47:00
         - Updated manifest.
         - Add basename to core . (Deprecates Catalyst::Plugin::Basename)
-    
+
 5.68    2006-04-26 12:23:00
         - ConfigLoader: Updated to version 0.06
         - fixed undef warnings in uri_for() and uri_with()
         - Added multi process external FastCGI support
           (see myapp_fastcgi.pl -help) (Sam Vilain)
         - Restarter process in HTTP engine now properly exits when the
-          parent app is shut down.  
+          parent app is shut down.
         - Improved performance of restarter loop while watching for
           changed files.
         - Restarter will now detect new files added to an app on systems
           application.
         - Fixed memory leak in TestApp.
 
-5.49_02 2005-10-26 12:39:00 
+5.49_02 2005-10-26 12:39:00
         - Whole new dispatcher!
         - Added index action
         - Added path_to method
         - Fixed bug in uri_for method when base has no path.
         - Added automated tests for HTTP, CGI, and FastCGI servers.
 
-5.49_01 2005-10-10 10:15:00 
+5.49_01 2005-10-10 10:15:00
         - Refactored all internals, should be 99% compatible to previous
           versions.
         - *IMPORTANT* The Apache engines have been moved to a separate package
         - helpers now create .new files where files already exist and differ
         - fixed $Data::Dumper::Terse (Robin Berjon)
         - added arguments for detach
-        - new credits section in pod
+        - new credits section in POD
         - fixed detach to allow relative action names (Matt and Robert)
         - added the ability to have whitespaces in Path( '' ) and Regex( '' )
 
 5.30  2005-06-04 12:35:00
 
-        - Fixed a bug where it was not possible to $c->forward to a 
-          component 
+        - Fixed a bug where it was not possible to $c->forward to a
+          component
           that was not inheriting from Catalyst::Base.
         - Fix for inheritance bug.
         - Allow forward with arguments.
         - added plugin() method for instant plugins
         - FCGI is no more considered experimental
 
-5.02  2005-04-18 10:00:00 
+5.02  2005-04-18 10:00:00
         - fixed manifest
 
-5.01  2005-04-17 23:00:00 
+5.01  2005-04-17 23:00:00
         - some documentation bugs fixed
         - added Catalyst::Utils
         - fixed regexp bug (Matt S Trout)
         - fixed upload bug with MP19
         - added $c->req->body
         - aliased $c->res->output to $c->res->body
-        - Read AUTHOR from passwd or $ENV{AUTHOR} when 
+        - Read AUTHOR from passwd or $ENV{AUTHOR} when
           generating code.
         - extended attribute handling
         - added global config for components
         - previous release was borked!
           fixed that, but you have to regenerate the scripts again :(
 
-4.30  2005-03-21 23:00:00 
+4.30  2005-03-21 23:00:00
         - more documentation (Andrew Ford)
         - added connection informations (Christian Hansen)
         - HTTP::Request support in Catalyst::Test (Christian Hansen)
         - improved cgi engine docs (Christoper Hicks)
 
 4.24  2005-03-12 01:00:00
-        - updated cookbook example  
+        - updated cookbook example
         - fixed base for apache and https (Andrew Ruthven)
-        
+
 4.23  2005-03-09 20:00:00
         - no more regex actions in forward
         - added support for test directories t/m, t/v and t/c
         - removed roles management from Catalyst::Engine
           and added it to Catalyst::Plugin::Authentication::CDBI
 
-3.04  2005-02-17 21:00:00 
+3.04  2005-02-17 21:00:00
         - error reporting for app class
         - no more engine debug messages
         - class->method forwards get resolved now
 
-3.03  2005-02-16 23:00:00 
+3.03  2005-02-16 23:00:00
         - friendlier statistics
 
 3.02  2005-02-16 22:00:00