Commit | Line | Data |
8c57b129 |
1 | =head1 NAME |
6c18e892 |
2 | |
8c57b129 |
3 | Catalyst::Delta - Overview of changes between versions of Catalyst |
4 | |
5 | =head1 DESCRIPTION |
6 | |
c20710a1 |
7 | This 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 | |
11 | The Catalyst::Engine sub-classes have all been removed and deprecated, |
12 | to be replaced with Plack handlers. |
13 | |
14 | Plack is an implementation of the L<PSGI> specification, which is |
15 | a standard interface between web servers and application frameworks. |
16 | |
17 | This should be no different for developers, and you should not have to |
18 | migrate your applications unless you are using a custom engine already. |
19 | |
20 | This change benefits Catalyst significantly by reducing the amount of |
21 | code inside the framework, and means that the framework gets upstream |
22 | bug fixes in L<Plack>, and automatically gains support for any web server |
23 | which a L<PSGI> compliant handler is written for. |
24 | |
25 | It also allows you more flexibility with your application, and allows |
26 | the use of cross web framework 'middleware'. |
27 | |
28 | Developers are recommended to read L<Catalyst::Upgrading> for notes about |
29 | upgrading, especially if you are using an unusual deployment method. |
30 | |
31 | Documentation for how to take advantage of L<PSGI> can be found in |
32 | L<Catalyst::PSGI>, and information about deploying your application |
33 | has been moved to L<Catalyst::Manual::Deployment>. |
34 | |
35 | =head3 Updated modules: |
36 | |
37 | A number of modules have been updated to pass their tests or not |
38 | produce deprecation warnings with the latest version of Catalyst. |
39 | It is recommended that you upgrade any of these that you are using |
40 | after installing this version of Catalyst. |
41 | |
42 | These extensions are: |
43 | |
44 | =over |
45 | |
46 | =item L<Catalyst::Engine::HTTP::Prefork> |
47 | |
48 | This is now deprecated, see L<Catalyst::Upgrading>. |
49 | |
50 | =item L<Test::WWW::Mechanize::Catalyst> |
51 | |
52 | Has been updated to not produce deprecation warnings, upgrade recommended. |
53 | |
54 | =item Catalyst::ActionRole::ACL |
55 | |
56 | Has been updated to fix failing tests (although older versions still |
57 | function perfectly with this version of Catalyst). |
58 | |
59 | =item Catalyst::Plugin::Session::Store::DBIC |
60 | |
61 | Has been updated to fix failing tests (although older versions still |
62 | function perfectly with this version of Catalyst). |
63 | |
14eb7697 |
64 | =item Catalyst::Plugin::Authentication |
65 | |
66 | Has been updated to fix failing tests (although older versions still |
67 | function 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 |
77 | Please see L<Catalyst::Upgrading> for a full description of how changes in the |
78 | framework may affect your application. |
79 | |
80 | Below 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 |
112 | The development server restarter has been improved to be compatible with |
113 | immutable Moose classes, and also to optionally use |
114 | L<B::Hooks::OP::Check::StashChange> to handle more complex application layouts |
115 | correctly. |
b31499bc |
116 | |
7df44a71 |
117 | =head3 $c->uri_for_action method. |
b31499bc |
118 | |
7df44a71 |
119 | Give a private path to the Catalyst action you want to create a URI for. |
6c18e892 |
120 | |
0a3b8de0 |
121 | =head3 Logging |
b31499bc |
122 | |
7df44a71 |
123 | Log 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 | |
143 | New print method which prints @data to the output stream, separated by $,. |
144 | This lets you pass the response object to functions that want to write to an |
145 | L<IO::Handle>. |
146 | |
147 | =item * |
148 | |
149 | Added 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 |
159 | Components are fully compatible with Moose, and all Moose features, such as |
160 | method modifiers, attributes, roles, BUILD and BUILDARGS methods are fully |
161 | supported and may be used in components and applications. |
162 | |
163 | =item * |
164 | |
165 | Many reusable extensions which would previously have been plugins or base |
166 | classes are better implemented as Moose roles. |
167 | |
168 | =item * |
169 | |
170 | L<MooseX::MethodAttributes::Inheritable> is used to contain action |
171 | attributes. This means that attributes are represented in the MOP, and |
172 | decouples action creation from attributes. |
796a8358 |
173 | |
174 | =item * |
175 | |
0a3b8de0 |
176 | There is a reasonable API in Catalyst::Controller for working with |
796a8358 |
177 | and registering actions, allowing a controller sub-class to replace |
25f61108 |
178 | subroutine attributes for action declarations with an alternate |
0a3b8de0 |
179 | syntax. |
796a8358 |
180 | |
181 | =item * |
182 | |
0a3b8de0 |
183 | Refactored capturing of $app from L<Catalyst::Controller> into |
184 | L<Catalyst::Component::ApplicationAttribute> for easier reuse in other |
7df44a71 |
185 | components. |
186 | |
187 | =item * |
188 | |
189 | Your 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 |
199 | Don't ignore SIGCHLD while handling requests with the development server, so that |
7df44a71 |
200 | system() and other ways of creating child processes work as expected. |
201 | |
202 | =item * |
203 | |
204 | Fixes for FastCGI when used with IIS 6.0 |
205 | |
206 | =item * |
207 | |
208 | Fix a bug in uri_for which could cause it to generate paths with multiple |
209 | slashes in them. |
796a8358 |
210 | |
211 | =item * |
212 | |
7df44a71 |
213 | Fix a bug in Catalyst::Stats, stopping garbage being inserted into |
214 | the stats if a user calls begin => but no end |
796a8358 |
215 | |
216 | =back |
217 | |