# This file documents the revision history for Perl extension Catalyst.
+5.90079_004 - TBD
+ - 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.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
+ with the request. This solves an issue where items in the stash (now in the
+ PSGI env) would not get closed at the end of the request. This caused some
+ regression, primarily in custom testing classes.
+
+5.90076 - 2014-11-13
+ - If throwing an exception object that does the code method, make sure that
+ method returns an expected HTTP status code before passing it on to the
+ HTTP Exception middleware.
+
+5.90075 - 2014-10-06
+ - Documentation patch for $c->req->param to point out the recently discovered
+ potential security issues: http://blog.gerv.net/2014/10/new-class-of-vulnerability-in-perl-web-applications/
+ - You don't need to install this update, but you should read about the exploit
+ and review if your code is vulnerable. If you use the $c->req->param interface
+ you really need to review this exploit.
+
+5.90074 - 2014-10-01
+ - Specify Carp minimum version to avoid pointless test fails (valy++)
+
+5.90073 - 2014-09-23
+ - Fixed a regression caused by the last release where we broke what happened
+ when you tried to set request parameters via $c->req->param('foo', 'bar').
+ You shouldn't do this, but I guess I shouldn't have busted it either :)
+ - Allow the term_width to be regenerated (see Catalyst::Utils::term_width,
+ Frew Schmidt)
+ - More aggressive skipping of value decoding if the value is undefined.
+
+5.90072 - 2014-09-15
+ - In the case where you call $c->req->param(undef), warn with a more useful
+ warning (now gives the line of your code that called param with the undef,
+ so you can go to hunt it out.
+
+5.90071 - 2014-08-10
+ - Travis config now performs basic reverse dependency testing.
+ - Restored deprecated 'env' code in Engine.pm b/c it is still being used out
+ in the wild (Catalyst-Plugin-Authentication-0.10023) - (removed in 5.90070)
+ - Reverted changes to debug log/handling (5.90069_003) to fix
+ rev dep Catalyst-Plugin-Static-Simple-0.32 test suite.
+ - Added italian translation of default error.
+
+5.90070 - 2014-08-07
+ - Retagged previous release as stable; no changes
+
+5.90069_004
+ - Fixed typo in middleware stash that was causing older Perls to fail
+ certain tests. No other changes.
+
+5.90069_003
+ - The default log level is now 'info', not 'debug'.
+ - Finished merging all the encoding plugin code to core code. The encoding
+ plugin is now just an empty package. Also tried to improve encoding docs
+ a bit.
+ - Some additional changes to the stash middleware that should not break
+ anything new.
+ - Documentation around using Sendfile type http headers with a filehandle
+ type response.
+ - Merged from master branch to pick up some additional fixes and documentation
+ improvements.
+
+5.90069_002
+ - Catalyst stash functionality has been moved to Middleware. It should
+ work entirely the same when used as a context method, please report
+ questions or problems!
+ - Removed code related to supporting the long deprecated stand alone
+ PSGI Engine. If you are still using this you code is now broken.
+ Luckily you can just stop using it and likely everything will work
+ under the new PSGI support built into Catalyst for several years.
+ - 'abort_chain_on_error_fix' now defaults to true. If this behavior
+ causes you issues, you can explicitly turn it off by setting it to a
+ non true defined value (0 is a good option here).
+ - When throwing an http style exception, make sure we properly flush the
+ existing log and report other errors in the error stack.
+
+5.90069_001
+ - Set encoding on STDERR when encoding is set in config
+ - documentation and test fixes
+
+5.90065 - 2014-06-04
+ - The Catalyst::Log object now has 'autoflush' (which defaults to true) and
+ causes log messages to be written out in real-time. This is helpful for the
+ test/dev server to be able to see messages during startup as well as before
+ the end of the request when the log is flushed.
+ - Fix spelling, grammar and structural errors in POD
+ - Remove redundant ->setup call in t/head_middleware.t RT#95361
+ - Fix test failures when running under CATALYST_DEBUG. RT#95358
+
+5.90064 - 2014-05-05
+ - Fix for mindless broken tests on Win32 (Haarg++).
+ - Happy Cinco de Mayo!
+
+5.90063 - 2014-05-01
+ - 'end' and other special actions won't catch HTTP style exceptions anymore.
+ - Fix bug where Catalyst did not properly detect the terminal width when in
+ debug mode and thus making the debug output narrow and hard to read.
+ - Documentation corrections for Util methods around localized PSGI $env.
+ - Improvements to auto detection of terminal width.
+ - Updating deprecation list to include Class::Load and ensure_class_loaded
+ - Added a few docs around middleware and corrected the order that middleware
+ is loaded when registering it via ->setup_middleware instead of via
+ configuration.
+ - Added a test case to make sure default middleware order is correct.
+s
+5.90062 - 2014-04-14
+ - HTTP::Exception objects were not properly bubbled up to middleware since
+ there was some code in Catalyst that was triggering stringification.
+
+5.90061 - 2014-03-10
+ - Reverted a change related to how plugins get initialized that was
+ introduced by a change in December.
+
+5.90060 - 2014-02-07
+ - Same as 5.90059_006, just marking it as stable, no functional changes.
+
+
+5.90059_006 - 2014-02-06
+ - MyApp->setup now returns $app to allow class method chaining.
+ - New Util helper functional localize $env to make it easier to mount PSIG
+ applications under controllers and actions. See Catalyst::Utils/PSGI Helpers.
+ - NOTICE: Final Development release for Runner, unless significant issues are
+ raised. Please test.
+
+5.90059_005 - 2014-01-28
+ - Specify newest versions of some middleware in attempt to solve test errors
+ reported while installing.
+5.90059_004 - 2014-01-27
+ - Make sure IO handle objects do 'getline' before sending them to the
+ response callback, to properly support the PSGI specification.
+ - Added some backcompat code when setting a response body to an object
+ that does 'read' but not 'getline'. Added deprecation notice for this
+ case. Added docs to Catalyst::Delta.
+ - Catalyst::Delta contains a list of behaviors which will be considered
+ deprecated immediatelty. Most items have workarounds and tweaks you can
+ make to avoid issues. These deprecations are targeted for removal/enforcement
+ in the Catalyst 6 release. Please review and give your feedback.
+ - More middleware to replace inline code (upasana++)
+ - Documentation around Exceptions and how we handle them.
+ - update copyright notices.
+
+5.90059_003 - 2013-12-24
+ - More documentation about alternative ways to setup middleware.
+ - removed unneeded use of Devel::Dwarn in test case that was causing
+ fails to install (sorry).
+ - When finalizing caught errors, if the error conforms to the interface as
+ described by Plack::Middleware::HTTPExceptions, rethrow it and let the
+ middleware deal with it.
+
+5.90059_002 - 2013-12-21
+ - We now pass a scalar or filehandle directly to you Plack handler, rather
+ than always use the streaming interface (we are still always using a
+ delayed response callback). This means that you can make use of Plack
+ middleware like Plack::Middleware::XSendfile and we expect better use of
+ server features (when they exist) like correct use of chunked encoding or
+ properly non blocking streaming when running under a supporting server like
+ Twiggy. See Catalyst::Delta for more. This change might cause issues if
+ you are making heaving use of streaming (although in general we expect things
+ to work much better.
+ - In the case when we remove a content body from the response because you set
+ an information status or a no content type status, warn that we are doing so
+ when in debug mode. You might see additional debugging information to help
+ you find and remove unneeded response bodies.
+ - Updated the code where Catalyst tries to guess a content length when you
+ fail to provide one. This should cause less issues when trying to guess the
+ length of a funky filehandle. This now uses Plack::Middleware::ContentLength
+ - Removed custom code to remove body content when the request is HEAD and
+ swapped it for Plack::Middleware::Head
+ - Merged fix for regressions from stable..
+
+5.90059_001 - 2013-12-19
+ - Removed deprecated Regexp dispatch type from dependency list. If you are
+ using Regex[p] type dispatching you need to add the standalone distribution
+ 'Catalyst::DispatchType::Regex' to you build system NOW or you application
+ will be broken.
+
+5.90053 - 2013-12-21
+ - Reverted a change in the previous release that moved the setup_log phase
+ to after setup_config. This change was made to allow people to use
+ configuration that is late loaded (such as via the ConfigLoader Plugin)
+ to setup the plugin. However it also broke the ability to use the log
+ during plugin setup (ie, it breaks lots of plugins). Reverting the
+ change. See Catalyst::Delta for workarounds.
+
+5.90052 - 2013-12-18
+
+ - Fixed first block of startup debug messages missing when using a custom
+ logger that gets set at runtime, for example by overriding finalize_config
+ - Give a more descriptive error message when trying to load middleware that
+ does not exist.
+ - Change the way we initialize plugins to fix a bug where when using the
+ populare ConfigLoader plugin, configs merged are not available for setting
+ up middleware and data handlers (and probably other things as well).
+
+ NOTE: This change might cause issues if you had code that was relying on the
+ broken behavior. For example external configuration that was being loaded to
+ late to have effect might now take effect. Please test you code carefully and
+ be aware of this possible issue </NOTE>.
+
+ - You may now also call 'setup_middleware' as a package method if you think
+ that loading middleware via configuration is a weird or broken idea.
+ - Various POD formating fixed.
+ - Improved some documentation about what type of filehandles that ->body can
+ accept and issues that might arise.
+
+5.90051 - 2013-11-06
+ - Be more skeptical of the existance of $request->env to fix a regression
+ introduced in Catalyst::Action::REST by the previous release
+
+5.90050 - 2013-11-05
+ - Previously public predicates on the following attributes are now considered
+ private and their method names have been changed to follow Perl convention
+ for internal methods:
+
+ -- Catalyst::Request->has_io_fh ==> _has_io_fh
+ -- Catalyst::Request->has_env ==> _has_env
+ -- Catalyst::Response->has_write_fh ==> _has_write_fh
+
+ These are breaking changes but these methods were never documented and serve
+ no use for external code. If you are using thing, you need to make the noted
+ change (but please consider finding another way to do what you are trying to
+ do). t0m++ for code review of Hamburg branch.
+
+5.90049_006 - 2013-11-04
+ - Fixed case where test could fail when Starman was partly installed (n0body++)
+ - Fixed missing date information in previous release
+
+5.90049_005 - 2013-10-31
+ - NEW FEATURE: New Controller action attribute 'Consumes', which allows you
+ to specify the content type of the incoming request. This makes it easier
+ to create actions that only handle certain content type POST or PUT, such
+ as actions that only handle JSON or actions that only understand classic
+ HTML forms.
+ - NEW FEATURE: Request->body_data is now also populated from classic HTML
+ Forms using CGI::Struct to support nested data. For non nested data you
+ should use the classic ->body_parameters method.
+ - Removed PSGI $env keys that are added on the 'plack.request.*' namespace
+ since after discussion it was clear those keys are not part of the public
+ API. Keys removed: 'plack.request.query', 'plack.request.body',
+ 'plack.request.merged' and 'plack.request.http.body'. Altered some test
+ cases to reflect this change.
+
+5.90049_004 - 2013-10-18
+ - JSON Data handler looks for both JSON::MaybeXS and JSON, and uses
+ whichever is first (prefering to find JSON::MaybeXS). This should
+ improve compatibility as you likely already have one installed.
+ - Fixed a warning in the server script (bokutin++)
+ - We now populate various Plack $env keys in order to play nice with
+ downstream middleware or plack apps (and to reduce processing if
+ those keys already exist). Keys added:
+ - plack.request.query
+ - plack.request.body
+ - plack.request.merged
+ - plack.request.http.body
+ (NOTE: REMOVED IN 5.90049_005)
+ - If incoming input (from a POST or PUT) is not buffered, create the
+ buffer and set the correct psgi env keys to note this for downstream
+ psgi apps / middleware. This should solve some issues where Catalyst
+ sucks up the body input but its not buffered so downstream apps can't
+ read it (for example FCGI does not buffer). We now also try to make
+ sure the body content input is reset to the start of the filehandle
+ so that we are polite to downstream middleware /apps.
+ - NEW FEATURE: Catalyst::Response can now pull response from a PSGI
+ specification response. This makes it easier to host external Plack
+ applications under Catalyst. See Catalyst::Response->from_psgi_response
+ - NEW FEATURE: New configuration option 'use_hash_multivalue_in_request'
+ will populate $request methods 'parameters', 'body_parameters' and
+ 'query_parameters' with an instance of Hash::MultiValue instead of a
+ HashRef. This is used by Plack and is intended to reduce the need to
+ write defensive logic since you are never sure if an incoming parameter
+ is a scalar or arrayref.
+ - NEW FEATURE: We now experimentally support Net::Async::HTTP::Server
+ and IO-Async based event loops. Examples will follow.
+
+5.90049_003 - 2013-09-20
+ - Documented the new body_data method added in the previous release
+ - Merged from master many important bugfixes and forward compatiblity
+ updates, including:
+ - Use modern preferred method for Moose metaclass access and many other
+ small changes to how we use Moose for better forward compat (ether++)
+ - Killed some evil use of $@ (ether++)
+ - spelling fixes and documentation updates (ether++), (gerda++)
+ - use Test::Fatal over Test::Exception (ether++)
+ - Misc. test case fixes to modernize code (ether++)
+ - Added a first pass cpanfile, to try and make it easier to bootstrap
+ a development setup (ether++)
+
+5.90049_002 - 2013-08-20
+ - Fixed loading middleware from project directory
+ - Fixed some pointless warnings when middleware class lacked VERSION
+ - NEW FEATURE: Declare global 'data_handlers' for parsing HTTP POST/PUT
+ alternative content, and created default JSON handler. Yes, now Catalyst
+ handles JSON request content out of the box! More docs eventually but
+ for now see the DATA HANDLERS section in Catalyst.pm (or review the test
+ case t/data_handler.t
+
+5.90049_001 - 2013-07-26
+ - Declare PSGI compliant Middleware as part of your Catalyst Application via
+ a new configuration key, "psgi_middleware".
+ - Increased lowest allowed module version for Module::Pluggable to be 4.7 (up
+ from 3.4) to solve the fact this is no longer bundled with Perl in v5.18.
+
+5.90042 - 2013-06-14
+ - Removed more places where an optional dependency shows up in the test
+ suite. Hopefully really fixed the unicode regression introduced in 5.90040
+ - reverted the change we introduced in 5.90040 where a unicode conversion
+ error warned instead of died. Now it dies again, like in the stand alone
+ plugin
+ - More work to make sure nothing happens with encoding unless you explicitly
+ ask for encoding
+ - Code to hopefully fix an issue where file uploads using the unicode plugin
+ caused trouble.
+
+5.90041 - 2013-06-14
+ - Bug fix release to fix regressions introduced in previous. I would consider
+ this a likely upgrade and if you are having trouble with the previous I hope
+ this fixes all of them.
+ - Fix regression with the cored Unicode plugin that broke systems where you are
+ setting encoding type in an external configuration file
+ - Fixed circular dependency introduced when we cored the unicode plugin tests
+ - Fixed a longstanding problem with stats when locale uses , instead of . for
+ number decimals
+ - Fixed some docs that didn't properly date the previous release.
+
+5.90040 - 2013-06-12
+ ! Stricter checking of attributes in Catalyst::DispatchType::Chained:
+ 1) Only allow one of either :CaptureArgs or :Args
+ 2) :CaptureArgs() argument must be numeric
+ 3) :CaptureArgs() and :Args() arguments cannot be negative
+ - Add Devel::InnerPackage to dependencies, fixing tests on perl 5.17.11
+ as it's been removed from core. RT#84787
+ - New support for closing over the PSGI $writer object, useful for working
+ with event loops.
+ - lets you access a psgix.io socket, if your server supports it, for manual
+ handling of the client - server communication, such as for websockets.
+ - Fix waiting for the server to start in t/author/http-server.t
+ - new config flag 'abort_chain_on_error_fix' that exits immediately when a
+ action in an action chain throws and error (fixes issues where currently
+ the remaining actions are processed and the error is handled at chain
+ termination).
+ - Cored the Encoding plugin. Now get unicode out of the box by just setting
+ $c->config->{encoding} = 'UTF-8'. BACKCOMPAT WARNING: If you are using
+ the Encoding plugin on CPAN, we skip it to avoid double encoding issues, so
+ you should remove it from your plugin list, HOWEVER the 'encoding' config
+ setting is now undef, rather than 'UTF-8' (this was done to avoid breaking
+ people's existing applications) so you should add the encoding setting to
+ you global config. There's some other changes between the stand alone
+ plugin and the cored version, if you use it be sure to see Catalyst::Upgrading
+ for more.
+ - minor documentation typo fixes and updates
+
+5.90030 - 2013-04-12
+ ! POSSIBLE BREAKING CHANGE: Removed Regexp dispatch type from core, and put
+ it in an external package. If you need Regexp dispatch types you should
+ add "Catalyst-DispatchType-Regex" as a distribution to your build system.
+ - make $app->uri_for and related methods return something sane, when called
+ as an application method, instead of a context method. Now if you call
+ MyApp::Web->uri_for(...) you will get a generic URI object that you need to
+ resolve manually.
+ - documentation updates around forwarding to chained actions.
+ - Fixed bug when a PSGI engine need to use psgix logger.
+ - Added cpanfile as a way to notice we are a dev checkout.
+ - Added 'x-tunneled-method' HTTP Header method override to match features in
+ Catalyst::Action::REST and in other similar systems on CPAN.
+ - smarter valiation around action attributes.
+
+5.90020 - 2013-02-22
+ ! Catalyst::Action now defines 'match_captures' so it is no long considered
+ an optional method. This might break you code if you have made custom
+ action roles/classes where you define 'match_captures'. You must change
+ your code to use a method modifier (such as 'around').
+ - New match method "Method($HTTP_METHOD)" where $HTTP_METHOD in (GET, POST,
+ PUT, HEAD, DELETE, OPTION) and shortcuts in controllers called "GET, POST
+ PUT, HEAD, DELETE, OPTION"). Tests and documentation. Please note if you
+ are currently using Catalyst::ActionRole::MatchRequestMethods there may
+ be compatibility issues. You should remove that actionrole since the built
+ in behavior is compatible on its own.
+ - Initial debug screen now shows HTTP Method Match info
+ - security fixes in the way we handle redirects
+ - Make Catalyst::Engine and Catalyst::Base immutable
+ - Some test and documentation improvements
+
+5.90019 - 2012-12-04 21:31:00
+ - Fix for perl 5.17.6 (commit g7dc8663). RT#81601
+ - Fix for perl 5.8. RT#61122
+ - Remove use of MooseX::Types as MooseX::Types is broken on perl5.8
+ RT#77100 & RT#81121
+
+5.90018 - 2012-10-23 20:55:00
+ - Changed code in test suite so it no longer trips up on recent changes to
+ HTTP::Message.
+
+5.90017 - 2012-10-19 22:33:00
+ - Change Catalyst _parse_attrs so that when sub attr handlers:
+
+ 1) Can return multiple pairs of new attributes.
+ 2) Get their returned attributes passed through the correct attribute handler.
+
+ e.g sub _parse_Whatever_attr { return Chained => 'foo', PathPart => 'bar' }
+
+ Will now work because both new attributes are respected, and the Chained
+ attribute is passed to _parse_Chained_attr and fixed up correctly by that.
+
+ - In Catalyst::Test, don't mangle headers of non-HTML responses. RT#79043
+
+ - Refactor request and response class construction to add methods
+ that roles can hook to feed extra parameters into the constructor
+ of request or response classes.
+
+5.90016 - 2012-08-16 15:35:00
+ - prepare_parameters is no longer an attribute builder. It is now a method
+ that calls the correct underlying functionality (Bill Moseley++)
+ - Updated Makefile.PL to handle MacOXS tar
+ - Fix uri_for to handle a stringifiable object
+ - Fix model/view/controller methods to handle stringifiable objects
+ - Fix RT#78377 - IIS7 ignores response body for 3xx requests, which
+ causes (a different) response to be broken when using keepalive.
+ Fixed by applying Middleware which removes the response body and
+ content length that Catalyst supplies with redirects.
+
+5.90015 - 2012-06-30 16:57:00
+ - Fix $c->finalize_headers getting called twice. RT#78090
+ - Fix test fails in Catalyst-Plugin-Session-State-Cookie. RT#76179
+ - Fix test fails in Catalyst-Plugin-StackTrace
+ - Fix test fails in Test-WWW-Mechanize-Catalyst
+
+5.90014 - 2012-06-26 10:00:00
+
+ - Fix calling finalize_headers before writing body when using $c->write /
+ $c->res->write (fixes RT#76179).
+
+5.90013 - 2012-06-21 10:40:00
+
+ - Release previous TRIAL as stable.
+ - We failed to note in the previous changelog that the Makefile.PL has been
+ improved to make it easier for authors to bootstrap a developer install
+ of Catalyst.
+
+5.90013 - TRIAL 2012-06-07 20:21:00
+
+ New features:
+ - Merge Catalyst::Controller::ActionRole into Catalyst::Controller.
+
+ Bug fixes:
+ - Fix warnings in some matching cases for Action methods with
+ Args(), when using Catalyst::DispatchType::Chained
+
+ - Fix request body parameters to not be undef if no parameters
+ are supplied.
+
+ - Fix action_args config so that it can be specified in the
+ top level config.
+
+ - Fix t/author/http-server.t on Win32
+
+ - Fix use of Test::Aggregate to make tests faster.
+
+5.90012 - 2012-05-16 09:59:00
+
+ Distribution META.yml changes:
+ - author key is now correct, rather than what Module::Install
+ mis-parses from the documentation.
+ - x_authority key added.
+
+ Bug fixes:
+ - Fix request body parameters being multiply rebuilt. Fixes both
+ RT#75607 and CatalystX::DebugFilter
+
+ - Make plugin de-duplication work as intended originally, as whilst
+ duplicate plugins are totally unwise, the C3 error given to the user
+ is less than helpful.
+
+ - Remove dependence on obscure behaviour in B::Hooks::EndOfScope
+ for backward compatibility. This fixes issues with behaviour changes
+ in bleadperl. RT#76437
+
+ - Work around Moose bug RT#75367 which breaks
+ Catalyst::Controller::DBIC::API.
+
+ Documentation:
+ - Fix documentation in Catalyst::Component to show attributes and
+ calling readers, rather than accessing elements in the $self->{} hash
+ directly.
+ - Add note in Catalyst::Component to strongly disrecommend $self->config
+ - Fix vague 'checkout' wording in Catalyst::Utils. RT#77000
+ - Fix documentation for the 'secure' method in Catalyst:Request. RT#76710
+
+5.90011 - 2012-03-08 16:43:00
+
+ Bug fixes:
+ - Simplification of the previous changes to Catalyst::ScriptRunner
+ We now just push $FindBin::Bin/../lib to the @INC path again, but
+ only if one of the dist indicator files (Makefile.PL Build.PL or
+ dist.ini) can be found in $FindBin::Bin/../$_
+ This avoids heuristics when the app is unloaded and therefore
+ works better for extensions which have entire applications in
+ their test suites.
+ - Bug fix to again correctly detect checkouts in dist zilla using
+ applications.
+ - --background option for the server script now only closes
+ STDIN, STDOUT and STDERR. This fixes issues with Log::Dispatch
+ and other loggers which open a file handle when
+ - Change incorrect use of File::Spec->catdir to File::Spec->catfile
+ so that we work on platforms which care about this (VMS?)
+ - Make it more obvious if our PSGI server doesn't pass in a response
+ callback.
+
+5.90010 - 2012-02-18 00:01:00
+
+ Bug fixes:
+ - Fix the previous fix to Catalyst::ScriptRunner which was resulting
+ in the lib directory not being pushed onto @INC.
+ This meant perl ./script/myapp_server.pl failed, however
+ perl -Ilib ./script/myapp_server.pl would succeed.
+
+5.90009 - 2012-02-16 09:06:00
+
+ Bug fixes:
+ - Fix the debug page so that it works as expected with the latest
+ refactoring.
+
+ - The Catalyst::Utils::home function is used to find if the application
+ is a checkout in Catalyst::ScriptRunner. This means that a non-existant
+ lib directory that is relative to the script install location is not
+ included when not running from a checkout.
+
+ - Fix dead links to cpansearch.perl.org to point to metacpan.org.
+
+ - Require the latest version of B::Hooks::EndOfScope (0.10) to avoid an
+ issue with new versions of Module::Runtime (0.012) on perl 5.10
+ which stopped Catalyst::Controller from compiling.
+
+ - In Catalyst::Test, don't mangle headers of non-HTML responses. RT#79043
+
+5.90008 - TRIAL 2012-02-06 20:49:00
+
+ New features and refactoring:
+ - Much of the Catalyst::Engine code has been moved into Catalyst::Request
+ and Catalyst::Response, to be able to better support asynchronous web
+ servers such as Twiggy, by making the application engine more reenterant.
+
+ This change is as a prequel to full asynchronous support inside Catalyst
+ for AnyEvent and IO::Async backends, which allow highly scaleable streaming
+ (for applications such as multi-part XML HTTPRequests, and Websockets).
+
+ Deprecations:
+ - This means that the $c->engine->env method to access the PSGI environment
+ is now deprecated. The accessor for the PSGI env is now on Catalyst::Request
+ as per applications which were using Catalyst::Engine::PSGI
+
+ Catalyst::Engine::PSGI is now considered fully deprecated.
+
+ - The private _dump method in Catalyst::Log is now deprecated. The dumper is
+ not pluggable and which dumper to use should be a user choice. Using
+ an imported Dump() or Dumper() function is less typing than $c->log->_dump
+ and as this method is unused anywhere else in Catalyst, it has been scheduled
+ for removal as a cleanup. Calling this method will now emit a stack trace
+ on first call (but not on subsequent calls).
+
+ Back compatibility fixes:
+ - Applications still using Catalyst::Engine::PSGI as they rely on
+ $c->request->env - this is now the provided (and recommended) way of
+ accessing the raw PSGI environment.
+
+ Tests:
+ - Spurious warnings have been removed from the test suite
+
+ Documentation:
+ - Fix the display of PROJECT FOUNDER and CONTRIBUTORS sections in the
+ documentation. These were erroneously being emitted when the Pod
+ was converted to HTML for search.cpan.org
+
+ - Fix documentation for the build_psgi_app app method. Previously the
+ documentation advised that it provided the psgi app already wrapped
+ in default middleware. This is not the case - it is the raw app psgi
+
+5.90007 - 2011-11-22 20:35:00
+
+ New features:
+ - Implement a match_captures hook which, if it exists on an action,
+ is called with the $ctx and \@captures and is expected to return
+ true to continue the chain matching and false to stop matching.
+ This can be used to implement action classes or roles which match
+ conditionally (for example only matching captures which are integers).
+
+ Bug fixes:
+ - Lighttpd script name fix is only applied for lighttpd versions
+ < 1.4.23. This should fix non-root installs of lighttpd in versions
+ over that.
+ - Prepare_action is now inside a try {} block, so that requests containing
+ bad unicode can be appropriately trapped by
+ Catalyst::Plugin::Unicode::Encoding
+
+5.90006 - 2011-10-25 09:18:00
+
+ New features:
+ - A new 'run_options' class data method has been added to Catalyst.pm
+ This is used to store all the options passed by scripts, allowing
+ application authors to add custom options to their scripts then
+ get them passed through to the application.
+
+ Doumentation:
+ - Clarify that if you manually write your own .psgi file, then optional
+ proxy support (via the using_frontend_proxy config value) will not be
+ enabled unless you explicitly apply the default middlewares from
+ Catalyst, or you apply the middleware manually.
+
+ Bug fixes:
+ - Fix issue due to perl internals bugs in 5.8 and 5.10 (not present in
+ other perl versions) require can pass the context inappropriately,
+ meaning that some methods of loading classes can fail due to void
+ context being passed throuh to make_immutable, causing it to not return
+ a value.
+ This bug caused loading Catalyst::Script::XXX to fail and is fixed
+ both by bumping the Class::Load dependency, and also adding an explicit
+ '1;' to the end of the classes, avoiding the context issue.
+
+ - Fix using_frontend_proxy support in mod_perl by using the psgi wrapped
+ in default middleware in mod_perl context, rather than the raw psgi.
+
+5.90005 - 2011-10-22 13:35:00
+
New features:
- $c->uri_for_action can now take an array of CaptureArgs and Args
easier for the application code to not have to differentiate between
the two.
+ - Catalyst::ScriptRunner has been enhanced so that it will now
+ load and apply traits, making it easier to customise.
+ - MyApp::TraitFor::Script (if it exists) will be applied to all
+ scripts in the application.
+ - MyApp::TraitFor::Script::XXXX will be applied to the relevant script
+ (for example MyApp::TraitFor::Script::Server will be applied to
+ MyApp::Script::Server if it exists, or Catalyst::Script::Server
+ otherwise).
+
Documentation:
- Document how to get the vhost of the request in $c->req->hostname