X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FUpgrading.pod;h=3e2d9d089fba1c529a82722297d5c901693d3953;hb=f20ba798d3cd91a5df5a0fc1f18c2947348a2b93;hp=18070538fd30c672088326ca4a0f6fc2513a33fa;hpb=717fc5c90d2cbbd6288bae9be82dbd8f6b917bab;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Upgrading.pod b/lib/Catalyst/Upgrading.pod index 1807053..3e2d9d0 100644 --- a/lib/Catalyst/Upgrading.pod +++ b/lib/Catalyst/Upgrading.pod @@ -4,41 +4,60 @@ Catalyst::Upgrading - Instructions for upgrading to the latest Catalyst =head1 Upgrading to Catalyst 5.90040 -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: +=head2 Catalyst::Plugin::Unicode::Encoding is now core - $c->stash(my_model => sub { $c->model->find(shift) }); +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: -If you have old code that leaks memory in this way but otherwise seemed to -work, it will no longer complete the response properly. + package Myapp::Web; -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: + use Catalyst; - package MyApp::Web; + __PACKAGE__->config( encoding => 'UTF-8' ); - use Moose; - use Catalyst; +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 :) - __PACKAGE__->config( - name => 'MyApp::Web', - enable_catalyst_header => 1, - disable_component_resolution_regex_fallback => 1, - aggressively_close_writer_on_finalize_body => 1, - ); +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). - __PACKAGE__->setup; +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. -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. +=head1 Upgrading to Catalyst 5.90030 + +=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.9 @@ -252,15 +271,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.