Add bug fixes section. Reformatting, some other additions
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Delta.pod
index 4bfd837..020d0e1 100755 (executable)
@@ -1,50 +1,82 @@
 =head1 Deltachanges from 5.7 to 5.8
 
-This is an overview of the user visible changes in 5.8
+This is an overview of the user visible changes in 5.8.
 
 =head2 Deprecations
 
+Please see L<Catalyst::Upgrading> for a full description of how changes in the
+framework may affect your application.
+
+Below is a brief list of features which have been deprecated in this release:
+
 =over
 
 =item ::[MVC]:: style naming scheme has been deprecated and will warn
 
-=item Use Class::C3::Adopt::NEXT (rafl)
+=item NEXT is deprecated for all applications and components, use MRO::Compat
+
+=item Dispatcher methods which are an implementation detail made private, public versions now warn.
 
-Catalyst 5.80 uses L<Algorithm::C3> method dispatch order. This is built into
-perl 5.10 (new pragma mro), and comes via L<Class::C3> for perl 5.8. This
-replaces L<NEXT> with L<Class::C3::Adopt::NEXT>, forcing all components to
-resolve methods using C3, rather than the unpredictable dispatch order of
-L<NEXT>. Please "use MRO::Compat" in both perl 5.8 and perl 5.10 to activate
-this feature.
-- Disallow writing to config after setup and disallow calling setup more 
-than once (rafl)
+=item MyApp->plugin method is deprecated, use L<Catalyst::Model::Adaptor> instead.
 
-=item Dispatcher methods
+=item __PACKAGE__->mk_accessors() is supported for backward compatibility only, use Moose attributes instead in new code.
+
+=item Use of Catalyst::Base now warns
 
 =back
 
-=head2 Dispatcher
+=head2 New features
+
+=head3 Dispatcher
+
+=over
+
+=item Fix forwarding to Catalyst::Action objects.
+
+=item Add the dispatch_type method
 
-Fix forwarding to Catalyst::Action objects (Rafael Kitover).
+=back
 
-=head2 Restarter
+=head3 Restarter
 
 The development server restarter has been improved to be compatible with
 immutable Moose classes, and also to optionally use 
 L<B::Hooks::OP::Check::StashChange> to handle more complex application layouts
 correctly.
 
-=head2 $c->uri_for_action method. (hdp)
+=head3 $c->uri_for_action method.
+
+Give a private path to the Catalyst action you want to create a URI for.
+
+=head3 Logging
+
+Log levels have been made additive.
+
+=head3 L<Catalyst::Test>
+
+=over
+
+=item Change to use L<Sub::Exporter>.
+
+=item Support mocking multiple virtual hosts
+
+=item New methods like action_ok and action_redirect to write more compact tests
+
+=back
+
+=head3 Catalyst::Response
+
+=over
+
+=item *
 
-A private path to the Catalyst action you want to create a URI for.
-This is a shortcut for calling C<< $c->dispatcher->get_action_by_path($path) >>
-and passing the resulting C<$action> and the remaining arguments to 
-C<< $c->uri_for >>.
+New print method which prints @data to the output stream, separated by $,.  
+This lets you pass the response object to functions that want to write to an 
+L<IO::Handle>.
 
-=head2 Logging
+=item *
 
-Log levels have been madeadditive, and add documentation to the setup_log 
-method.
+Added code method as an alias for C<< $res->status >>
 
 =head2 Consequences of the Moose backend
 
@@ -52,41 +84,62 @@ method.
 
 =item *
 
-Use MooseX::MethodAttributes::Inheritable to contain action
-attributes. This means that attributes are now represented in the MOP,
-allowing method modifiers on actions to work as expected. (rafl)
+Components are fully compatible with Moose, and all Moose features, such as
+method modifiers, attributes, roles, BUILD and BUILDARGS methods are fully
+supported and may be used in components and applications.
+
+=item *
+
+Many reusable extensions which would previously have been plugins or base 
+classes are better implemented as Moose roles.
+
+=item *
+
+L<MooseX::MethodAttributes::Inheritable> is used to contain action
+attributes. This means that attributes are represented in the MOP, and
+decouples action creation from attributes.
 
 =item *
 
-Provide a reasonable API in Catalyst::Controller for working with
+There is a reasonable API in Catalyst::Controller for working with
 and registering actions, allowing a controller sub-class to replace
 subroutine attributes for action declerations with an alternate
-syntax. (rafl/hdp)
+syntax.
 
 =item *
 
-Refactor capturing of $app from Catalyst::Controller into
-Catalyst::Component::ApplicationAttribute for easier reuse in other
-components (Florian Ragwitz)
+Refactored capturing of $app from L<Catalyst::Controller> into
+L<Catalyst::Component::ApplicationAttribute> for easier reuse in other
+components.
 
 =item *
 
-Make MyApp immutable at the end of the scope after the setup
-method is called, fixing issues with plugins which have their 
-own new methods by inlining a constructor on MyApp (t0m)        
+Your application class is forced to become immutable at the end of compilation.
 
 =back
 
-=head2 Test Suite
+=head2 Bug fixes
 
-        - Change Catalyst::Test to use Sub::Exporter (Florian Ragwitz).
-        - Port to Moose
-        - Support mocking virtualhosts in test suite ()
-        - Add methods like action_ok and action_redirect to write
-          more compact tests
+=over
 
-=head2 Catalyst::Response->print()
+=item *
 
-Prints @data to the output stream, separated by $,.  This lets you pass
-the response object to functions that want to write to an L<IO::Handle>.
+Don't ignore SIGCHLD while handling requests with the dev server, so that
+system() and other ways of creating child processes work as expected.
+
+=item *
+
+Fixes for FastCGI when used with IIS 6.0
+
+=item *
+
+Fix a bug in uri_for which could cause it to generate paths with multiple 
+slashes in them.
+
+=item *
+
+Fix a bug in Catalyst::Stats, stopping garbage being inserted into
+the stats if a user calls begin => but no end
+
+=back