Sort out what we're doing to ::PreFork users
Tomas Doran (t0m) [Mon, 8 Aug 2011 22:43:57 +0000 (22:43 +0000)]
TODO
lib/Catalyst/Upgrading.pod

diff --git a/TODO b/TODO
index d6a66e5..81bda4b 100644 (file)
--- a/TODO
+++ b/TODO
@@ -40,10 +40,6 @@ http://github.com/willert/catalyst-plugin-log4perl-simple/tree
  * Have a look at the Devel::REPL BEFORE_PLUGIN stuff
    I wonder if what we need is that combined with plugins-as-roles
 
-  * Catalyst::Engine::HTTP::Prefork no longer works since it requires
-    Catalyst::Engine::CGI which no longer is in the cataplack distribution.
-    Investigation shows moving CE:CGI to CE:HTTP:Prefork allows tests to pass.
-
 #  PSGI
 
 ##  To do at release time
@@ -52,13 +48,10 @@ http://github.com/willert/catalyst-plugin-log4perl-simple/tree
   - Release new Task::Catalyst
   - Release 5.9 branch of Catalyst-Manual
   - Release Catalyst::Engine::HTTP::Prefork with deprecation notice
-    (and maybe compat?)
+    + exit in Makefile.PL if Catalyst > 5.89 is installed.
 
 ##  Blockers
 
-  * Better docs for stopping using Engine::HTTP::Prefork and
-    starting using Starman, maybe?
-
   * I've noticed a small difference with Catalyst::Test. The latest stable
     version include two headers, 'host' and 'https'. They are missing from
     this version - Pedro Melo on list
index fbad34c..f15995e 100644 (file)
@@ -61,11 +61,29 @@ 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. You should (at least) change your C<Makefile.PL>
+to depend on Starman.
 
-If you were customising your server script to pass options to the prefork engine,
-then this is no longer supported. The recommended route to implement this functionality
-is to write a simple .psgi file for your application, then use the L<plackup> utility.
+You can regenerate your C<myapp_server.pl> script with C<catalyst.pl>
+and implement a C<MyApp::Script::Server> class that looks like this:
+
+    package MyApp::Script::Server;
+    use Moose;
+    use namespace::autoclean;
+
+    extends 'CatalystX::Script::Server::Starman';
+
+    1;
+
+This takes advantage of the new script system, and adds a number of options to
+the standard server script as extra options are added by Starman.
+
+More information about these options can be seen at
+L<CatalystX::Script::Server::Starman/SYNOPSIS>.
+
+An alternate route to implement this functionality is to write a simple .psgi
+file for your application, then use the L<plackup> utility to start the
+server.
 
 =head2 Upgrading the PSGI Engine