Catalyst::Upgrading - Instructions for upgrading to the latest Catalyst
-=head2 Upgrading to Catalyst 5.90
+=head1 Upgrading to Catalyst 5.90
The major change is that L<Plack> now replaces most of the subclasses of
L<Catalyst::Engine>. If you are using one of the standard subclasses of
-L<Catalyst::Engine> this should be a straightforward upgrade for you. It was
+L<Catalyst::Engine> this should be a straightforward upgrade for you. It was
a design goal for this release to be as backwardly compatible as possible.
However since L<Plack> is different from L<Catalyst::Engine> it would be
possible that edge case differences would exist. Therefore we recommend care
=head2 Upgrading the FastCGI Engine
- TBD
+No upgrade needed if your myapp_fastcgi.pl script is already upgraded
+enough to use L<Catalyst::Script::FastCGI>.
=head2 Upgrading the mod_perl / Apache Engines
-The three engines that are build upon the various iterations of mod_perl,
-L<Catalyst::Engine::Apache2::MP19>, L<Catalyst::Engine::Apache::MP13> and
+The engines that are build upon the various iterations of mod_perl,
+L<Catalyst::Engine::Apache::MP13> and
L<Catalyst::Engine::Apache2::MP20> should be seemless upgrades and will
work using using L<Plack::Handler::Apache1> or L<Plack::Handler::Apache2>
as required.
-=head2 Upgrading the HTTP Engine
+L<Catalyst::Engine::Apache2::MP19>, is however no longer supported, as Plack
+does not support mod_perl version 1.99??? FIXME - is this true?
-If you were using L<Catalyst::Engine::HTTP> (the default development server
-that comes with the L<Catalyst> distribution) you should now use...
+=head2 Upgrading the HTTP Engine
- TBD
+The default development server that comes with the L<Catalyst> distribution
+should continue to work as expected with no changes as long as your C<myapp_server>
+script is upgraded to use L<Catalyst::Script::HTTP>.
=head2 Upgrading the CGI Engine
-If you were using L<Catalyst::Engine::CGI> you should now use...
-
- TBD
+If you were using L<Catalyst::Engine::CGI> there is no upgrade needed if your
+myapp_cgi.pl script is already upgraded enough to use L<Catalyst::Script::CGI>.
=head2 Upgrading the Preforking Engine
-If you were using L<Catalyst::Engine::HTTP::Prefork> you should now use...
+If you were using L<Catalyst::Engine::HTTP::Prefork> then L<Starman>
+is automatically loaded.
- TBD
+=head2 Upgrading the PSGI Engine
-=head2 Upgrading the Restarter Engines
+If you were using L<Catalyst::Engine::PSGI> this new release supercedes this
+engine in supporting L<Plack>. By default the Engine is now always L<Plack>.
+As a result, you can stop depending on L<Catalyst::Engine::PSGI> in your
+C<Makefile.PL>. Additionally, if you have an C<app.psgi> script you no longer
+need to specify the PSGI engine. Instead, the L<Catalyst> application class
+now has a new method C<psgi_app> which returns a L<Plack> compatible coderef.
-If you were using L<Catalyst::Engine::HTTP::Restarter> or
-L<Catalyst::Engine::HTTP::Restarter::Watcher> these are now longer part of the
-L<Catalyst> distribution. You should now use...
+For example, if you were using L<Catalyst::Engine::PSGI> in the past, you may
+have written an C<app.psgi> file similar to this one:
- TBD
+ use Plack::Builder;
+ use MyCatalytApp;
-=head2 Upgrading the PSGI Engine
+ MyCatalystApp->setup_engine('PSGI');
-If you were using L<Catalyst::Engine::PSGI> this new release supercedes this
-engine in supporting L<Plack>. You should now do...
+ builder {
+ enable ... # enable your desired middleware
+ sub { MyCatalystApp->run(@_) };
+ };
+
+Instead, you now just do
- TBD
+ use Plack::Builder;
+ use MyCatalystApp;
+
+ builder {
+ enable ... #enable your desired middleware
+ MyCatalystApp->psgi_app;
+ };
=head2 Engines with unknown status
Catalyst::Engine::Server (Marked as Deprecated)
Catalyst::Engine::HTTP::POE (Marked as Deprecated)
-=head2 Engines known to not be compatible.
+=head2 Using middleware
+
+XXX Should this be here or elsewhere?
-If you are using one of the following L<Catalyst::Engine> subclasses, your
-application may require significant work after upgrading. We recommend you
-test heavily and sandbox your upgrade.
+=head2 Making an app.psgi file
- TBD
+=head2 Running with plackup?
=head1 Upgrading to Catalyst 5.80