# This file documents the revision history for Perl extension Catalyst.
-5.90089_001 - TBA
- - New Feature: Type Constraints on Args/CapturArgs. ALlows you to declare
+ - 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.
+ 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, please!
+ 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++)