more docs
John Napiorkowski [Mon, 5 Jan 2015 19:54:09 +0000 (13:54 -0600)]
lib/Catalyst.pm
lib/Catalyst/Delta.pod
lib/Catalyst/Upgrading.pod

index 31434ee..738149b 100644 (file)
@@ -4174,12 +4174,19 @@ Please see L<PSGI> for more on middleware.
 
 =head1 ENCODING
 
-On request, decodes all params from encoding into a sequence of
-logical characters. On response, encodes body into encoding.
+Starting in L<Catalyst> version 5.90080 encoding is automatically enabled
+and set to encode all body responses to UTF8 when possible and applicable.
+Following is documentation on this process.  If you are using an older
+version of L<Catalyst> you should review documentation for that version since
+a lot has changed.
 
 By default encoding is now 'UTF-8'.  You may turn it off by setting
 the encoding configuration to undef.
 
+    MyApp->config(encoding => undef);
+
+This is recommended for temporary backwards compatibility only.
+
 Encoding is automatically applied when the content-type is set to
 a type that can be encoded.  Currently we encode when the content type
 matches the following regular expression:
@@ -4190,9 +4197,9 @@ Encoding is set on the application, but it is copied to the context object
 so that you can override it on a request basis.
 
 Be default we don't automatically encode 'application/json' since the most
-popular JSON encoders (such as L<JSON::MaybeXS> which is the library that
-L<Catalyst> can make use of) will do the UTF8 encoding and decoding automatically.
-Having it on in Catalyst could result in double encoding.
+common approaches to generating this type of response (Either via L<Catalyst::View::JSON>
+or L<Catalyst::Action::REST>) will do so already and we want to avoid double
+encoding issues.
 
 If you are producing JSON response in an unconventional manner (such
 as via a template or manual strings) you should perform the UTF8 encoding
@@ -4202,9 +4209,10 @@ NOTE: We also examine the value of $c->response->content_encoding.  If
 you set this (like for example 'gzip', and manually gzipping the body)
 we assume that you have done all the neccessary encoding yourself, since
 we cannot encode the gzipped contents.  If you use a plugin like
-L<Catalyst::Plugin::Compress> we will be updating that plugin to work 
-with the new UTF8 encoding code, or you can use L<Plack::Middleware::Deflater>
-or (probably best) do your compression on a front end proxy.
+L<Catalyst::Plugin::Compress> you need to update to a modern version in order
+to have this function correctly  with the new UTF8 encoding code, or you
+can use L<Plack::Middleware::Deflater> or (probably best) do your compression on
+a front end proxy.
 
 =head2 Methods
 
index bb29d71..4d1572a 100755 (executable)
@@ -25,7 +25,8 @@ author is aware of these updates were to fix test cases only.  You shouldn't
 need to update unless you are installing fresh and want tests to pass.
 
 L<Catalyst::Plugin::Compress> was updated to be compatible with this release.
-You will need to upgrade if you are using this plugin.
+You will need to upgrade if you are using this plugin.  L<Catalyst::Upgrading>
+also has details.
 
 A small change is that the configuration setting C<using_frontend_proxy>
 was not doing the right thing if you started your application with C<psgi_app>
index 11d0198..fe9da9c 100644 (file)
@@ -2,6 +2,30 @@
 
 Catalyst::Upgrading - Instructions for upgrading to the latest Catalyst
 
+=head1 Upgrading to Catalyst 5.90080
+
+UTF8 encoding is now default.  For temporary backwards compatibility, if this
+change is causing you trouble, you can disable it by setting the application
+configuration option to undef:
+
+    MyApp->config(encoding => undef);
+
+But please consider this a temporary measure since it is the intention that
+UTF8 is enabled going forwards and the expectation is that other ecosystem
+projects will assume this as well.  At some point you application will not
+correctly function without this setting.
+
+A number of projects in the wider ecosystem required minor updates to be able
+to work correctly.  Here's the known list:
+
+L<Catalyst::View::TT>, L<Catalyst::View::Mason>, L<Catalyst::View::HTML::Mason>,
+L<Catalyst::View::Xslate>, L<Test::WWW::Mechanize::Catalyst>
+
+You will need to update to modern versions in most cases, although quite a few
+of these only needed minor test case and documentation changes so you will need
+to review the changelog of each one that is relevant to you to determine your
+true upgrade needs.
+
 =head1 Upgrading to Catalyst 5.90060
 
 Starting in the v5.90059_001 development release, the regexp dispatch type is