The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 5.90079_008 - 2015-01-07

  • If we get a response set from $res->from_psgi_response and that response has a charset for the content type, we clear encoding for the rest of the response (avoid double encoding). Added more documentation around this.
  • Documentation updates and typo fixes across various UTF8 docs (Mark Ellis++)

Changes for version 5.90079_007 - 2015-01-07

  • Merged from Stable (5.90079)
  • reviewed and cleaned up UTF8 related docs
  • replace missing utf8 pragma in Catalyst::Engine
  • Cleaned up spelling errors in various docs (abbraxxa++)
  • New document Catalyst::UTF8 which attempts to summarize UTF8 and encoding changes introduced in v5.90080.

Changes for version 5.90079_006 - 2015-01-02

  • Removed unneeded dependency 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

Changes for version 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.

Changes for version 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 response should be encoded.
  • Warn if changing headers only if headers are finalized AND the response callback has already 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.

Changes for version 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

Changes for version 5.90079_002 - 2014-12-02

  • Fixed typo in Makefile.PL which borked the previous distribution. No other changes.

Changes for version 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 Catalyst::Response->from_psgi_response to allow the first argument to be an object that does ->as_psgi.
  • Modified Catalyst::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 always 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 specified 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 method '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.

Documentation

Overview of changes between versions of Catalyst
How Catalyst and PSGI work together
All About UTF8 and Catalyst Encoding
Instructions for upgrading to the latest Catalyst
Bootstrap a Catalyst application

Modules

The Elegant MVC Web Application Framework
Catalyst Action
Chain of Catalyst Actions
Catalyst Action Container
Match on HTTP Request Content-Type
Match on HTTP Methods
Match on HTTP Request Schema
Deprecated base class
Class data accessors
Catalyst Component Base Class
Moose Role for components which capture the application context.
Moose Role for components which need to close over the $ctx, without leaking
Catalyst Controller base class
DispatchType Base Class
Path Part DispatchType
Default DispatchType
Index DispatchType
Path DispatchType
The Catalyst Dispatcher
The Catalyst Engine
removed module
The Catalyst Engine Loader
Catalyst Exception Class
Basic Catalyst Exception Role
Exception for redispatching using $ctx->detach()
Exception for redispatching using $ctx->go()
Role defining the interface for Catalyst exceptions
Catalyst Log Class
The Catalyst stash - in middleware
Catalyst Model base class
Unicode aware Catalyst
provides information about the current client request
handles file upload requests
stores output responding to the current client request
The Catalyst Framework Runtime
The CGI Catalyst Script
Create a new Catalyst Component
The FastCGI Catalyst Script
Catalyst test server
Test Catalyst application on the command line
Common functionality for Catalyst scripts.
The Catalyst Framework script runner
Catalyst Timing Statistics Class
Test Catalyst Applications
The Catalyst Utils
Catalyst View base class

Provides

in lib/Catalyst/Exception.pm
in lib/Catalyst/Response/Writer.pm