Explicitly document the wrong Engine::PSGI thing.
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Upgrading.pod
index 92db2ae..5563808 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>.
@@ -75,7 +77,7 @@ previously should entirely continue to work in this release with no changes.
 
 However, if you have an C<app.psgi> script, then you no longer
 need to specify the PSGI engine.  Instead, the L<Catalyst> application class
-now has a new method C<raw_psgi_app> which returns a L<Plack> compatible coderef
+now has a new method C<psgi_app> which returns a L<PSGI> compatible coderef
 which you can wrap in middleware of your choice.
 
 Catalyst will use the .psgi for your application if it is located in the C<home>
@@ -101,12 +103,28 @@ Instead, you now say:
 
     builder {
         enable ... #enable your desired middleware
-        MyCatalystApp->raw_psgi_app;
+        MyCatalystApp->psgi_app;
     };
 
-And also rename C<< script/myapp.psgi >> to C<< myapp.psgi >>.
+In the simplest case:
 
-If you rename your .psgi file without these modifications, then any tests run via
+    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.
+
+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.
 
@@ -122,6 +140,14 @@ to the engine code.
 
 =item Catalyst::Engine::Wx
 
+=item Catalyst::Engine::Zeus
+
+=item Catalyst::Engine::JobQueue::POE
+
+=item Catalyst::Engine::XMPP2
+
+=item Catalyst::Engine::SCGI
+
 =back
 
 =head2 Engines with unknown status
@@ -129,15 +155,15 @@ to the engine code.
 The following engines have untested or unknown compatibility.  Reports are
 highly welcomed:
 
-    Catalyst::Engine::Embeddable - needs testing, should work?
-    Catalyst::Engine::XMPP2
-    Catalyst::Engine::SCGI
-    Catalyst::Engine::Mojo
-    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)
+=over
+
+=item Catalyst::Engine::Mojo
+
+=item Catalyst::Engine::Server (Marked as Deprecated)
+
+=item Catalyst::Engine::HTTP::POE (Marked as Deprecated)
+
+=back
 
 =head2 Using middleware