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=11d0198032c64af5419478ba15f8a799256ea0a4;hp=18070538fd30c672088326ca4a0f6fc2513a33fa;hb=f9bdcfacb19ab17ed0b889ed6366272d8bf166fc;hpb=717fc5c90d2cbbd6288bae9be82dbd8f6b917bab diff --git a/lib/Catalyst/Upgrading.pod b/lib/Catalyst/Upgrading.pod index 1807053..11d0198 100644 --- a/lib/Catalyst/Upgrading.pod +++ b/lib/Catalyst/Upgrading.pod @@ -2,43 +2,74 @@ Catalyst::Upgrading - Instructions for upgrading to the latest Catalyst -=head1 Upgrading to Catalyst 5.90040 +=head1 Upgrading to Catalyst 5.90060 -This version of L offers some support for using L and -L event loops in your application. In order to achieve this goal -we needed to make some changes to the way the we finalize the HTTP response -such that sloppy code that closed over $c and leaked memory will no longer -work in some manner. For example you might accidently have: +Starting in the v5.90059_001 development release, the regexp dispatch type is +no longer automatically included as a dependency. If you are still using this +dispatch type, you need to add L into your build +system. - $c->stash(my_model => sub { $c->model->find(shift) }); +The standalone distribution of Regexp will be supported for the time being, but +should we find that supporting it prevents us from moving L forward +in necessary ways, we reserve the right to drop that support. It is highly +recommended that you use this last stage of deprecation to change your code. -If you have old code that leaks memory in this way but otherwise seemed to -work, it will no longer complete the response properly. +=head1 Upgrading to Catalyst 5.90040 -If you don't want to fix your code, you can force the old behavior with the -global configuration key C. This -of course will still leave you with a leaky application and you lose the new -event loop support, but your application will go back to completing its -response output. For example: +=head2 Catalyst::Plugin::Unicode::Encoding is now core - package MyApp::Web; +The previously stand alone Unicode support module L +has been brought into core as a default plugin. Going forward, all you need is +to add a configuration setting for the encoding type. For example: + + package Myapp::Web; - use Moose; use Catalyst; - __PACKAGE__->config( - name => 'MyApp::Web', - enable_catalyst_header => 1, - disable_component_resolution_regex_fallback => 1, - aggressively_close_writer_on_finalize_body => 1, - ); + __PACKAGE__->config( encoding => 'UTF-8' ); - __PACKAGE__->setup; +Please note that this is different from the old stand alone plugin which applied +C encoding by default (that is, if you did not set an explicit +C configuration value, it assumed you wanted UTF-8). In order to +preserve backwards compatibility you will need to explicitly turn it on via the +configuration setting. THIS MIGHT CHANGE IN THE FUTURE, so please consider +starting to test your application with proper UTF-8 support and remove all those +crappy hacks you munged into the code because you didn't know the Plugin +existed :) + +For people that are using the Plugin, you will note a startup warning suggesting +that you can remove it from the plugin list. When you do so, please remember to +add the configuration setting, since you can no longer rely on the default being +UTF-8. We'll add it for you if you continue to use the stand alone plugin and +we detect this, but this backwards compatibility shim will likely be removed in +a few releases (trying to clean up the codebase after all). + +If you have trouble with any of this, please bring it to the attention of the +Catalyst maintainer group. + +=head2 basic async and event loop support + +This version of L offers some support for using L and +L event loops in your application. These changes should work +fine for most applications however if you are already trying to perform +some streaming, minor changes in this area of the code might affect your +functionality. Please see L for more and for a +basic example. + +We consider this feature experimental. We will try not to break it, but we +reserve the right to make necessary changes to fix major issues that people +run into when the use this functionality in the wild. + +=head1 Upgrading to Catalyst 5.90030 + +=head2 Regex dispatch type is deprecated. -See L for help on how to close over the -context safely, should you need to do this. See L -and L for help if you want to solve your -memory leak issues. +The Regex dispatchtype (L) has been deprecated. + +You are encouraged to move your application to Chained dispatch (L). + +If you cannot do so, please add a dependency to Catalyst::DispatchType::Regex to your application's +Makefile.PL =head1 Upgrading to Catalyst 5.9 @@ -83,7 +114,7 @@ to use L. 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 +should be seamless upgrades and will work using L or L as required. L, however, is no longer supported, as @@ -252,15 +283,6 @@ This behavior has been removed, and now a 500 response will be returned to the test. This change standardizes behavior, so that local test requests behave similarly to remote requests. -=head2 Regex dispatch type is deprecated. - -The Regex dispatchtype (L) has been deprecated. - -You are encouraged to move your application to Chained dispatch (L). - -If you cannot do so, please add a dependency to Catalyst::DispatchType::Regex to your application's -Makefile.PL - =head1 Upgrading to Catalyst 5.80 Most applications and plugins should run unaltered on Catalyst 5.80.