More Xs
[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
64=back
1fae8c61 65
66=head1 PREVIOUS VERSIONS
67
9b3b1b9c 68=head2 VERSION 5.8XXXX 'catamoose'
1fae8c61 69
70=head3 Deprecations
b31499bc 71
e88235ff 72Please see L<Catalyst::Upgrading> for a full description of how changes in the
73framework may affect your application.
74
75Below is a brief list of features which have been deprecated in this release:
76
796a8358 77=over
b31499bc 78
796a8358 79=item ::[MVC]:: style naming scheme has been deprecated and will warn
b31499bc 80
e88235ff 81=item NEXT is deprecated for all applications and components, use MRO::Compat
b31499bc 82
e88235ff 83=item Dispatcher methods which are an implementation detail made private, public versions now warn.
b31499bc 84
e88235ff 85=item MyApp->plugin method is deprecated, use L<Catalyst::Model::Adaptor> instead.
796a8358 86
0a3b8de0 87=item __PACKAGE__->mk_accessors() is supported for backward compatibility only, use Moose attributes instead in new code.
88
7df44a71 89=item Use of Catalyst::Base now warns
90
796a8358 91=back
92
1fae8c61 93=head3 New features
0a3b8de0 94
95=head3 Dispatcher
b31499bc 96
7df44a71 97=over
98
99=item Fix forwarding to Catalyst::Action objects.
100
101=item Add the dispatch_type method
102
103=back
b31499bc 104
0a3b8de0 105=head3 Restarter
b31499bc 106
6171ddd5 107The development server restarter has been improved to be compatible with
108immutable Moose classes, and also to optionally use
109L<B::Hooks::OP::Check::StashChange> to handle more complex application layouts
110correctly.
b31499bc 111
7df44a71 112=head3 $c->uri_for_action method.
b31499bc 113
7df44a71 114Give a private path to the Catalyst action you want to create a URI for.
6c18e892 115
0a3b8de0 116=head3 Logging
b31499bc 117
7df44a71 118Log levels have been made additive.
b31499bc 119
0a3b8de0 120=head3 L<Catalyst::Test>
121
122=over
123
124=item Change to use L<Sub::Exporter>.
125
0a3b8de0 126=item Support mocking multiple virtual hosts
127
128=item New methods like action_ok and action_redirect to write more compact tests
129
130=back
131
7df44a71 132=head3 Catalyst::Response
0a3b8de0 133
7df44a71 134=over
135
136=item *
137
138New print method which prints @data to the output stream, separated by $,.
139This lets you pass the response object to functions that want to write to an
140L<IO::Handle>.
141
142=item *
143
144Added code method as an alias for C<< $res->status >>
0a3b8de0 145
d5a6de01 146=back
147
1fae8c61 148=head3 Consequences of the Moose back end
b31499bc 149
796a8358 150=over
151
152=item *
153
7df44a71 154Components are fully compatible with Moose, and all Moose features, such as
155method modifiers, attributes, roles, BUILD and BUILDARGS methods are fully
156supported and may be used in components and applications.
157
158=item *
159
160Many reusable extensions which would previously have been plugins or base
161classes are better implemented as Moose roles.
162
163=item *
164
165L<MooseX::MethodAttributes::Inheritable> is used to contain action
166attributes. This means that attributes are represented in the MOP, and
167decouples action creation from attributes.
796a8358 168
169=item *
170
0a3b8de0 171There is a reasonable API in Catalyst::Controller for working with
796a8358 172and registering actions, allowing a controller sub-class to replace
25f61108 173subroutine attributes for action declarations with an alternate
0a3b8de0 174syntax.
796a8358 175
176=item *
177
0a3b8de0 178Refactored capturing of $app from L<Catalyst::Controller> into
179L<Catalyst::Component::ApplicationAttribute> for easier reuse in other
7df44a71 180components.
181
182=item *
183
184Your application class is forced to become immutable at the end of compilation.
185
186=back
187
1fae8c61 188=head3 Bug fixes
7df44a71 189
190=over
191
192=item *
193
25f61108 194Don't ignore SIGCHLD while handling requests with the development server, so that
7df44a71 195system() and other ways of creating child processes work as expected.
196
197=item *
198
199Fixes for FastCGI when used with IIS 6.0
200
201=item *
202
203Fix a bug in uri_for which could cause it to generate paths with multiple
204slashes in them.
796a8358 205
206=item *
207
7df44a71 208Fix a bug in Catalyst::Stats, stopping garbage being inserted into
209the stats if a user calls begin => but no end
796a8358 210
211=back
212