From: John Napiorkowski Date: Tue, 6 Jan 2015 23:15:11 +0000 (-0600) Subject: Merge branch 'master' into holland X-Git-Tag: 5.90079_008~15 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=da57fe993af32a6fe5d1813854f69fe8dedbfc29 Merge branch 'master' into holland Conflicts: Changes lib/Catalyst.pm lib/Catalyst/Runtime.pm --- da57fe993af32a6fe5d1813854f69fe8dedbfc29 diff --cc Changes index 2a7af00,5f6d7b5..8ec2973 --- a/Changes +++ b/Changes @@@ -1,85 -1,10 +1,95 @@@ # This file documents the revision history for Perl extension Catalyst. ++TDB ++ - Merged from Stable (5.90079) ++ - reviewed and cleaned up UTF8 related docs ++ - replace missing utf8 pragma in Catalyst::Engine ++ +5.90079.06 - 2015-01-02 + - Removed unneeded depdency on RenderView in new test case that was causing fails + on CPAN testers that did not just happen to have that dependency already installed + - Updated copyright notices to 2015 + - Documentation patches around the setup methods and clarification on on security + note posted a few months ago. + - Added my name to the contributors list + +5.90079_005 - 2014-12-31 + - Merged changes from 5.90078 + - If configuration 'using_frontend_proxy' is set, we add the correct middleware + to the default middleware list. This way you get the correct and expected + behavior if you are starting your application via one of the generated scripts + or if you are calling MyApp->psgi_app. Previously if you started the application + with ->psgi_app (or to_app) we ignored this configuration option + - New configuration option 'using_frontend_proxy_path' which enables + Plack::Middleware::ReverseProxyPath on your application easily. Please note that + Plack::Middleware::ReverseProxyPath is not an automatic dependency of Catalyst at + this time, so if you want this feature you should add it to your project dependency + list. This is done to avoid continued growth of Catalyst dependencies. + - Tweaks encoding docs a bit to get closer to final. + +5.90079_004 - 2014-12-26 + - Starting adding some docs around the new encoding stuff + - Exposed the reqexp we use to match content types that need encoding via a + global variable. + - Added some test cases for JSON utf8 and tested file uploads with utf8. + - Fixes to decoding on file upload filenames and related methods + - new methods on upload object that tries to do the right thing if we find + a character set on the upload and its UTF8. + - new additional helper methods on the file upload object. + - new helper methods has_encoding and clear_encoding on context. + - Method on Catalyst::Response to determine if the reponse should be encoded. + - Warn if changing headers only if headers are finalized AND the response callback + has allready been called (and headers already sent). + - Centralized rules about detecting if we need to automatically encode or not and + added tests around cases when you choose to skip auto encoding. + +5.90079_003 - 2014-12-03 + - Make sure all tests run even if debug mode is enabled. + - Fixed issue with middleware stash test case that failed on older Perls + +5.90079_002 - 2014-12-02 + - Fixed typo in Makefile.PL which borked the previous distribution. No other + changes. + +5.90079_001 - 2014-12-02 + - MyApp->to_app is now an alias for MyApp->psgi_app in order to better support + existing Plack conventions. + - Modify Catayst::Response->from_psgi_response to allow the first argument to + be an object that does ->as_psgi. + - Modified Catayst::Middleware::Stash to be a shallow copy in $env. Added some + docs. Added a test case to make sure stash keys added in a child application + don't bubble back up to the main application. + - We no longer use Encode::is_utf8 since it doesn't work the way we think it + does... This required some UTF-8 changes. If your application is UTF-8 aware + I highly suggest you test this release. + - We alway do utf8 decoding on incoming URLs (before we only did so if the server + encoding was utf8. I believe this is correct as per the w3c spec, but please + correct if incorrect :) + - Debug output now shows utf8 characters if those are incoming via Args or as + path or pathparts in your actions. query and body parameter keys are now also + subject to utf8 decoding (or as specificed via the encoding configuration value). + - lots of UTF8 changes. Again we think this is now more correct but please test. + - Allow $c->res->redirect($url) to accept $url as an object that does ->as_string + which I think will ease a common case (and common bug) and added documentation. + - !!! UTF-8 is now the default encoding (there used to be none...). You can disable + this if you need to with MyApp->config(encoding => undef) if it causes you trouble. + - Calling $c->res->write($data) now encodes $data based on the configured encoding + (UTF-8 is default). + - $c->res->writer_fh now returns Catalyst::Response::Writer which is a decorator + over the PSGI writer and provides an additional methd 'write_encoded' that just + does the right thing for encoding your responses. This is probably the method + you want to use. + - New dispatch matching attribute: Scheme. This lets you match a route based on + the incoming URI scheme (http, https, ws, wss). + - If $c->uri_for targets an action or action chain that defines Scheme, use that + scheme for the generated URI object instead of just using whatever the incoming + request uses. + + 5.90079 - 2015-01-02 + - Removed dependency from test case that we don't install for testing ( + rt #101243) + - updated year in copyright notices + 5.90078 - 2014-12-30 - POD corrections (sergey++) - New configuration option to disable the HTTP Exception passthru feature diff --cc lib/Catalyst/Engine.pm index 948f28f,225a09a..34e48c3 --- a/lib/Catalyst/Engine.pm +++ b/lib/Catalyst/Engine.pm @@@ -7,13 -7,17 +7,14 @@@ use CGI::Simple::Cookie use Data::Dump qw/dump/; use Errno 'EWOULDBLOCK'; use HTML::Entities; -use HTTP::Body; use HTTP::Headers; -use URI::QueryParam; use Plack::Loader; use Catalyst::EngineLoader; -use Encode (); +use Encode 2.21 'decode_utf8'; use Plack::Request::Upload; use Hash::MultiValue; -use utf8; - use namespace::clean -except => 'meta'; ++use utf8; # Amount of data to read from input on each pass our $CHUNKSIZE = 64 * 1024;