X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FUpgrading.pod;h=6157b55e900f0d2fda1f71b917412e14d5c0c315;hp=0536cc02503729a10a8b42d1e607b5281f50982c;hb=d0cacee71a316290bc01f0e12681c16bdc1e84e2;hpb=93d60cae48bf2b71dd003cdefa275717e22b29b3 diff --git a/lib/Catalyst/Upgrading.pod b/lib/Catalyst/Upgrading.pod index 0536cc0..6157b55 100644 --- a/lib/Catalyst/Upgrading.pod +++ b/lib/Catalyst/Upgrading.pod @@ -2,48 +2,57 @@ Catalyst::Upgrading - Instructions for upgrading to the latest Catalyst -=head1 Upgrading to Catalyst 5.90 - -The major change is that L now replaces most of the subclasses of -L. If you are using one of the standard subclasses of -L 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 is different from L it would be -possible that edge case differences would exist. Therefore we recommend care -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 ecosystem -and documentation. Being able to take advantage of L development and -middleware is a major bonus to this upgrade. - -If you have created a custom subclass of L you will need to -convert it to be a subclass of L. +=head1 Upgrading to Catalyst 5.9 + +The major change is that L, a toolkit for using the L +specification, now replaces most of the subclasses of L. If +you are using one of the standard subclasses of L this +should be a straightforward upgrade for you. It was a design goal for +this release to preserve as much backwards compatibility as possible. +However, since L is different from L, it is +possible that differences exist for edge cases. Therefore, we recommend +that care be taken with this upgrade and that testing should be greater +than would be the case with a minor point update. Please inform the +Catalyst developers of any problems so that we can fix them and +incorporate tests. + +It is highly recommended that you become familiar with the L ecosystem +and documentation. Being able to take advantage of L development and +middleware is a major bonus to this upgrade. Documentation about how to +take advantage of L by writing your own C<< .psgi >> file +is contained in L. + +If you have created a custom subclass of L, you will +need to convert it to be a subclass of L. If you are using the L engine, L, this new -release supercedes that code. +release supersedes that code. -If you are using a subclass of L that is aimed at nonstandard -or internal / testing uses, such as L you should -still be able to continue using that engine. +If you are using a subclass of L that is aimed at +nonstandard or internal/testing uses, such as +L, you should still be able to continue +using that engine. Advice for specific subclasses of L follows: =head2 Upgrading the FastCGI Engine -No upgrade needed if your myapp_fastcgi.pl script is already upgraded -enough to use L. +No upgrade is needed if your myapp_fastcgi.pl script is already upgraded +to use L. =head2 Upgrading the mod_perl / Apache Engines -The engines that are build upon the various iterations of mod_perl, -L and -L should be seemless upgrades and will -work using using L or L -as required. +The engines that are built upon the various iterations of mod_perl, +L (for mod_perl 1, and Apache 1.x) and +L (for mod_perl 2, and Apache 2.x), +should be seamless upgrades and will work using using L +or L as required. -L, is however no longer supported, as Plack -does not support mod_perl version 1.99??? FIXME - is this true? +L, however, is no longer supported, as +Plack does not support mod_perl version 1.99. This is unlikely to be a +problem for anyone, as 1.99 was a brief beta-test release for mod_perl +2, and all users of mod_perl 1.99 are encouraged to upgrade to a +supported release of Apache 2 and mod_perl 2. =head2 Upgrading the HTTP Engine @@ -53,44 +62,157 @@ script is upgraded to use L. =head2 Upgrading the CGI Engine -If you were using L you should now use... - -No upgrade needed if your myapp_cgi.pl script is already upgraded -enough to use L. +If you were using L there is no upgrade needed if your +myapp_cgi.pl script is already upgraded to use L. -=head2 Upgrading the Preforking Engine +=head2 Upgrading Catalyst::Engine::HTTP::Prefork If you were using L then L -is automatically loaded. +is automatically loaded. You should (at least) change your C +to depend on Starman. + +You can regenerate your C script with C +and implement a C 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 will add 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. + +An alternate route to implement this functionality is to write a simple .psgi +file for your application, and then use the L utility to start the +server. =head2 Upgrading the PSGI Engine -If you were using L this new release supercedes this -engine in supporting L. You should remove the.. FIXME +If you were using L, this new release supersedes +this engine in supporting L. By default the Engine is now always +L. As a result, you can remove the dependency on +L in your C. + +Applications that were using L +previously should entirely continue to work in this release with no changes. + +However, if you have an C script, then you no longer need to +specify the PSGI engine. Instead, the L application class now +has a new method C which returns a L compatible coderef +which you can wrap in the middleware of your choice. + +Catalyst will use the .psgi for your application if it is located in the C +directory of the application. + +For example, if you were using L in the past, you will +have written (or generated) a C