merged and resolved conflicts from stable
John Napiorkowski [Wed, 31 Dec 2014 16:36:02 +0000 (10:36 -0600)]
1  2 
Changes
lib/Catalyst.pm
lib/Catalyst/Middleware/Stash.pm
lib/Catalyst/Request.pm
lib/Catalyst/Runtime.pm

diff --cc Changes
+++ b/Changes
@@@ -1,63 -1,14 +1,75 @@@
  # This file documents the revision history for Perl extension Catalyst.
  
++5.90079_005 - 2014-12-31
++  - Merged changes from 5.90078
++
 +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.90078 - 2014-12-30
+   - POD corrections (sergey++)
+   - New configuration option to disable the HTTP Exception passthru feature
+     introduced in 5.90060.  You can use this if that feature is causing you
+     trouble. (davewood++);
+   - Some additional helper methods for dealing with errors.
+   - More clear exception when $request->body_data tries to parse malformed POSTed
+     data.  Added documentation and tests around this.
  5.90077 - 2014-11-18
    - We store the PSGI $env in Catalyst::Engine for backcompat reasons.  Changed
      this so that the storage is a weak reference, so that it goes out of scope
diff --cc lib/Catalyst.pm
@@@ -129,8 -127,7 +129,8 @@@ __PACKAGE__->stats_class('Catalyst::Sta
  __PACKAGE__->_encode_check(Encode::FB_CROAK | Encode::LEAVE_SRC);
  
  # Remember to update this in Catalyst::Runtime as well!
- our $VERSION = '5.90079_004';
 -our $VERSION = '5.90078';
++our $VERSION = '5.90079_005';
 +$VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases
  
  sub import {
      my ( $class, @arguments ) = @_;
@@@ -38,16 -38,19 +38,16 @@@ sub _create_stash 
    };
  }
  
 -sub _init_stash_in {
 -  my ($env) = @_;
 -  return $env->{&PSGI_KEY} ||=
 -    _create_stash;
 -}
 -
  sub call {
    my ($self, $env) = @_;
 -  _init_stash_in($env);
 -  return $self->app->($env);
 +  my $new_env = +{ %$env };
 +  my %stash = %{ ($env->{+PSGI_KEY} || sub {})->() || +{} };
 +
 +  $new_env->{+PSGI_KEY} = _create_stash( \%stash  );
 +  return $self->app->($new_env);
  }
  
- =head1 TITLE
+ =head1 NAME
  
  Catalyst::Middleware::Stash - The Catalyst stash - in middleware
  
@@@ -10,7 -10,7 +10,8 @@@ use HTTP::Headers
  use Stream::Buffered;
  use Hash::MultiValue;
  use Scalar::Util;
 +use HTTP::Body;
+ use Catalyst::Exception;
  use Moose;
  
  use namespace::clean -except => 'meta';
@@@ -7,8 -7,7 +7,8 @@@ BEGIN { require 5.008003; 
  
  # Remember to update this in Catalyst as well!
  
- our $VERSION = '5.90079_004';
 -our $VERSION = '5.90078';
++our $VERSION = '5.90079_005';
 +$VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases
  
  =head1 NAME