Merge branch 'master' into psgi
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Upgrading.pod
index a0896f9..56a5258 100644 (file)
@@ -14,8 +14,10 @@ be taken with this upgrade and that testing should be greater than would be
 the case with a minor point update.
 
 It is highly recommended that you become familar with the L<Plack> ecosystem
-and documentation.  Being able to take advantage of L<Plack> development and
-middleware is a major bonus to this upgrade.
+and documentation. Being able to take advantage of L<Plack> development and
+middleware is a major bonus to this upgrade. Documentation about how to
+take advantage of L<Plack::Middleware> by writing your own C<< .psgi >> file
+is contained in L<Catalyst::PSGI>.
 
 If you have created a custom subclass of L<Catalyst:Engine> you will need to
 convert it to be a subclass of L<Plack::Handler>.
@@ -43,7 +45,7 @@ work using using L<Plack::Handler::Apache1> or L<Plack::Handler::Apache2>
 as required.  
 
 L<Catalyst::Engine::Apache2::MP19>, is however no longer supported, as Plack
-does not support mod_perl version 1.99??? FIXME - is this true?
+does not support mod_perl version 1.99
 
 =head2 Upgrading the HTTP Engine
 
@@ -61,7 +63,9 @@ myapp_cgi.pl script is already upgraded enough to use L<Catalyst::Script::CGI>.
 If you were using L<Catalyst::Engine::HTTP::Prefork> then L<Starman>
 is automatically loaded.
 
-XXX FIXME - note how to run Starman with different options.
+If you were customising your server script to pass opttions 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> untility.
 
 =head2 Upgrading the PSGI Engine
 
@@ -104,11 +108,25 @@ Instead, you now say:
         MyCatalystApp->psgi_app;
     };
 
-And also rename C<< script/myapp.psgi >> to C<< myapp.psgi >>.
+In the simplest case:
 
-XXX - FIXME - t/psgi_file_testapp_engine_psgi_compat.t
+    MyCatalystApp->setup_engine('PSGI');
+    my $app = sub { MyCatalystApp->run(@_) }
+
+becomes
+
+    MyCatalystApp->setup_engine('PSGI');
+    my $app = MyCatalystApp->psgi_app(@_);
+
+B<NOT>:
+
+    my $app = sub { MyCatalystApp->psgi_app(@_) };
+    # If you make ^^ this mistake, your app won't work, and will confuse the hell out of you!
+
+You can now rename C<< script/myapp.psgi >> to C<< myapp.psgi >>, and the built-in
+Catalyst scripts, and your test suite will start using your .psgi file.
 
-If you rename your .psgi file without these modifications, then any tests run via
+B<NOTE:> If you rename your .psgi file without these modifications, then any tests run via
 L<Catalyst::Test> will not be compatible with the new release, and will result in
 the development server starting, rather than the expected test running.