fixed t/author/spelling.t in lib/Catalyst/Response.pm
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Delta.pod
CommitLineData
8c57b129 1=head1 NAME
6c18e892 2
8c57b129 3Catalyst::Delta - Overview of changes between versions of Catalyst
4
5=head1 DESCRIPTION
6
c20710a1 7This is an overview of the user-visible changes to Catalyst between major Catalyst releases.
b31499bc 8
9b3b1b9c 9=head2 VERSION 5.9XXXX 'cataplack'
c20710a1 10
11The Catalyst::Engine sub-classes have all been removed and deprecated,
12to be replaced with Plack handlers.
13
14Plack is an implementation of the L<PSGI> specification, which is
15a standard interface between web servers and application frameworks.
16
17This should be no different for developers, and you should not have to
18migrate your applications unless you are using a custom engine already.
19
20This change benefits Catalyst significantly by reducing the amount of
21code inside the framework, and means that the framework gets upstream
22bug fixes in L<Plack>, and automatically gains support for any web server
23which a L<PSGI> compliant handler is written for.
24
25It also allows you more flexibility with your application, and allows
26the use of cross web framework 'middleware'.
27
28Developers are recommended to read L<Catalyst::Upgrading> for notes about
29upgrading, especially if you are using an unusual deployment method.
30
31Documentation for how to take advantage of L<PSGI> can be found in
32L<Catalyst::PSGI>, and information about deploying your application
33has been moved to L<Catalyst::Manual::Deployment>.
34
35=head3 Updated modules:
36
37A number of modules have been updated to pass their tests or not
38produce deprecation warnings with the latest version of Catalyst.
39It is recommended that you upgrade any of these that you are using
40after installing this version of Catalyst.
41
42These extensions are:
43
44=over
45
46=item L<Catalyst::Engine::HTTP::Prefork>
47
48This is now deprecated, see L<Catalyst::Upgrading>.
49
50=item L<Test::WWW::Mechanize::Catalyst>
51
52Has been updated to not produce deprecation warnings, upgrade recommended.
53
54=item Catalyst::ActionRole::ACL
55
56Has been updated to fix failing tests (although older versions still
57function perfectly with this version of Catalyst).
58
59=item Catalyst::Plugin::Session::Store::DBIC
60
61Has been updated to fix failing tests (although older versions still
62function perfectly with this version of Catalyst).
63
14eb7697 64=item Catalyst::Plugin::Authentication
65
66Has been updated to fix failing tests (although older versions still
67function perfectly with this version of Catalyst).
68
c20710a1 69=back
1fae8c61 70
71=head1 PREVIOUS VERSIONS
72
9b3b1b9c 73=head2 VERSION 5.8XXXX 'catamoose'
1fae8c61 74
75=head3 Deprecations
b31499bc 76
e88235ff 77Please see L<Catalyst::Upgrading> for a full description of how changes in the
78framework may affect your application.
79
80Below is a brief list of features which have been deprecated in this release:
81
796a8358 82=over
b31499bc 83
796a8358 84=item ::[MVC]:: style naming scheme has been deprecated and will warn
b31499bc 85
e88235ff 86=item NEXT is deprecated for all applications and components, use MRO::Compat
b31499bc 87
e88235ff 88=item Dispatcher methods which are an implementation detail made private, public versions now warn.
b31499bc 89
e88235ff 90=item MyApp->plugin method is deprecated, use L<Catalyst::Model::Adaptor> instead.
796a8358 91
0a3b8de0 92=item __PACKAGE__->mk_accessors() is supported for backward compatibility only, use Moose attributes instead in new code.
93
7df44a71 94=item Use of Catalyst::Base now warns
95
796a8358 96=back
97
1fae8c61 98=head3 New features
0a3b8de0 99
100=head3 Dispatcher
b31499bc 101
7df44a71 102=over
103
104=item Fix forwarding to Catalyst::Action objects.
105
106=item Add the dispatch_type method
107
108=back
b31499bc 109
0a3b8de0 110=head3 Restarter
b31499bc 111
6171ddd5 112The development server restarter has been improved to be compatible with
113immutable Moose classes, and also to optionally use
114L<B::Hooks::OP::Check::StashChange> to handle more complex application layouts
115correctly.
b31499bc 116
7df44a71 117=head3 $c->uri_for_action method.
b31499bc 118
7df44a71 119Give a private path to the Catalyst action you want to create a URI for.
6c18e892 120
0a3b8de0 121=head3 Logging
b31499bc 122
7df44a71 123Log levels have been made additive.
b31499bc 124
0a3b8de0 125=head3 L<Catalyst::Test>
126
127=over
128
129=item Change to use L<Sub::Exporter>.
130
0a3b8de0 131=item Support mocking multiple virtual hosts
132
133=item New methods like action_ok and action_redirect to write more compact tests
134
135=back
136
7df44a71 137=head3 Catalyst::Response
0a3b8de0 138
7df44a71 139=over
140
141=item *
142
143New print method which prints @data to the output stream, separated by $,.
144This lets you pass the response object to functions that want to write to an
145L<IO::Handle>.
146
147=item *
148
149Added code method as an alias for C<< $res->status >>
0a3b8de0 150
d5a6de01 151=back
152
1fae8c61 153=head3 Consequences of the Moose back end
b31499bc 154
796a8358 155=over
156
157=item *
158
7df44a71 159Components are fully compatible with Moose, and all Moose features, such as
160method modifiers, attributes, roles, BUILD and BUILDARGS methods are fully
161supported and may be used in components and applications.
162
163=item *
164
165Many reusable extensions which would previously have been plugins or base
166classes are better implemented as Moose roles.
167
168=item *
169
a0c37f08 170L<MooseX::MethodAttributes::Role::AttrContainer::Inheritable> is used to contain action
7df44a71 171attributes. This means that attributes are represented in the MOP, and
172decouples action creation from attributes.
796a8358 173
174=item *
175
0a3b8de0 176There is a reasonable API in Catalyst::Controller for working with
796a8358 177and registering actions, allowing a controller sub-class to replace
25f61108 178subroutine attributes for action declarations with an alternate
0a3b8de0 179syntax.
796a8358 180
181=item *
182
0a3b8de0 183Refactored capturing of $app from L<Catalyst::Controller> into
184L<Catalyst::Component::ApplicationAttribute> for easier reuse in other
7df44a71 185components.
186
187=item *
188
189Your application class is forced to become immutable at the end of compilation.
190
191=back
192
1fae8c61 193=head3 Bug fixes
7df44a71 194
195=over
196
197=item *
198
25f61108 199Don't ignore SIGCHLD while handling requests with the development server, so that
7df44a71 200system() and other ways of creating child processes work as expected.
201
202=item *
203
204Fixes for FastCGI when used with IIS 6.0
205
206=item *
207
208Fix a bug in uri_for which could cause it to generate paths with multiple
209slashes in them.
796a8358 210
211=item *
212
7df44a71 213Fix a bug in Catalyst::Stats, stopping garbage being inserted into
214the stats if a user calls begin => but no end
796a8358 215
216=back
217