# This file documents the revision history for Perl extension Catalyst.
+5.90021 - TBA
+ - 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
+
+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
+ If you have an action which has both, then you can now say:
+ $c->uri_for_action('/myaction', [@captures, @args]);
+ whereas before you had to say:
+ $c->uri_for_action('/myaction', [@captures], @args);
+ The previous form is still supported, however in many cases it is
+ 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
+ to avoid confusion
+ - Remove documentation showing Global / Regex / Private actionsi
+ as whilst these still exist (and work), they are not recommended.
+ - Remove references to the -Engine flag.
+ - Remove references to the deprecated Catalyst->plugin method
+ - Spelling fixed (and tested) throughout the documentation
+ - Note that wrapping the setup method will not work with method modifiers
+ and provide an alternative.
+
+5.90004 - 2011-10-11 17:12:00
+
+ Bug fixes:
+
+ - Don't guess engine class names when setting an engine through
+ MyApp->engine_class.
+
+5.90003 - 2011-10-05 08:32:00
+ Bug fixes:
+
+ - Make default body reponses for 302s W3C compliant. RT#71237
+
+ - Fix issue where groups of attributes to override controller actions
+ in config would be (incorrectly) overwritten, if the parser for that
+ attribute mangled the contents of the attribute. This was found
+ with Catalyst::Controller::ActionRole, where Does => [ '+Foo' ]
+ would be transformed to Does => [ 'Foo' ] and written back to config,
+ whereas Does => '+Foo' would not be changed in config. RT#65463
+
+ Enhancements:
+
+ - Set a matching Content-type for the redirect if Catalyst sets the
+ body. This is for compatibility with a WatchGuard Firewall.
+
+ Backward compatibility fixes:
+
+ - Restore (an almost empty) Catalyst::Engine::HTTP to the dist for old
+ scripts which explictly require Catalyst::Engine::HTTP
+
+ Documentation fixes:
+
+ - Document Catalyst::Plugin::Authentication fails tests unless
+ you use the latest version with Catalyst 5.9
+
+ - Clarify that prepare is called as a class method
+
+ - Clarify use of uri_for further. RT#57011
+
+5.90002 - 2011-08-22 21:44:00
+ Backward compatibility fixes:
+
+ - Deploying via mod_perl in some cases is fixed by making
+ Catalyst::EngineLoader detect mod_perl in more generic
+ circumstances.
+ https://github.com/miyagawa/Plack/issues/239
+
+ Documentation fixes:
+
+ - Fix incorrect example in Catalyst::PSGI.
+ - Add note that if you are using the PSGI engine, then $c->req->env
+ needs to become $c->engine->env when you upgrade.
+
+5.90001 - 2011-08-15 22:42
+
+ Realise that we accidentally chopped a digit off the versioning scheme
+ without anyone noticing, which is a bad thing.
+
+ Feel like a fool. Well done t0m.
+
+ Cut another release.
+
+5.9000 - 2011-08-15 22:18
+
+ See Catalyst::Delta for the major changes in this release.
+
+ Changelog since the last TRIAL release:
+
+ Backward compatibility fixes:
+
+ - Fix calling MyApp->engine_class to set the engine class manually.
+
+ - Re-add a $res->headers->{status} field to Catalyst::Test responses.
+ This _should_ be accessed with $c->res->code instead, but is here
+ for backward compatibility.
+
+ Documentation:
+
+ - Documentation which was in the now removed Catalyst::Engine::* classes
+ has been moved to Catalyst::Manual::Deployment
+
+ Changes:
+
+ - nginx specific behaviour is removed as it is not needed with any
+ web server configuration I can come up with (recommended config is
+ documented in Catalst::Manual::Deployment::nginx::FastCGI)
+
+5.89003 2011-07-28 20:11:50 (TRIAL release)
+
+ Backward compatibility fixes:
+
+ - Application scripts which have not been upgraded to newer
+ Catalyst::Script::XXX style scripts have been fixed
+
+ Bug fixes:
+
+ - mod_perl handler fixed to work with application classes which have manually
+ been made immutable.
+
+ - Scripts now force the Plack engine choice manually, rather than relying
+ on auto-detection, as the automatic mechanism gets it wrong if (for
+ example) Coro is loaded.
+
+ - Server script option for --fork --keepalive are now handled by loading
+ the Starman server, rather than silently ignored.
+
+ - Server script options for --background and --pid are now fixed by
+ using MooseX::Deamonize
+
+ - Plack middlewares to deal with issues in Lighttpd and IIS6 are now
+ automatically applied to applications and deployments which need them
+ (when there is not a user written .psgi script available).
+ This fixes compatibility with previous stable releases for applications
+ deployed in these environments.
+
+ Enhancements:
+
+ - Catalyst::Test's remote_request method not uses Plack::Test to perform
+ the remote request.
+
+ Documentation:
+ - Added a Catalyst::PSGI manual page with information about writing a .psgi
+ file for your application.
+
+ - Catalyst::Uprading has been improved, and the status of old Catalyst
+ engines clarified.
+
+ Deprecations:
+ - Catalyst::Test's local_request function is now deprecated. You should just
+ use the normal request function against a local server instead.
+
+5.80033 2011-07-24 16:09:00
+
+ Bug fixes:
+ - Fix Catalyst::Request so that the hostname accessor is not incorrectly
+ populated with 'localhost' if a reverse DNS lookup fails.
+
+ - Fix Path actions debug screen to display number of arguments
+
+ - Fix a regression that prevented configuring attributes for all actions using
+ ->config(actions => { '*' => \%attrs }) from working
+
+ - Append $\ in Catalyst::Response->print to more closely match
+ IO::Handle's behaviour.
+
+ - Fixed situation where a detach($action) from a forward within auto
+ was not breaking out correctly
+
- Fix the disable_component_resolution_regex_fallback config setting
to also work in the $c->component method.
+
- Handle users setting cookies with an undef value by not trying to
output that cookie (rather than trying to do so and causing an exception
as previously happened). A warning is logged if this occurs in debug
mode.
- Update tests to ignore $ENV{CATALYST_HOME} where required
+ - Change repository metadata to point at git.
+
+ - Clean namespaces in Catalyst::Request::Upload
+
+ - Catalyst::Test: Fixes to action_ok, action_redirect and action_notfound
+ test functions to be better documented, and have better default test
+ names.
+
+ - Update tests to ignore CATALYST_HOME env var.
+
+5.89002 2011-03-02 11:30:00 (TRIAL release)
+
+ Bug fixes:
+ - Fix a couple of test failures caused by optional dependencies such as FCGI
+ not being installed.
+
+ Refactoring:
+ - Simplified the API for getting a PSGI application code reference for a
+ Catalyst application for use in, for example, .psgi files. See
+ Catalyst::Upgrading for details.
+
+5.89001 2011-03-01 15:27:00 (TRIAL release)
+
+ Bug fixes:
+ - Fixed command-line argument passing in Catalyst::Script::FastCGI.
+
+ - Fixed Catalyst::Engine::Stomp compatibility. Applications using
+ Catalyst::Engine::Stomp are believed to continue working without
+ any changes with the new Catalyst major version.
+
+ - Fixed issues auto-loading engine with older scripts.
+
+ Known problems:
+ - Catalyst::Engine::Wx is officially unsupported and BROKEN. If you
+ are using this engine then please get in touch with us and we'll
+ be happy to help with the changes it needs to be compatible with
+ the new major version of Catalyst.
+
+ Documentation:
+ - The section of Catalyst::Upgrading describing how to upgrade to version 5.90
+ of Catalyst has been much improved.
+
5.80032 2011-02-23 01:10:00
Bug fixes:
- Fix undef warning in Catalyst::Engine::FastCGI when writing an empty
body (e.g. doing a redirect)
+5.89000 2011-01-24 09:28:45 (TRIAL release)
+
+ This is a development release from psgi branch of Catalyst-Runtime.
+
+ Removed features:
+
+ - All of the Catalyst::Engine::* namespace is now gone. Instead we only have
+ one Catalyst::Engine class speaking the PSGI protocol natively. Everything
+ the various Catalyst::Engine:: classes did before is now supposed to happen
+ through PSGI handlers such as Plack::Handler::FCGI,
+ Plack::Handler::HTTP::Server::PSGI, Plack::Handler::Apache2, and so
+ on. However, deployment can still work the same as it did before. The
+ catalyst scripts still exist and continue to work.
+
+ If you find anything that either doesn't work anymore as it did before or
+ anything that could be done before with the various Catalyst::Engine::
+ classes, but can't be done anymore with the single PSGI Catalyst::Engine
+ class, please tell us *now*.
+
5.80030 2011-01-04 13:13:02
New features: