Update changelog and upgrading
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Upgrading.pod
index 0536cc0..dc54861 100644 (file)
@@ -53,34 +53,80 @@ 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...
-
-No upgrade needed if your myapp_cgi.pl script is already upgraded
-enough to use L<Catalyst::Script::CGI>.
+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> then L<Starman>
-is automatically loaded. 
+is automatically loaded.
+
+XXX FIXME - note how to run Starman with different options.
 
 =head2 Upgrading the PSGI Engine
 
 If you were using L<Catalyst::Engine::PSGI> this new release supercedes this
-engine in supporting L<Plack>. You should remove the.. FIXME
+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.
+
+For example, if you were using L<Catalyst::Engine::PSGI> in the past, you will
+have written (or generated) an C<app.psgi> file similar to this one:
+
+    use Plack::Builder;
+    use MyCatalytApp;
+
+    MyCatalystApp->setup_engine('PSGI');
+
+    builder {
+        enable ... # enable your desired middleware
+        sub { MyCatalystApp->run(@_) };
+    };
+
+Instead, you should now just do:
+
+    use Plack::Builder;
+    use MyCatalystApp;
+
+    builder {
+        enable ... #enable your desired middleware
+        MyCatalystApp->psgi_app;
+    };
+
+Applications that were using and deploying via L<Catalyst::Engine::PSGI>
+previously should entirely continue to work in this release with no changes,
+however if you were using Catalyst::Engine::PSGI previously, then this is
+not compatible with L<Catalyst::Test> in the new version, and instead of
+running a test server
+
+=head2 Engines which are known broken
+
+The following engines B<DO NOT> work as of Catalyst version 5.90. The core
+team is extremely happy to work with the developers and/or users of these
+engines to help them port to the new Plack/Engine system, however applications
+which are currently using these engines B<WILL NOT> run without modification
+to the engine code.
+
+=over
+
+=item Catalyst::Engine::Wx
+
+=back
 
 =head2 Engines with unknown status
 
 The following engines have untested or unknown compatibility.  Reports are
 highly welcomed:
 
-    Catalyst::Engine::Embeddable
+    Catalyst::Engine::Embeddable - needs testing, should work?
     Catalyst::Engine::XMPP2
     Catalyst::Engine::SCGI
     Catalyst::Engine::Mojo
-    Catalyst::Engine::Zeus
-    Catalyst::Engine::JobQueue::POE
-    Catalyst::Engine::Wx
-    Catalyst::Engine::Stomp
+    Catalyst::Engine::Zeus - broken for ages
+    Catalyst::Engine::JobQueue::POE - broken for ages
+    Catalyst::Engine::Stomp - fixed
     Catalyst::Engine::Server (Marked as Deprecated)
     Catalyst::Engine::HTTP::POE (Marked as Deprecated)