# This file documents the revision history for Perl extension Catalyst.
+5.90120 - 2018-10-19
+ - avoid problematic test using sysread() on :utf8 filehandles on dev perl
+ versions where this is fatal (starting with 5.29.4). see RT#125843.
+
+5.90119 - 2018-09-24
+ - fix test for changes in MooseX::Getopt 0.73 (RT#127050)
+
+5.90118 - 2018-05-01
+ - fix handling of fragments in uri_for when path is an unblessed string (GH#160)
+ - ensure catalyst.pl is included with dist
+ - drop IO::Scalar prereq
+ - include optional test prereqs as develop prereqs
+ - remove unused developer prereq on Catalyst::Engine::PSGI
+ - use namespace::clean consistently rather than namespace::autoclean
+ - use JSON for test metadata to avoid needing YAML
+ - use JSON::MaybeXS consistently in code
+ - drop unused prereq of HTTP::Request::AsCGI
+ - drop unneeded prereq of Class::Data::Inheritable
+ - fix tests to cope with changes in new versions of Time::HiRes
+ - POD typo and syntax fixes
+
+5.90117 - 2018-01-21
+ - Fixed errors in distribution packaging
+
+5.90116 - 2018-01-19
+ - Switch from Module::Install to Distar (solves problems that MI has with newer Perl) haarg++
+ - Killed Test::Aggregate since its clearly doomed
+ - PR135 - improved test cases for query keywork
+ - PR158 - improved docs for Catalyst::Test
+ - PR157 - improved error response for data_handlers
+ - PR156 - POD fixes
+ - PR154 - Few dependencies
+ - PR152 - Better support for HTTP Patch
+
+5.90115 - 2017-05-01
+ - fixes for silent bad behavior in Catalyst::ScriptRole and 'ensure_class_loaded'
+ (hobbs++)
+ - do not require MXRWO if Moose is new enough to have cored it (ether++)
+ - documentation improvements (ether++)
+ - Encoding documentation improvements (colinnewell++)
+ - Improve documentation and test cases for 'abort_chain_on_error_fix' configuration
+ option (melmothx++)
+ - Better debug output when using Hash::MultiValue (tremor69++)
+ - Fixes for detecting debug terminal size (simonamor++)
+
+5.90114 - 2016-12-19
+ - Fixed regression introduced in the last version (5.90113) which caused
+ application to hang when the action private name contained a string
+ like 'foo/bar..html'. If you are running 5.90113 you should consider this
+ a required update.
+ - Tweaked travis CI script.
+
+5.90113 - 2016-12-15
+ - Fixed issue with $controller->action_for when targeting an action in
+ a namespace nested inside the current controller and the current controller
+ is a 'root' controller.
+ - Enhanced $controller->action_for so that you can reference the 'parent'
+ controller via relative path (eg ->action_for('../foo')).
+ - Backcompat fix for people that made the mistake of doing $c->{stash}
+ - Sort controllers in setup_actions so cross-controller precedence is
+ consistent.
+
+5.90112 - 2016-07-25
+ - Spelling fixes from Debian group.
+ - Fixed regression introduced in last release that caused the code to crap out
+ if you set the encoding to 'undef'.
+
+5.90111 - 2016-07-20
+ - Improved documentation around some of the unicode changes; tests (melmothx++)
+
+5.90110 - 2016-07-20
+ - Better catching of HTTP style exceptions so that you can reliable use one to
+ override many core method.
+ - Documention on better ways to catch and handle Unicode errors
+ - We now check the unicode in your URL request queries and raise an error if the
+ check fails. This was done to be consistent with what we do in other parts of
+ the code (such as in args, or POSTed parameters). If this breaks your code in
+ ways you don't want to fix, you may disable this using the global configuration
+ setting, "do_not_check_query_encoding".
+ - Removed configuration setting, "decode_query_using_global_encoding" since it no
+ longer does anything useful. Query decoding follows from whatever you set the
+ global encoding to, unless you specify an alternative or to not decode.
+
+5.90106 - 2016-07-05
+ - Fixed regression in debug screen rendering of the private names in chained
+ actions caused by commit 5dd46e24eedec447bdfbc4061ed683b5a17a7b0c.
+ - Fixed incorrect date entered for the release of 5.90105
+ - Fixed some incorrect code in a test case that might be causing test fails
+ in some configurations.
+
+5.90105 - 2016-06-08
+ - Tweak some test cases to try and prevent them from failing in limited cases.
+ - Changed how we compose traits onto the response, request, and stats class so
+ that we compose just once at setup time (performance optimization). Also added
+ a debug screen at startup to display composed classes to help with debugging.
+ - Fixed a regressed caused by the changes we made to the way ->state works so that
+ now when you forward to an action and that action throws an exception, $c->state
+ is set to 0, instead of the value of the exeption (this is to be as indicated by
+ the documentation). (cventers++ for reported bug and test case).
+ - Changed the code that detects if you try to set HTTP headers after headers are
+ finalized to not warn if you are just requested the response header state. Tweaked
+ this error message a bit to help people understand it.
+
+5.90104 - 2016-04-04
+ - Merged pull request #131, fix for noisy debug logs when used type constraints
+ in your actions. Additional changes to the developer debug screen output to
+ improve reporting details.
+ - Merged pull request #133, fix for case when a file upload filename contains
+ wide characters which caused the filename to not appear in the uploads hash.
+
+5.90103 - 2015-11-12
+ - More documentation fixes (thanks to the debian maintainers and melmothx++)
+ - Fixed the way we parse subroutine attribute values to fix a regression
+ introduced in 5.90102. This is a recommended upgrade (tsibley++, mst++)
+ - Fixed regression around auto actions that escape by throwing an exception
+ which was introduced in the last release.
+ - Bumped namespace::autoclean dep to latest since tests require -except
+
+5.90102 - 2015-10-29
+ - Better warnings when there's an error reading the psgi.input (billmosley++)
+ - Fixed spurious warnings in uri_for when using no arguments (melmothx++ and
+ paultcochrane++)
+ - Documentation improvements (paultcochrane++)
+ - Improvements to 'search_extra' configuration and tests around using
+ uri_for as a class method (cngarrison++)
+ - Fix when Path() is set and not geting registered as action (grim8634++)
+ - $c->state is now preserved over actions in a chain, and across begin,
+ auto, ->forward and ->detach.
+
+5.90101 - 2015-09-04
+ - Fixed a regression introduced in the last release which caused test
+ case failure when using a version of Perl 5.14 or older.
+
+5.90100 - 2015-08-24
+ - Document using namespace::autoclean with controllers that have actions
+ with type constraints.
+ - Look for type constraints in super classes and consumed roles.
+ - Change the way the stash middleware works to no longer localize $psgi_env.
+ - If you delegate control to a sub Catalyst application, that application
+ may now return information to the parent application via the stash.
+ - Fix for RT#106373 (Issue when you try to install and also have an old
+ version of Test::Mechanize::WWW::Catalyst)
+
+5.90097 - 2015-07-28
+ - $c->uri_for now defines a final argument for setting the URL fragment
+ /URL anchor. This is now the canonical approach to setting a fragment
+ via uri_for.
+ - Reverted how we treat $c->uri_for($path) where $path is a string. When
+ we introduced the UTF-8 work we started encoding stringy paths, which
+ breaks code that did not expect that. We now consider stringy $path to
+ be 'expert' mode and you are expected to perform all nessary encoding.
+
+5.90096 - 2015-07-27
+ - Fixed regression introduced in previous release that prevented a URI
+ fragment from getting properly encoded. Added more tests around this
+ to define behavior better.
+
+5.90095 - 2015-07-27
+ - Minor test case tweak that I hope solve some minor hiesenfails reported
+ on CPAN testers.
+ - (https://github.com/perl-catalyst/catalyst-runtime/pull/109) added som
+ additional directions to how to setup a development sandbox
+ - (https://github.com/perl-catalyst/catalyst-runtime/pull/108) fix bug in
+ encoding where URI fragment seperator '#' in ->uri_for would get encoded.
+
+5.90094 - 2015-07-24
+ - When there is a multipart POST request and the parts have extended
+ HTTP headers, try harder to decode and squeeze a meaningful value
+ out of it before giving up and crying. Updated docs and tests to
+ reflect this change. This should solve problems when your clients
+ are posting multipart form values with special character sets.
+ - Fixed issue where last_error actually returned the first error. Took
+ the change to add a 'pop_errors' to give the inverse of shift_errors.
+ - Merged Pull Requests:
+ - https://github.com/perl-catalyst/catalyst-runtime/pull/95
+ - https://github.com/perl-catalyst/catalyst-runtime/pull/96
+ - https://github.com/perl-catalyst/catalyst-runtime/pull/97
+ - https://github.com/perl-catalyst/catalyst-runtime/pull/98
+ - https://github.com/perl-catalyst/catalyst-runtime/pull/106
+ - https://github.com/perl-catalyst/catalyst-runtime/pull/107
+
+5.90093 - 2015-05-29
+ - Fixed a bug where if you used $res->write and then $res->body, the
+ contents of body would be double encoded (gshank++).
+
+5.90092 - 2015-05-19
+ - Allows you to use a namespace suffix for request, response and stats
+ class traits. Docs and tests for this.
+ - Refactor the change introduced in 5.90091 to solve reported issues (for
+ example Catalyst::Controller::DBIC::API fails its tests) and to be a more
+ conservative refactor (new code more closely resembles the orginal code
+ that has proven to work for years.)
+
+5.90091 - 2015-05-08
+ - Fixed a bug where if an injected component expanded sub components, those
+ sub components would not show up in the startup debug dev console (
+ even though they were actually created).
+
+5.90090 - 2015-04-29
+ - Updated some documention in Catalyst::Request::Upload to clarify behavior
+ that RT ticket reported as confusing or unexpected
+ - Merged all changes from 5.90089_XXX development cycle.
+ - removed a mistaken use of Test::Most, which is not a core Catalyst
+ dependency. Used Test::More instead.
+
+5.90089_004 - 2015-04-28
+ - Added swanky github badges.
+ - Reverted a change to how the stats engine is setup that was incorrect.
+ - New application setup hook 'config_for' which allows one to get the
+ canonical application configuration for a controller, view or model, or
+ a plugin. Can also be used to override and adapt what configuration is
+ retrieved.
+
+5.90089_003 - 2015-04-27
+ - Fixed an issue where a delayed controller that did ACCEPT_CONTEXT would
+ raise an error when registering its actions.
+ - Updated some documentation around route matching.
+ - refactored the setup of injected components to allow you to hook into
+ the injection and do custom injection types.
+
+5.90089_002 - 2015-04-17
+ - Changed the way we check for presence of Type::Tiny in a test case to be
+ more explicit in the version requirement. Hopefully a fix for reported
+ test fail.
+ - When declaring type constraints in Args and CaptureArgs, if you want to
+ use a Moose builtin type (or a custom stringy type that you've already
+ defined and associated with the Moose::TypeRegistry) you must now quote
+ the type name. This is to clearly disambiguate between Moose stringy types
+ and imported types.
+ - Additional changes to type constraint detection to between determine when a
+ type constraint for reference types have a measured number of arguments or
+ not. clarify restriction on reference type constraints.
+ - Several bugs with type constraints and uri_for squashed. More test cases
+ around all the argument type constraints to tighten scope of action.
+ - NEW FEATURE: New method in Catalyst::Utils 'inject_component', which is a core
+ version of the previously external addon 'CatalystX::InjectComponent'. You should
+ start to convert your existing code which uses the stand alone version, since
+ going forward only the core version will be supported. Also the core version in
+ Catalyst::Utils has an additional feature to compose roles into the injected
+ component.
+ - NEW FEATURE: Concepts from 'CatalystX::RoleApplicator' have been moved to core
+ so we now have the follow application attributes 'request_class_traits',
+ 'response_class_traits' and 'stats_class_traits' which allow you to compose
+ traits for these core Catalyst classes without needing to create subclasses. So
+ in general any request or response trait on CPAN that used 'CatalystX::RoleApplicator'
+ should now just work with this core feature. Note that can also set thse roles
+ via new configuration keys, 'request_class_traits', 'response_class_traits'
+ and 'stats_class_traits'. If you use both configuration and application class methods,
+ they are combined.
+ - NEW FEATURE: Core concepts from 'CatalystX::ComponentsFromConfig'. You can now
+ setup components directly from configuration. This could save you some effort and
+ creating 'empty' base classes in your Model/View and Controller directories. This
+ feature is currently limited in that you can only configure components that are
+ 'true' Catalyst components (but you may use Catalyst::Model::Adaptor to proxy
+ stand alone classes...).
+ - Only create a stats object if you are using stats. This is a minor performance
+ optimization, but there's a small chance it is a breaking change, so please
+ report any stats related issues.
+ - Added a developer mode warning if you call a component with arguments that does not
+ expect arguments (for example calling $c->model('Foo', 1,2,3,4) where Myapp::Model::Foo
+ does not ACCEPT_CONTEXT. Only components that ACCEPT_CONTEXT do anything with
+ passed arguments in $c->controller/view/model.
+ - Change the way components are setup so that you can now rely on all components
+ when setting up a component. Previously application scoped components could not
+ reliably use an existing application scoped component as a dependecy for initialization.
+
+5.90089_001 - 2015-03-26
+ - New development branch synched with 5.90085.
+ - NEW FEATURE: Type Constraints on Args/CaptureArgs. Allows you to declare
+ a Moose, MooseX::Types or Type::Tiny named constraint on your Arg or
+ CaptureArg.
+ - When using $c->uri_for (or the derived $c->uri_for_action) and the target
+ action has type constrainted args (or captures), verify that the proposed
+ URL matches the defined args. In general $c->uri_for will be a bit more
+ noisy if the supplied arguments are not correct.
+ - New top level document on Route matching. (Catalyst::RouteMatching). This
+ document is still in development, but is worth review and comments.
+
+5.90085 - 2015-03-25
+ - Small change to Catalyst::Action to prevent autovivication of Args value (dim1++)
+ - Minor typo fixes (Abraxxa++)
+ - Make sure than when using chained actions and when more than one action
+ matches the same path specification AND has Args(0), that we follow the
+ "in a tie, the last action defined wins" rule. There is a small chance
+ this is a breaking change for you. See Catalyst::Upgrading for more.
+ You may use the application configuration setting "use_chained_args_0_special_case"
+ to disable this new behavior, if you must for back-compat reasons.
+ - Added PATCH HTTP Method action attribute shortcut.
+ - Several new configuration options aimed to give improved backwards compatibility
+ for when your URL query parameters or keywords have non UTF-8 encodings.
+ See Catalyst::Upgrading.
+
+5.90084 - 2015-02-23
+ - Small change to the way body parameters are created in order to prevent
+ trying to create parameters twice.
+ - Use new HTTP::Body and code updates to fix issue when POSTed params have
+ non UTF-8 charset encodings or otherwise complex upload parts that are not
+ file uploads. In these cases when Catalyst can't determine what the value of
+ a form upload is, will return an instance of Catalyst::Request::PartData with
+ all the information need to figure it out. Documentation about this corner
+ case. For RT https://rt.cpan.org/Ticket/Display.html?id=101556
+ - Two new application configuration parameters 'skip_body_param_unicode_decoding'
+ and 'skip_complex_post_part_handling' to assist you with any backward
+ compatibility issues with all the new UTF8 work in the most recent stable
+ Catalyst. You may use these settings to TEMPORARILY disable certain new
+ features while you are seeking a long term fix.
+
+5.90083 - 2015-02-16
+ - Fixed typo in support for OPTIONS method matching (andre++)
+ - Stop using $env->{'plack.request.query'} as a query parsing optimization
+ since 1) it doesn't belong to us and 2) there's subtle differences in the
+ way plack parses parameters and catalyst does. This fixes a bug when you
+ are using middleware that uses Plack::Request to do its thing. This change
+ might have subtle impact on query parsing. Please test this change!
+
+5.90082 - 2015-01-10
+ - Fixed a regression created in $response->from_psgi_response and test case
+ to prevent it happening again.
+
+5.90081 - 2015-01-10
+ - created class attribute 'finalized_default_middleware' which determines
+ if the default middleware has been added to the stack yet or not. This
+ removes a horrible hack that polluted the configuration hash. Added
+ test case to prevent regressions.
+
+5.90080 - 2015-01-09
+ - Minor documentation corrections
+ - Make the '79 development series stable
+
+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++)
+
+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.
+
+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
+
+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 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.
+
+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 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.
+
+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 passthrough 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
+ 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 PSGI
+ 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 immediately. 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
+ popular 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 formatting 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 existence 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 (preferring 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 compatibility
+ 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 validation 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 Perl 5.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 MacOSX 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-existent
+ 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.
+
+ Documentation:
+ - 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 through 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 actions
+ 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 responses 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 explicitly 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 Catalyst::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::Upgrading 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:
Bug fixed:
- $c->uri_for will now escape unsafe characters in captures
- ($c->request->captures) and correctly encode utf8 charracters.
+ ($c->request->captures) and correctly encode utf8 characters.
5.80020 2010-02-04 06:51:18
- Restore -p option for pid file in the FastCGI server script.
- Fix the script environment variables MYAPP_PORT and MYAPP_RELOAD RT#52604
- Fix aliasing applications under non-root paths with mod_rewrite in
- some apache versions where %ENV{SCRIPT_NAME} is set to the real name of
+ some Apache versions where %ENV{SCRIPT_NAME} is set to the real name of
the script, by using $ENV{REDIRECT_URL} which contains the non-rewritten
URI.
- Fix usage display when myapp_create.pl is run with no arguments. RT#52630
- Stop warnings when actions are forwarded to during dispatch.
- Remove warnings for using Catalyst::Dispatcher->dispatch_types as this is a
valid method to publicly call on the dispatcher.
- - Args ($c->request->args) and CaptureArgs ($c->request->captrues)
+ - Args ($c->request->args) and CaptureArgs ($c->request->captures)
passed to $c->uri_for with an action object ($c->action) will now
correctly round-trip when args or captures contain / as it is now
correctly uri encoded to %2F.
- Fix POD to refer to ->config(key => $val), rather than
->config->{key} = $val, as the latter form is deprecated.
- Clearer docs for the 'uri_for' method.
- - Fix POD refering to CGI::Cookie. We're using CGI::Simple::Cookie.
+ - Fix POD referring to CGI::Cookie. We're using CGI::Simple::Cookie.
(Forrest Cahoon)
5.80007 2009-06-30 23:54:34
in Catalyst::Engine (kmx)
5.80004 2009-05-18 17:03:23
- - Rename the actions attribute in Catalyt::Controller to
+ - Rename the actions attribute in Catalyst::Controller to
_controller_actions to avoid name clashes with application
controller naming. (random)
- Test for using Moose in components which have a non-Moose base class
- Fix RT#43375 by sorting results before testing them
- Fixes for uri_for_action when using Catalyst::DispatchType::Regex
+ tests from RT#39369 (norbi)
- - Partial rewrite and reoganisation of the C3 docs in
+ - Partial rewrite and reorganization of the C3 docs in
Catalyst::Upgrading based on feedback from kiffin
- If you make your application class immutable and turn off
constructor inlining, Catalyst will die and tell you pass
5.80002 2009-04-22 01:28:36
- Fix CATALYST_DEBUG and MYAPP_DEBUG environment variables
- turning debuging on if defined, rather than if set.
+ turning debugging on if defined, rather than if set.
They now force debugging on or off, taking precedence over
configuration in your application.
- Tests for this
allowing method modifiers on actions to work as expected.
- Provide a reasonable API in Catalyst::Controller for working with
and registering actions, allowing a controller sub-class to replace
- subroutine attributes for action declerations with an alternate
+ subroutine attributes for action declarations with an alternate
syntax.
- Instantiate correct sub-class of Moose::Meta::Class for non-Moose
components where Catalyst forces the creation of a metaclass instance.
parameter used to be ignored, but started breaking if the parameter
was not a hash in 5.8000_04. Extra parameter is now ignored if
it isn't a hashref
- - Fix request argumentss getting corrupted if you override the
+ - Fix request arguments getting corrupted if you override the
dispatcher and call an action which detaches (for
Catalyst::Plugin::Authorization::ACL)
- Fix calling use Catalyst::Test 'MyApp' 'foo' which used to work,
was introduced when attempting to allow "0" as a Path.
5.7013 2008-05-16 18:20:00
- - Provide backwards compatability methods in Catalyst::Stats
+ - Provide backwards compatibility methods in Catalyst::Stats
- Fix subdirs for scripts that run in subdirs more than one level deep.
- Added test and updated docs for handling the Authorization header
under mod_fastcgi/mod_cgi.