X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=Changes;h=4d86d0107e9bbc9317d31efd8a61013e38931251;hp=6ee8ca7cd2acae68665c61920409cae5ae93793b;hb=7064f69b1dfb59d1f3bad647b2097d0320acce8a;hpb=3143ee5f686e48785bc13cf756a4dde97aae682e diff --git a/Changes b/Changes index 6ee8ca7..4d86d01 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,1019 @@ # This file documents the revision history for Perl extension Catalyst. +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 . + + - 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 @@ -32,7 +1046,7 @@ - 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) + documented in Catalyst::Manual::Deployment::nginx::FastCGI) 5.89003 2011-07-28 20:11:50 (TRIAL release) @@ -71,7 +1085,7 @@ - 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 + - Catalyst::Upgrading has been improved, and the status of old Catalyst engines clarified. Deprecations: @@ -410,7 +1424,7 @@ 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 @@ -510,7 +1524,7 @@ - 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 @@ -591,7 +1605,7 @@ - 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. @@ -749,7 +1763,7 @@ - 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 @@ -847,7 +1861,7 @@ 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 @@ -899,7 +1913,7 @@ - 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 @@ -908,7 +1922,7 @@ 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 @@ -998,7 +2012,7 @@ 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. @@ -1039,7 +2053,7 @@ 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, @@ -1238,7 +2252,7 @@ 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.