document changes
[catagits/Catalyst-Runtime.git] / Changes
1 # This file documents the revision history for Perl extension Catalyst.
2
3   - Announcing the repo is now open for development of Perl Catalyst 'Runner'
4   - http://questhub.io/realm/perl/explore/latest/tag/runner
5
6 5.90059_005 - 2014-01-28
7   - Specify newested versions of some middleware in attempt to solve test errors
8     reported while installing.
9
10 5.90059_004 - 2014-01-27
11   - Make sure IO handle objects do 'getline' before sending them to the
12     response callback, to properly support the PSGI specification.
13   - Added some backcompat code when setting a response body to an object
14     that does 'read' but not 'getline'.  Added deprecation notice for this
15     case.  Added docs to Catalyst::Delta.
16   - Catalyst::Delta contains a list of behaviors which will be considered
17     deprecated immediatelty.  Most items have workarounds and tweaks you can
18     make to avoid issues.  These deprecations are targeted for removal/enforcement
19     in the Catalyst 6 release.  Please review and give your feedback.
20   - More middleware to replace inline code (upasana++)
21   - Documentation around Exceptions and how we handle them.
22   - update copyright notices.
23
24 5.90059_003 - 2013-12-24
25   - More documentation about alternative ways to setup middleware.
26   - removed unneeded use of Devel::Dwarn in test case that was causing
27     fails to install (sorry).
28   - When finalizing caught errors, if the error conforms to the interface as
29     described by Plack::Middleware::HTTPExceptions, rethrow it and let the
30     middleware deal with it.
31
32 5.90059_002 - 2013-12-21
33   - We now pass a scalar or filehandle directly to you Plack handler, rather
34     than always use the streaming interface (we are still always using a
35     delayed response callback).  This means that you can make use of Plack
36     middleware like Plack::Middleware::XSendfile and we expect better use of
37     server features (when they exist) like correct use of chunked encoding or
38     properly non blocking streaming when running under a supporting server like
39     Twiggy.  See Catalyst::Delta for more.  This change might cause issues if
40     you are making heaving use of streaming (although in general we expect things
41     to work much better.
42   - In the case when we remove a content body from the response because you set
43     an information status or a no content type status, warn that we are doing so
44     when in debug mode.  You might see additional debugging information to help
45     you find and remove unneeded response bodies.
46   - Updated the code where Catalyst tries to guess a content length when you
47     fail to provide one.  This should cause less issues when trying to guess the
48     length of a funky filehandle.  This now uses Plack::Middleware::ContentLength
49   - Removed custom code to remove body content when the request is HEAD and
50     swapped it for Plack::Middleware::Head
51   - Merged fix for regressions from stable..
52
53 5.90059_001 - 2013-12-19
54   - Removed deprecated Regexp dispatch type from dependency list.  If you are
55     using Regex[p] type dispatching you need to add the standalone distribution
56    'Catalyst::DispatchType::Regex' to you build system NOW or you application
57    will be broken.
58
59 5.90053 - 2013-12-21
60   - Reverted a change in the previous release that moved the setup_log phase
61     to after setup_config.  This change was made to allow people to use
62     configuration that is late loaded (such as via the ConfigLoader Plugin)
63     to setup the plugin.  However it also broke the ability to use the log
64     during plugin setup (ie, it breaks lots of plugins).  Reverting the 
65     change.  See Catalyst::Delta for workarounds.
66
67 5.90052 - 2013-12-18
68
69   - Fixed first block of startup debug messages missing when using a custom
70     logger that gets set at runtime, for example by overriding finalize_config
71   - Give a more descriptive error message when trying to load middleware that
72     does not exist.
73   - Change the way we initialize plugins to fix a bug where when using the 
74     populare ConfigLoader plugin, configs merged are not available for setting
75     up middleware and data handlers (and probably other things as well).
76
77     NOTE: This change might cause issues if you had code that was relying on the
78     broken behavior.  For example external configuration that was being loaded to
79     late to have effect might now take effect.  Please test you code carefully and
80     be aware of this possible issue </NOTE>.
81
82   - You may now also call 'setup_middleware' as a package method if you think
83     that loading middleware via configuration is a weird or broken idea.
84   - Various POD formating fixed.
85   - Improved some documentation about what type of filehandles that ->body can
86     accept and issues that might arise.
87
88 5.90051 - 2013-11-06
89   - Be more skeptical of the existance of $request->env to fix a regression
90     introduced in Catalyst::Action::REST by the previous release
91
92 5.90050 - 2013-11-05
93   - Previously public predicates on the following attributes are now considered
94     private and their method names have been changed to follow Perl convention
95     for internal methods:
96
97       -- Catalyst::Request->has_io_fh ==> _has_io_fh
98       -- Catalyst::Request->has_env ==> _has_env
99       -- Catalyst::Response->has_write_fh ==> _has_write_fh
100
101     These are breaking changes but these methods were never documented and serve
102     no use for external code.  If you are using thing, you need to make the noted
103     change (but please consider finding another way to do what you are trying to
104     do).  t0m++ for code review of Hamburg branch.
105
106 5.90049_006 - 2013-11-04
107   - Fixed case where test could fail when Starman was partly installed (n0body++)
108   - Fixed missing date information in previous release
109
110 5.90049_005 - 2013-10-31
111   - NEW FEATURE:  New Controller action attribute 'Consumes', which allows you
112     to specify the content type of the incoming request.  This makes it easier
113     to create actions that only handle certain content type POST or PUT, such
114     as actions that only handle JSON or actions that only understand classic
115     HTML forms.
116   - NEW FEATURE: Request->body_data is now also populated from classic HTML 
117     Forms using CGI::Struct to support nested data.  For non nested data you
118     should use the classic ->body_parameters method.
119   - Removed PSGI $env keys that are added on the 'plack.request.*' namespace
120     since after discussion it was clear those keys are not part of the public
121     API.  Keys removed: 'plack.request.query', 'plack.request.body', 
122     'plack.request.merged' and 'plack.request.http.body'. Altered some test
123     cases to reflect this change.
124
125 5.90049_004 - 2013-10-18
126   - JSON Data handler looks for both JSON::MaybeXS and JSON, and uses
127     whichever is first (prefering to find JSON::MaybeXS).  This should
128     improve compatibility as you likely already have one installed.
129   - Fixed a warning in the server script (bokutin++)
130   - We now populate various Plack $env keys in order to play nice with
131     downstream middleware or plack apps (and to reduce processing if
132     those keys already exist).  Keys added:
133       - plack.request.query
134       - plack.request.body
135       - plack.request.merged
136       - plack.request.http.body
137     (NOTE: REMOVED IN 5.90049_005)
138   - If incoming input (from a POST or PUT) is not buffered, create the
139     buffer and set the correct psgi env keys to note this for downstream
140     psgi apps / middleware.  This should solve some issues where Catalyst
141     sucks up the body input but its not buffered so downstream apps can't
142     read it (for example FCGI does not buffer).  We now also try to make
143     sure the body content input is reset to the start of the filehandle
144     so that we are polite to downstream middleware /apps.
145   - NEW FEATURE: Catalyst::Response can now pull response from a PSGI
146     specification response.  This makes it easier to host external Plack
147     applications under Catalyst.  See Catalyst::Response->from_psgi_response
148   - NEW FEATURE: New configuration option 'use_hash_multivalue_in_request'
149     will populate $request methods 'parameters', 'body_parameters' and
150     'query_parameters' with an instance of Hash::MultiValue instead of a
151     HashRef.  This is used by Plack and is intended to reduce the need to
152     write defensive logic since you are never sure if an incoming parameter
153     is a scalar or arrayref.
154   - NEW FEATURE: We now experimentally support Net::Async::HTTP::Server
155     and IO-Async based event loops.  Examples will follow.
156
157 5.90049_003 - 2013-09-20
158   - Documented the new body_data method added in the previous release
159   - Merged from master many important bugfixes and forward compatiblity
160     updates, including:
161     - Use modern preferred method for Moose metaclass access and many other
162       small changes to how we use Moose for better forward compat (ether++)
163     - Killed some evil use of $@ (ether++)
164     - spelling fixes and documentation updates (ether++), (gerda++)
165     - use Test::Fatal over Test::Exception (ether++)
166     - Misc. test case fixes to modernize code (ether++)
167     - Added a first pass cpanfile, to try and make it easier to bootstrap
168       a development setup (ether++)
169
170 5.90049_002 - 2013-08-20
171   - Fixed loading middleware from project directory
172   - Fixed some pointless warnings when middleware class lacked VERSION
173   - NEW FEATURE: Declare global 'data_handlers' for parsing HTTP POST/PUT
174     alternative content, and created default JSON handler.  Yes, now Catalyst
175     handles JSON request content out of the box!  More docs eventually but
176     for now see the DATA HANDLERS section in Catalyst.pm (or review the test
177     case t/data_handler.t
178
179 5.90049_001 - 2013-07-26
180   - Declare PSGI compliant Middleware as part of your Catalyst Application via
181     a new configuration key, "psgi_middleware".
182   - Increased lowest allowed module version for Module::Pluggable to be 4.7 (up
183     from 3.4) to solve the fact this is no longer bundled with Perl in v5.18.
184
185 5.90042 - 2013-06-14
186   - Removed more places where an optional dependency shows up in the test
187     suite. Hopefully really fixed the unicode regression introduced in 5.90040
188   - reverted the change we introduced in 5.90040 where a unicode conversion
189     error warned instead of died.  Now it dies again, like in the stand alone
190     plugin
191   - More work to make sure nothing happens with encoding unless you explicitly
192     ask for encoding
193   - Code to hopefully fix an issue where file uploads using the unicode plugin
194     caused trouble.
195
196 5.90041 - 2013-06-14
197   - Bug fix release to fix regressions introduced in previous.  I would consider
198     this a likely upgrade and if you are having trouble with the previous I hope
199     this fixes all of them.
200   - Fix regression with the cored Unicode plugin that broke systems where you are
201     setting encoding type in an external configuration file
202   - Fixed circular dependency introduced when we cored the unicode plugin tests
203   - Fixed a longstanding problem with stats when locale uses , instead of . for
204     number decimals
205   - Fixed some docs that didn't properly date the previous release.
206
207 5.90040 - 2013-06-12
208   ! Stricter checking of attributes in Catalyst::DispatchType::Chained:
209     1) Only allow one of either :CaptureArgs or :Args
210     2) :CaptureArgs() argument must be numeric
211     3) :CaptureArgs() and :Args() arguments cannot be negative
212   - Add Devel::InnerPackage to dependencies, fixing tests on perl 5.17.11
213     as it's been removed from core. RT#84787
214   - New support for closing over the PSGI $writer object, useful for working
215     with event loops.
216   - lets you access a psgix.io socket, if your server supports it, for manual
217     handling of the client - server communication, such as for websockets.
218   - Fix waiting for the server to start in t/author/http-server.t
219   - new config flag 'abort_chain_on_error_fix' that exits immediately when a
220     action in an action chain throws and error (fixes issues where currently
221     the remaining actions are processed and the error is handled at chain
222     termination).
223   - Cored the Encoding plugin.  Now get unicode out of the box by just setting
224     $c->config->{encoding} = 'UTF-8'.  BACKCOMPAT WARNING: If you are using 
225     the Encoding plugin on CPAN, we skip it to avoid double encoding issues, so
226     you should remove it from your plugin list, HOWEVER the 'encoding' config
227     setting is now undef, rather than 'UTF-8' (this was done to avoid breaking
228     people's existing applications) so you should add the encoding setting to 
229     you global config.  There's some other changes between the stand alone
230     plugin and the cored version, if you use it be sure to see Catalyst::Upgrading
231     for more.
232   - minor documentation typo fixes and updates
233
234 5.90030 - 2013-04-12
235   ! POSSIBLE BREAKING CHANGE: Removed Regexp dispatch type from core, and put
236     it in an external package.  If you need Regexp dispatch types you should
237     add "Catalyst-DispatchType-Regex" as a distribution to your build system.
238   - make $app->uri_for and related methods return something sane, when called
239     as an application method, instead of a context method.  Now if you call
240     MyApp::Web->uri_for(...) you will get a generic URI object that you need to
241     resolve manually.
242   - documentation updates around forwarding to chained actions.
243   - Fixed bug when a PSGI engine need to use psgix logger.
244   - Added cpanfile as a way to notice we are a dev checkout.
245   - Added 'x-tunneled-method' HTTP Header method override to match features in
246     Catalyst::Action::REST and in other similar systems on CPAN.
247   - smarter valiation around action attributes.
248
249 5.90020 - 2013-02-22
250   ! Catalyst::Action now defines 'match_captures' so it is no long considered
251     an optional method.  This might break you code if you have made custom
252     action roles/classes where you define 'match_captures'.  You must change
253     your code to use a method modifier (such as 'around').
254   - New match method "Method($HTTP_METHOD)" where $HTTP_METHOD in (GET, POST,
255     PUT, HEAD, DELETE, OPTION) and shortcuts in controllers called "GET, POST
256     PUT, HEAD, DELETE, OPTION").  Tests and documentation.  Please note if you
257     are currently using Catalyst::ActionRole::MatchRequestMethods there may
258     be compatibility issues.  You should remove that actionrole since the built
259     in behavior is compatible on its own.
260   - Initial debug screen now shows HTTP Method Match info
261   - security fixes in the way we handle redirects
262   - Make Catalyst::Engine and Catalyst::Base immutable
263   - Some test and documentation improvements
264
265 5.90019 - 2012-12-04 21:31:00
266   - Fix for perl 5.17.6 (commit g7dc8663). RT#81601
267   - Fix for perl 5.8. RT#61122
268   - Remove use of MooseX::Types as MooseX::Types is broken on perl5.8
269     RT#77100 & RT#81121
270
271 5.90018 - 2012-10-23 20:55:00
272   - Changed code in test suite so it no longer trips up on recent changes to
273     HTTP::Message.
274
275 5.90017 - 2012-10-19 22:33:00
276   - Change Catalyst _parse_attrs so that when sub attr handlers:
277
278     1) Can return multiple pairs of new attributes.
279     2) Get their returned attributes passed through the correct attribute handler.
280
281     e.g sub _parse_Whatever_attr { return Chained => 'foo', PathPart => 'bar' }
282
283     Will now work because both new attributes are respected, and the Chained
284     attribute is passed to _parse_Chained_attr and fixed up correctly by that.
285
286   - In Catalyst::Test, don't mangle headers of non-HTML responses. RT#79043
287
288   - Refactor request and response class construction to add methods
289     that roles can hook to feed extra parameters into the constructor
290     of request or response classes.
291
292 5.90016 - 2012-08-16 15:35:00
293   - prepare_parameters is no longer an attribute builder.  It is now a method
294     that calls the correct underlying functionality (Bill Moseley++)
295   - Updated Makefile.PL to handle MacOXS tar
296   - Fix uri_for to handle a stringifiable object
297   - Fix model/view/controller methods to handle stringifiable objects
298   - Fix RT#78377 - IIS7 ignores response body for 3xx requests, which
299     causes (a different) response to be broken when using keepalive.
300     Fixed by applying Middleware which removes the response body and
301     content length that Catalyst supplies with redirects.
302
303 5.90015 - 2012-06-30 16:57:00
304   - Fix $c->finalize_headers getting called twice. RT#78090
305   - Fix test fails in Catalyst-Plugin-Session-State-Cookie. RT#76179
306   - Fix test fails in Catalyst-Plugin-StackTrace
307   - Fix test fails in Test-WWW-Mechanize-Catalyst
308
309 5.90014 - 2012-06-26 10:00:00
310
311   - Fix calling finalize_headers before writing body when using $c->write /
312     $c->res->write (fixes RT#76179).
313
314 5.90013 - 2012-06-21 10:40:00
315
316   - Release previous TRIAL as stable.
317   - We failed to note in the previous changelog that the Makefile.PL has been
318     improved to make it easier for authors to bootstrap a developer install
319     of Catalyst.
320
321 5.90013 - TRIAL 2012-06-07 20:21:00
322
323  New features:
324   - Merge Catalyst::Controller::ActionRole into Catalyst::Controller.
325
326  Bug fixes:
327   - Fix warnings in some matching cases for Action methods with
328     Args(), when using Catalyst::DispatchType::Chained
329
330   - Fix request body parameters to not be undef if no parameters
331     are supplied.
332
333   - Fix action_args config so that it can be specified in the
334     top level config.
335
336   - Fix t/author/http-server.t on Win32
337
338   - Fix use of Test::Aggregate to make tests faster.
339
340 5.90012 - 2012-05-16 09:59:00
341
342  Distribution META.yml changes:
343   - author key is now correct, rather than what Module::Install
344     mis-parses from the documentation.
345   - x_authority key added.
346
347  Bug fixes:
348   - Fix request body parameters being multiply rebuilt. Fixes both
349     RT#75607 and CatalystX::DebugFilter
350
351   - Make plugin de-duplication work as intended originally, as whilst
352     duplicate plugins are totally unwise, the C3 error given to the user
353     is less than helpful.
354
355   - Remove dependence on obscure behaviour in B::Hooks::EndOfScope
356     for backward compatibility. This fixes issues with behaviour changes
357     in bleadperl. RT#76437
358
359   - Work around Moose bug RT#75367 which breaks
360     Catalyst::Controller::DBIC::API.
361
362  Documentation:
363   - Fix documentation in Catalyst::Component to show attributes and
364     calling readers, rather than accessing elements in the $self->{} hash
365     directly.
366   - Add note in Catalyst::Component to strongly disrecommend $self->config
367   - Fix vague 'checkout' wording in Catalyst::Utils. RT#77000
368   - Fix documentation for the 'secure' method in Catalyst:Request. RT#76710
369
370 5.90011 - 2012-03-08 16:43:00
371
372  Bug fixes:
373   - Simplification of the previous changes to Catalyst::ScriptRunner
374     We now just push $FindBin::Bin/../lib to the @INC path again, but
375     only if one of the dist indicator files (Makefile.PL Build.PL or
376     dist.ini) can be found in $FindBin::Bin/../$_
377     This avoids heuristics when the app is unloaded and therefore
378     works better for extensions which have entire applications in
379     their test suites.
380   - Bug fix to again correctly detect checkouts in dist zilla using
381     applications.
382   - --background option for the server script now only closes
383     STDIN, STDOUT and STDERR. This fixes issues with Log::Dispatch
384     and other loggers which open a file handle when
385   - Change incorrect use of File::Spec->catdir to File::Spec->catfile
386     so that we work on platforms which care about this (VMS?)
387   - Make it more obvious if our PSGI server doesn't pass in a response
388     callback.
389
390 5.90010 - 2012-02-18 00:01:00
391
392  Bug fixes:
393   - Fix the previous fix to Catalyst::ScriptRunner which was resulting
394     in the lib directory not being pushed onto @INC.
395     This meant perl ./script/myapp_server.pl failed, however
396     perl -Ilib ./script/myapp_server.pl would succeed.
397
398 5.90009 - 2012-02-16 09:06:00
399
400  Bug fixes:
401   - Fix the debug page so that it works as expected with the latest
402     refactoring.
403
404   - The Catalyst::Utils::home function is used to find if the application
405     is a checkout in Catalyst::ScriptRunner. This means that a non-existant
406     lib directory that is relative to the script install location is not
407     included when not running from a checkout.
408
409   - Fix dead links to cpansearch.perl.org to point to metacpan.org.
410
411   - Require the latest version of B::Hooks::EndOfScope (0.10) to avoid an
412     issue with new versions of Module::Runtime (0.012) on perl 5.10
413     which stopped Catalyst::Controller from compiling.
414
415   - In Catalyst::Test, don't mangle headers of non-HTML responses. RT#79043
416
417 5.90008 - TRIAL 2012-02-06 20:49:00
418
419  New features and refactoring:
420   - Much of the Catalyst::Engine code has been moved into Catalyst::Request
421     and Catalyst::Response, to be able to better support asynchronous web
422     servers such as Twiggy, by making the application engine more reenterant.
423
424     This change is as a prequel to full asynchronous support inside Catalyst
425     for AnyEvent and IO::Async backends, which allow highly scaleable streaming
426     (for applications such as multi-part XML HTTPRequests, and Websockets).
427
428  Deprecations:
429   - This means that the $c->engine->env method to access the PSGI environment
430     is now deprecated. The accessor for the PSGI env is now on Catalyst::Request
431     as per applications which were using Catalyst::Engine::PSGI
432
433     Catalyst::Engine::PSGI is now considered fully deprecated.
434
435   - The private _dump method in Catalyst::Log is now deprecated. The dumper is
436     not pluggable and which dumper to use should be a user choice. Using
437     an imported Dump() or Dumper() function is less typing than $c->log->_dump
438     and as this method is unused anywhere else in Catalyst, it has been scheduled
439     for removal as a cleanup. Calling this method will now emit a stack trace
440     on first call (but not on subsequent calls).
441
442  Back compatibility fixes:
443   - Applications still using Catalyst::Engine::PSGI as they rely on
444     $c->request->env - this is now the provided (and recommended) way of
445     accessing the raw PSGI environment.
446
447  Tests:
448   - Spurious warnings have been removed from the test suite
449
450  Documentation:
451   - Fix the display of PROJECT FOUNDER and CONTRIBUTORS sections in the
452     documentation. These were erroneously being emitted when the Pod
453     was converted to HTML for search.cpan.org
454
455   - Fix documentation for the build_psgi_app app method. Previously the
456     documentation advised that it provided the psgi app already wrapped
457     in default middleware. This is not the case - it is the raw app psgi
458
459 5.90007 - 2011-11-22 20:35:00
460
461   New features:
462    - Implement a match_captures hook which, if it exists on an action,
463      is called with the $ctx and \@captures and is expected to return
464      true to continue the chain matching and false to stop matching.
465      This can be used to implement action classes or roles which match
466      conditionally (for example only matching captures which are integers).
467
468   Bug fixes:
469    - Lighttpd script name fix is only applied for lighttpd versions
470      < 1.4.23. This should fix non-root installs of lighttpd in versions
471      over that.
472    - Prepare_action is now inside a try {} block, so that requests containing
473      bad unicode can be appropriately trapped by
474      Catalyst::Plugin::Unicode::Encoding
475
476 5.90006 - 2011-10-25 09:18:00
477
478   New features:
479    - A new 'run_options' class data method has been added to Catalyst.pm
480      This is used to store all the options passed by scripts, allowing
481      application authors to add custom options to their scripts then
482      get them passed through to the application.
483
484   Doumentation:
485    - Clarify that if you manually write your own .psgi file, then optional
486      proxy support (via the using_frontend_proxy config value) will not be
487      enabled unless you explicitly apply the default middlewares from
488      Catalyst, or you apply the middleware manually.
489
490   Bug fixes:
491    - Fix issue due to perl internals bugs in 5.8 and 5.10 (not present in
492      other perl versions) require can pass the context inappropriately,
493      meaning that some methods of loading classes can fail due to void
494      context being passed throuh to make_immutable, causing it to not return
495      a value.
496      This bug caused loading Catalyst::Script::XXX to fail and is fixed
497      both by bumping the Class::Load dependency, and also adding an explicit
498      '1;' to the end of the classes, avoiding the context issue.
499
500    - Fix using_frontend_proxy support in mod_perl by using the psgi wrapped
501      in default middleware in mod_perl context, rather than the raw psgi.
502
503 5.90005 - 2011-10-22 13:35:00
504
505   New features:
506
507    - $c->uri_for_action can now take an array of CaptureArgs and Args
508      If you have an action which has both, then you can now say:
509      $c->uri_for_action('/myaction', [@captures, @args]);
510      whereas before you had to say:
511      $c->uri_for_action('/myaction', [@captures], @args);
512      The previous form is still supported, however in many cases it is
513      easier for the application code to not have to differentiate between
514      the two.
515
516    - Catalyst::ScriptRunner has been enhanced so that it will now
517      load and apply traits, making it easier to customise.
518      - MyApp::TraitFor::Script (if it exists) will be applied to all
519        scripts in the application.
520      - MyApp::TraitFor::Script::XXXX will be applied to the relevant script
521        (for example MyApp::TraitFor::Script::Server will be applied to
522        MyApp::Script::Server if it exists, or Catalyst::Script::Server
523        otherwise).
524
525   Documentation:
526
527    - Document how to get the vhost of the request in $c->req->hostname
528      to avoid confusion
529    - Remove documentation showing Global / Regex / Private actionsi
530      as whilst these still exist (and work), they are not recommended.
531    - Remove references to the -Engine flag.
532    - Remove references to the deprecated Catalyst->plugin method
533    - Spelling fixed (and tested) throughout the documentation
534    - Note that wrapping the setup method will not work with method modifiers
535      and provide an alternative.
536
537 5.90004 - 2011-10-11 17:12:00
538
539   Bug fixes:
540
541    - Don't guess engine class names when setting an engine through
542      MyApp->engine_class.
543
544 5.90003 - 2011-10-05 08:32:00
545   Bug fixes:
546
547    - Make default body reponses for 302s W3C compliant. RT#71237
548
549    - Fix issue where groups of attributes to override controller actions
550      in config would be (incorrectly) overwritten, if the parser for that
551      attribute mangled the contents of the attribute. This was found
552      with Catalyst::Controller::ActionRole, where Does => [ '+Foo' ]
553      would be transformed to Does => [ 'Foo' ] and written back to config,
554      whereas Does => '+Foo' would not be changed in config. RT#65463
555
556   Enhancements:
557
558    - Set a matching Content-type for the redirect if Catalyst sets the
559      body. This is for compatibility with a WatchGuard Firewall.
560
561   Backward compatibility fixes:
562
563    - Restore (an almost empty) Catalyst::Engine::HTTP to the dist for old
564      scripts which explictly require Catalyst::Engine::HTTP
565
566   Documentation fixes:
567
568    - Document Catalyst::Plugin::Authentication fails tests unless
569      you use the latest version with Catalyst 5.9
570
571    - Clarify that prepare is called as a class method
572
573    - Clarify use of uri_for further. RT#57011
574
575 5.90002 - 2011-08-22 21:44:00
576   Backward compatibility fixes:
577
578     - Deploying via mod_perl in some cases is fixed by making
579       Catalyst::EngineLoader detect mod_perl in more generic
580       circumstances.
581       https://github.com/miyagawa/Plack/issues/239
582
583   Documentation fixes:
584
585     - Fix incorrect example in Catalyst::PSGI.
586     - Add note that if you are using the PSGI engine, then $c->req->env
587       needs to become $c->engine->env when you upgrade.
588
589 5.90001 - 2011-08-15 22:42
590
591  Realise that we accidentally chopped a digit off the versioning scheme
592  without anyone noticing, which is a bad thing.
593
594  Feel like a fool. Well done t0m.
595
596  Cut another release.
597
598 5.9000 - 2011-08-15 22:18
599
600  See Catalyst::Delta for the major changes in this release.
601
602  Changelog since the last TRIAL release:
603
604    Backward compatibility fixes:
605
606     - Fix calling MyApp->engine_class to set the engine class manually.
607
608     - Re-add a $res->headers->{status} field to Catalyst::Test responses.
609       This _should_ be accessed with $c->res->code instead, but is here
610       for backward compatibility.
611
612    Documentation:
613
614     - Documentation which was in the now removed Catalyst::Engine::* classes
615       has been moved to Catalyst::Manual::Deployment
616
617    Changes:
618
619     - nginx specific behaviour is removed as it is not needed with any
620       web server configuration I can come up with (recommended config is
621       documented in Catalst::Manual::Deployment::nginx::FastCGI)
622
623 5.89003 2011-07-28 20:11:50 (TRIAL release)
624
625  Backward compatibility fixes:
626
627   - Application scripts which have not been upgraded to newer
628     Catalyst::Script::XXX style scripts have been fixed
629
630  Bug fixes:
631
632   - mod_perl handler fixed to work with application classes which have manually
633     been made immutable.
634
635   - Scripts now force the Plack engine choice manually, rather than relying
636     on auto-detection, as the automatic mechanism gets it wrong if (for
637     example) Coro is loaded.
638
639   - Server script option for --fork --keepalive are now handled by loading
640     the Starman server, rather than silently ignored.
641
642   - Server script options for --background and --pid are now fixed by
643     using MooseX::Deamonize
644
645   - Plack middlewares to deal with issues in Lighttpd and IIS6 are now
646     automatically applied to applications and deployments which need them
647     (when there is not a user written .psgi script available).
648     This fixes compatibility with previous stable releases for applications
649     deployed in these environments.
650
651  Enhancements:
652
653   - Catalyst::Test's remote_request method not uses Plack::Test to perform
654     the remote request.
655
656  Documentation:
657   - Added a Catalyst::PSGI manual page with information about writing a .psgi
658     file for your application.
659
660    - Catalyst::Uprading has been improved, and the status of old Catalyst
661      engines clarified.
662
663  Deprecations:
664   - Catalyst::Test's local_request function is now deprecated. You should just
665     use the normal request function against a local server instead.
666
667 5.80033 2011-07-24 16:09:00
668
669  Bug fixes:
670   - Fix Catalyst::Request so that the hostname accessor is not incorrectly
671     populated with 'localhost' if a reverse DNS lookup fails.
672
673   - Fix Path actions debug screen to display number of arguments
674
675   - Fix a regression that prevented configuring attributes for all actions using
676     ->config(actions => { '*' => \%attrs }) from working
677
678   - Append $\ in Catalyst::Response->print to more closely match
679     IO::Handle's behaviour.
680
681   - Fixed situation where a detach($action) from a forward within auto
682     was not breaking out correctly
683
684   - Fix the disable_component_resolution_regex_fallback config setting
685     to also work in the $c->component method.
686
687   - Handle users setting cookies with an undef value by not trying to
688     output that cookie (rather than trying to do so and causing an exception
689     as previously happened). A warning is logged if this occurs in debug
690     mode.
691   - Update tests to ignore $ENV{CATALYST_HOME} where required
692
693   - Change repository metadata to point at git.
694
695   - Clean namespaces in Catalyst::Request::Upload
696
697   - Catalyst::Test: Fixes to action_ok, action_redirect and action_notfound
698     test functions to be better documented, and have better default test
699     names.
700
701   - Update tests to ignore CATALYST_HOME env var.
702
703 5.89002 2011-03-02 11:30:00 (TRIAL release)
704
705  Bug fixes:
706   - Fix a couple of test failures caused by optional dependencies such as FCGI
707     not being installed.
708
709  Refactoring:
710   - Simplified the API for getting a PSGI application code reference for a
711     Catalyst application for use in, for example, .psgi files. See
712     Catalyst::Upgrading for details.
713
714 5.89001 2011-03-01 15:27:00 (TRIAL release)
715
716  Bug fixes:
717   - Fixed command-line argument passing in Catalyst::Script::FastCGI.
718
719   - Fixed Catalyst::Engine::Stomp compatibility. Applications using
720     Catalyst::Engine::Stomp are believed to continue working without
721     any changes with the new Catalyst major version.
722
723   - Fixed issues auto-loading engine with older scripts.
724
725  Known problems:
726   - Catalyst::Engine::Wx is officially unsupported and BROKEN. If you
727     are using this engine then please get in touch with us and we'll
728     be happy to help with the changes it needs to be compatible with
729     the new major version of Catalyst.
730
731  Documentation:
732   - The section of Catalyst::Upgrading describing how to upgrade to version 5.90
733     of Catalyst has been much improved.
734
735 5.80032 2011-02-23 01:10:00
736
737  Bug fixes:
738   - Fix compatibility issue with code which was testing the value of
739     $c->res->body multiple times. Previously this would cause the value
740     to be built, and ergo cause the $c->res->has_body predicate to start
741     returning true.
742     Having a response body is indicated by $c->res->body being defined.
743
744   - Fix bug with calling $upload->slurp multiple times in one request
745     not working as expected as the file handle wasn't returned to
746     the zero position. (Adam Sjøgren)
747
748   - Fix some weird perl 5.8 situations where $c can get squashed unexpectedly
749     in Catalyst::execute
750
751   - Fix chained dispatch where chains were being compared for length (number
752     of private parts in the chain) vs where they are being compared for
753     PathPart length (i.e. number of non-capturing URI elements in your path).
754
755     This bug meant that sometimes multiple Args or CaptureArgs (e.g. /*/*)
756     type paths would be preferred to those with fixed path elements
757     (e.g. /account/*)
758
759  New features:
760    - Add MYAPP_RESTARTER and CATALYST_RESTARTER environment variables to
761      allow the restarter class to be chosen per application or generally.
762
763      This feature was added to enable GUI restarters (such as the soon to
764      be released CatalystX::Restarter::GTK to be enabled more easily by
765      developers without changing their application code.
766
767 5.80031 2011-01-31 08:13:02
768
769  Bug fixes:
770   - Update dependency on MooseX::Role::WithOverloading to ensure that
771     a version which can deal with / depends on a new Package::Stash
772     is installed. (As if some other dependency is pulled in during upgrading
773     which results in new Package::Stash, then it can leave you with a broken
774     version of MooseX::Role::WithOverloading.
775
776   - Fix undef warning in Catalyst::Engine::FastCGI when writing an empty
777     body (e.g. doing a redirect)
778
779 5.89000 2011-01-24 09:28:45 (TRIAL release)
780
781  This is a development release from psgi branch of Catalyst-Runtime.
782
783  Removed features:
784
785   - All of the Catalyst::Engine::* namespace is now gone. Instead we only have
786     one Catalyst::Engine class speaking the PSGI protocol natively. Everything
787     the various Catalyst::Engine:: classes did before is now supposed to happen
788     through PSGI handlers such as Plack::Handler::FCGI,
789     Plack::Handler::HTTP::Server::PSGI, Plack::Handler::Apache2, and so
790     on. However, deployment can still work the same as it did before. The
791     catalyst scripts still exist and continue to work.
792
793     If you find anything that either doesn't work anymore as it did before or
794     anything that could be done before with the various Catalyst::Engine::
795     classes, but can't be done anymore with the single PSGI Catalyst::Engine
796     class, please tell us *now*.
797
798 5.80030 2011-01-04 13:13:02
799
800  New features:
801   - Add a --proc_title option to the FCGI script to set the process
802     title.
803   - Allow the response body to be set to `undef' explicitly to indicate the
804     absence of a body. It can be used to indicate that no body should be sent at
805     all and processing of views should be skipped. This is especially useful for
806     things like X-Sendfile, which now no longer require providing fake response
807     bodies to suppress view processing. In order for this to work, you will also
808     have upgrade Catalyst::Action::RenderView to at least version 0.15.
809
810  Bug fixes:
811   - Deal correctly with GLOB file handles in the response body (setting
812     the Content-Length header appropriately)
813   - Chained dispatch has been fixed to always prefer paths
814     with the minimum number of captures (rather than the
815     maximum number of actions). This means that (for example)
816     a URI path /foo/* made out of 2 actions will take preference
817     to a URI path /*/* made out of 3 actions. Please check your applications
818     if you are using chained action and please write new test to report
819     failing case.
820   - Stop relying on bugs in the pure-perl version of Package::Stash. New
821     versions of Package::Stash load Package::Stash::XS if
822     available. Package::Stash::XS fixes some of the bugs of the pure-perl
823     version, exposing our faulty assumption and breaking things. We now work
824     with both old and new versions of Package::Stash, both with and without
825     Package::Stash::XS being installed. Older versions of Catalyst-Runtime also
826     work with both old and new versions of Package::Stash, but only if
827     Package::Stash::XS is *not* installed.
828
829  Documentation:
830   - Clarify that when forwarding or detaching, the end action associated
831     with the original dispatched action will be run afterwards (fallen)
832
833 5.80029 2010-10-03 16:39:00
834
835  New features:
836   - Add a warning when $c->view is called and cannot locate a default_view
837     or current_view. This clarifies the logging when ::RenderView gets
838     confused.
839
840  Warning fixes:
841   - Deal warning in with Moose >= 1.15 if you add a method called 'meta' to a
842     class which already has one by using _add_meta_method.
843
844 5.80028 2010-09-28 20:49:00
845
846  Bug fixes:
847   - use Class::MOP in Catalyst::Utils.
848
849   - Do not keep a reference to a closed over context in ctx_request, allowing
850     the caller to dispose of the request context at their leisure.
851
852   - Changes to be compatible with bleadperl
853
854 5.80027 2010-09-01 22:14:00
855
856  Bug fixes:
857   - Fix an issue with newly added test cases which depended on Catalyst::Action::RenderView
858
859 5.80026 2010-09-01 15:14:00
860
861  Bug fixes:
862   - Fix so that CATALYST_EXCEPTION_CLASS in MyApp is always respected by
863     not loading Catalyst::Exception in Utils.pm BEGIN, because some Scripts::*
864     load Utils before MyApp.pm
865
866   - Fix warnings with new Moose versions about "excludes" during role
867     application
868
869   - Fix warning from MooseX::Getopt regarding duplicate "help" aliases.
870
871   - parse_on_demand fixed when used in conjunction with debug mode.
872     A regression was introduced in 5.80022 which would cause the body
873     to always be parsed for logging at the end of the request when in
874     debug mode. This has been fixed so that if the body has not been parsed
875     by the time the request is logged, then the body is omitted.
876
877   - Fix show_internal_actions config setting producing warnings in debug
878     mode (RT#59738)
879
880   - Make Catalyst::Test::local_request() set the response base from base href
881     in the returned document so that links can be resolved correctly by
882     Test::WWW::Mechanize::Catalyst
883
884  Refactoring:
885    - moved component name sort that happens in setup_components to
886      locate_components to allow methods to wrap around locate_components
887
888  Documentation:
889     - Fix some typos
890
891     - Advertise Catalyst::Plugin::SmartURI
892
893
894 5.80025 2010-07-29 01:50:00
895
896  New features:
897   - An 'action_class' method has been added to Catalyst::Controller to
898     allow controller base classes, roles or traits
899     (e.g. Catalyst::Controller::ActionRole) to more easily override
900     the default action creation.
901
902  Bug fixes:
903   - Fix the --mech and --mechanize options to the myapp_create.pl script
904     to operate correctly by fixing the options passed down into the script.
905   - Fix controllers with no method attributes (where the action definitions
906     are entirely contained in config). RT#58057
907   - Fix running as a CGI under IIS at non-root locations.
908   - Fix warning about "excludes" during role application
909   - Fix warning from MooseX::Getopt regarding duplicate "help" aliases
910
911  Documentation:
912   - Fix missing - in the docs when describing the --mechanize option at one
913     point.
914   - Explained the common practice how to access the component's config
915     values.
916   - Fixed typo in Catalyst/Script/Server.pm (RT #58474)
917
918 5.80024 2010-05-15 11:55:44
919
920   Bug fixes:
921    - Revert the path resolution behaviour to how it used to work before
922      Catalyst 5.80014_02, so that application paths are (by default)
923      resolved from $ENV{PATH_INFO} and $ENV{SCRIPT_NAME}. This fixes backward
924      compatibility breakage seen by a number of people since that release
925      with mod_rewrite and SSI.
926
927   New features:
928    - Add a use_request_uri_for_path config setting to optionally
929      use the (more correct) $ENV{REQUEST_URI} path resolution behaviour.
930
931   Documentation:
932    - Clarify the documentation for the Catalyst::Stats interface.
933    - Copious documentation about the use_request_uri_for_path feature
934      and the implications of setting this to true/false in
935      Catalyst::Engine::CGI
936
937 5.80023 2010-05-07 23:50:27
938
939   Bug fixes:
940    - Ensure to always cleanup temporary uploaded files in all cases, even
941      when exceptions occur during request processing, using HTTP::Body's
942      ->cleanup feature. (RT#41442)
943    - Ensure that Catalyst::Engine::HTTP's options hash is defined before
944      dereferencing it. (RT#49267)
945    - Fix regex special characters in REDIRECT_URL variable breaking
946      the request base. (2nd part of RT#24951)
947    - Fix not stripping backslashes in DispatchType::Regex::uri_for_action
948
949   New features:
950    - Setting __PACKAGE__->config(enable_catalyst_header => 1); in your MyApp.pm
951      now enables the X-Catalyst header being printed when not in debug mode.
952    - Require CGI::Simple::Cookie version 1.109 to ensure support for the
953      HttpOnly flag
954    - Allow the myapp_test.pl script to be given a list of paths which it
955      will retrieve all of. (RT#53653)
956    - Allow parameterized roles to be applied as plugins.
957    - Allow requiring minimum versions of plugins when loading them.
958
959   Documentation:
960    - The Catalyst::Test::get method is documented as returning the raw
961      response bytes without any character decoding (RT#53678)
962
963   Cleanups:
964    - Removal of $Catalyst::PRETTY_VERSION. Future releases will always have the
965      full and unmangled version number, including trailing zeroes, in
966      $Catalyst::VERSION.
967
968 5.80022 2010-03-28 19:43:01
969
970   New features:
971    - Log an extra line in debug mode with the response status code,
972      the content type and content length if available.
973
974   Refactoring / optimizations:
975    - Display of the end of hit debug messages has been factored out into
976      log_headers, log_request, log_request_headers, log_response,
977      log_response_status_line and log_response_headers methods so that
978      plugins which customise how much information is shown on the debug
979      screen as easy to write.
980    - Make all logging of request and response state get the information from
981      $c->dump_these so that there is a unified point from which to hook
982      in parameter filtering (for example).
983    - $c->model/view/controller have become a lot faster for non-regexp names
984      by using direct hash lookup instead of looping.
985    - IP address => hostname mapping for the server is only done once and cached
986      by Catalyst::Engine::HTTP to somewhat mitigate the problem of people
987      developing on machines pointed at slow DNS servers.
988
989   Bugs fixed:
990     - DispatchType::Index's uri_for_action only returns for actions registered
991       with it (prevents 'index :Path' or similar resolving to the wrong URI)
992     - Make sure to construct Upload objects properly, even if there are
993       multiple Content-Type headers (Closes RT#55976).
994
995 5.80021 2010-03-03 23:02:01
996
997   Bug fixed:
998    - $c->uri_for will now escape unsafe characters in captures
999      ($c->request->captures) and correctly encode utf8 charracters.
1000
1001 5.80020 2010-02-04 06:51:18
1002
1003   New features:
1004     - Allow components to specify additional components to be set up by
1005       overriding the expand_modules method. (Oliver Charles)
1006
1007 5.80019 2010-01-29 01:04:09
1008
1009   Bug fixed:
1010    - Calls to $c->uri_for with private paths as strings (e.g.
1011      $c->uri_for('controller/action', 'arg1', 'arg2') ) no longer have
1012      / encoded to %2F. This is due to $c->uri_for('static', 'css/foo', $bar)
1013      which should not be encoded.
1014      Calls with an action object (rather than a string), or uri_for action
1015      will still encode / in args and captures to %2F
1016
1017    - The above noted / => %2F encoding in uri_for_action or uri_for with
1018      an action object has been fixed to not just encode the first slash in
1019      any set of args/captures.
1020
1021    - nginx and lighttpd FCGI requests with URI encoded sections as the first
1022      path part have been fixed to operate correctly.
1023
1024    - A source of bogus warnings in Catalyst::Component::BUILDARGS has been
1025      removed.
1026
1027   Documentation:
1028    - Improve the documentation about -Home and how Catalyst finds the home path
1029      for applications.
1030    - Various minor typo fixes.
1031
1032   New features:
1033    - Allow passing additional arguments to action constructors.
1034
1035 5.80018 2010-01-12 22:24:20
1036
1037   Bug fixed:
1038    - Call ->canonical on URI derived from $ENV{REQUEST_URI} to get
1039      paths correctly decoded. This bug was previously hidden by a bug
1040      in HTTP::Request::AsCGI.
1041
1042   Documentation:
1043    - Clarify that uri_for_action works on private paths, with example.
1044    - Clarify documentation about debug
1045
1046   Deprecations:
1047    - Saying use Catalyst::Test; (without an application name or () to stop
1048      the importer running is now deprecated and will issue a warning.
1049      You should be saying use Catalyst::Test ();
1050
1051 5.80017 2010-01-10 02:27:29
1052
1053   Documentation:
1054    - Fix docs for ->forward method when passed a class name - this should
1055      be a component name (e.g. View::HTML, not a full class name, like
1056      MyApp::View::HTML).
1057
1058   Bug fixes:
1059    - --daemon and -d options to Catalyst::Script::FastCGI are fixed.
1060    - Fix the debug dump for applications which use Catalyst::Plugin::Session
1061      (RT#52898)
1062    - Fix regression in the case where mod_rewrite is being used to rewrite
1063      requests into a path below your application base introduced with the
1064      %2F related fixes in 5.80014_02.
1065    - Do not crash on SIGHUP if Catalyst::Engine::HTTP->run is not passed the
1066      argv key in the options hash.
1067    - Correctly pass the arguments to Catalyst::Script::Server through to
1068      Catalyst::Engine::HTTP->run so that the server can restart itself
1069      with the correct options on SIGHUP.
1070    - Require new MooseX::MethodAttributes to be compatible with Moose
1071      versions >= 0.93_01
1072    - Require new MooseX::Role::WithOverloading to be compatible with Moose
1073      versions >= 0.93_01
1074
1075   Cleanups:
1076     - Stop suppressing warnings from Class::C3::Adopt::NEXT now that most plugins
1077       have been updated to not use NEXT. If you get warnings then please upgrade
1078       your components or log a bug with the component author if an upgrade is
1079       not available. The Class::C3::Adopt::NEXT documentation contains information
1080       about how to suppress the warnings in your application if you need to.
1081
1082 5.80016 2009-12-11 23:23:33
1083
1084   Bug fixes:
1085
1086    - Fix slurping a file to work correctly with binary on Win32 in the
1087      encoding test controller.
1088
1089   Bug fixes in the new scripts (for applications which have been upgraded):
1090
1091    - Allow --restartdirectory as an option for the Server script, for
1092      backwards compatibility. (Dave Rolsky)
1093    - The --host option for the server script defaulted to localhost, rather
1094      than listening on all interfaces, which was the previous default. (Dave
1095      Rolsky)
1096    - Restore -p option for pid file in the FastCGI server script.
1097    - Fix the script environment variables MYAPP_PORT and MYAPP_RELOAD RT#52604
1098    - Fix aliasing applications under non-root paths with mod_rewrite in
1099      some apache versions where %ENV{SCRIPT_NAME} is set to the real name of
1100      the script, by using $ENV{REDIRECT_URL} which contains the non-rewritten
1101      URI.
1102    - Fix usage display when myapp_create.pl is run with no arguments. RT#52630
1103
1104   New features:
1105
1106    - The __MOP__ hash element is suppressed from being dumped fully
1107      (and instead stringified) when dumping the error screen to be
1108      less packed with information of no use.
1109
1110   Documentation:
1111
1112    - Fix Pod nits (RT#52370)
1113
1114 5.80015 2009-12-02 15:13:54
1115   Bug fixes:
1116    - Fix bug in Catalyst::Engine which would cause a request parsing to end
1117      prematurely in the hypothetical case where calling $engine->read returned
1118      the single character '0'.
1119    - Fix failing tests when combined with new HTTP::Request::AsCGI
1120
1121   Documentation:
1122    - Improved documentation on read and read_chunk methods in Catalyst::Engine.
1123    - Fix reversal of SCRIPT_NAME and PATH_INFO in previously correct nginx
1124      FastCGI documentation introduced in _02.
1125
1126 5.80014_02 2009-12-01 00:55:23
1127   Bug fixes:
1128    - Fix reporting the wrong Content-Length if the response body is an
1129      upgraded string. Strings mean the same thing whether or not they are
1130      upgraded, may get upgraded even after they are encoded, and will
1131      produce the same output either way, but bytes::length returns too big
1132      values for upgraded strings containing characters >127
1133    - Fix t/live_fork.t with bleadperl (RT#52100)
1134    - Set $ENV{PATH_INFO} from $ENV{REQUEST_URI} combined with
1135      $ENV{SCRIPT_NAME} if possible. This is many web servers always fully
1136      decode PATH_INFO including URI reserved characters. This allows us to
1137      tell foo%2cbar from foo%252cbar, and fixes issues with %2F in paths
1138      being incorrectly decoded, resulting in too many path parts (rather
1139      than 1 path part containing a /, on some web servers (at least nginx).
1140      (RT#50082)
1141    - Require new HTTP::Request::AsCGI so that it fully decodes $ENV{PATH_INFO}
1142      in non CGI contexts. (RT#50082)
1143
1144   Refactoring / cleanups:
1145    - NoTabs and Pod tests moved to t/author so that they're not run
1146      (and then skipped) normally.
1147
1148   Documentation:
1149     - Fix Pod nits in Catalyst::Response (RT#51818)
1150
1151 5.80014_01 2009-11-22 20:01:23
1152
1153   Bug fixes:
1154    - Filehandle now forced to binmode in CGI and FastCGI engines. This appears
1155      to correct some UTF-8 issues, but may break people's code which relies
1156      on the old behaviour.
1157
1158   Refactoring / cleanups:
1159    - Plugins which inherit from Catalyst::Controller or Catalyst::Component
1160      are deprecated and now issue warnings.
1161
1162 5.80014 2009-11-21 02:51:14
1163
1164    Bug fixes:
1165     - Require MooseX::MethodAttributes 0.17. This in turn requires new
1166       MooseX::Types to stop warnings in Moose 0.91, and correctly supports
1167       role combination of roles containing attributed methods.
1168     - Catalyst::Dispatcher::dispatch_types no longer throws deprecated warnings
1169       as there is no recommended alternative.
1170     - Improved the suggested fix warning when component resolution uses regex
1171       fallback for fully qualified component names.
1172     - Catalyst::Test::local_request sets ->request on the response.
1173     - Log flush moved to the end of setup so that roles and plugins which
1174       hook setup_finalize can log things and have them appear in application
1175       startup, rather than with the first hit.
1176     - Require a newer version of LWP to avoid failing tests.
1177     - Stop warnings when actions are forwarded to during dispatch.
1178     - Remove warnings for using Catalyst::Dispatcher->dispatch_types as this is a
1179       valid method to publicly call on the dispatcher.
1180     - Args ($c->request->args) and CaptureArgs ($c->request->captrues)
1181       passed to $c->uri_for with an action object ($c->action) will now
1182       correctly round-trip when args or captures contain / as it is now
1183       correctly uri encoded to %2F.
1184
1185   Documentation:
1186     - Document no-args call to $c->uri_for.
1187     - Document all top level application configuration parameters.
1188     - Clarify how to fix actions in your application class (which is
1189       deprecated and causes warnings).
1190     - Pod fixes for ContextClosure.
1191     - Fix documentation for go/visit to reference captures and arguments
1192       in the correct order.
1193     - Update $c->forward and $c->state documentation to address scalar
1194       context.
1195     - Pod fix in Catalyst::Request (RT#51490)
1196     - Pod fixes to refer to ::Controller:: rather than ::C:: as the latter
1197       is deprecated (RT#51489)
1198
1199   New features:
1200     - Added disable_component_resolution_regex_fallback config option to
1201       switch off (deprecated) regex fallback for component resolution.
1202     - Added an nginx-specific behavior to the FastCGI engine to allow
1203       proper PATH_INFO and SCRIPT_NAME processing for non-root applications
1204     - Enable Catalyst::Utils::home() to find home within Dist::Zilla built
1205       distributions
1206     - Added the Catalyst::Exception::Interface role defining the interface
1207       exception classes need to implement.
1208     - Added Catalyst::Exception::Basic as a basic implementation of
1209       Catalyst::Exception::Interface and made the existing exception classes
1210       use it.
1211
1212   Refactoring / cleanups:
1213     - Remove documentation for the case_sensitive setting
1214     - Warning is now emitted at application startup if the case_sensitive
1215       setting is turned on. This setting is not used by anyone, not
1216       believed to be useful and adds unnecessary complexity to controllers
1217       and the dispatcher. If you are using this setting and have good reasons
1218       why it should stay then you need to be shouting, now.
1219     - Writing to $c->req->body now fails as doing this never makes sense.
1220
1221 5.80013 2009-09-17 11:07:04
1222
1223    Bug fixes:
1224      - Preserve immutable_options when temporarily making a class mutable in
1225        Catalyst::ClassData as this is needed by new Class::MOP.
1226        This could have potentially caused issues when using the deprecated runtime
1227        plugins feature in an application with plugins which define their own new
1228        method.
1229      - Require new Moose version and new versions of various dependencies
1230        to avoid warnings from newest Moose release.
1231      - Fix go / visit expecting captures and arguments in reverse order.
1232
1233   Documentation:
1234      - Rework the $c->go documentation to make it more clear.
1235      - Additional documentation in Catalyst::Upgrading covering more deprecation
1236        warnings.
1237
1238   Refactoring / cleanups:
1239      - Action methods in the application class are deprecated and applications
1240        using them will now generate a warning at startup.
1241      - The -short option has been removed from catalyst.pl, stopping new
1242        applications from being generated using the ::[MVC]:: naming scheme as
1243        this is deprecated and generates warnings. RT#49771
1244
1245 5.80012 2009-09-09 19:09:09
1246
1247   Bug fixes:
1248      - Fix t/optional_http-server.t test.
1249      - Fix t/optional_http-server-restart.t test.
1250      - Fix duplicate components being loaded at setup time, each component is
1251        now loaded at most once + tests.
1252      - Fix backward compatibility - hash key configured actions are stored in
1253        is returned to 'actions'.
1254      - Fix get_action_methods returning duplicate methods when a method is both
1255        decorated with method attributes and set as an action in config.
1256
1257   Refactoring / cleanups:
1258      - Reduce minimum supported perl version from 5.8.6 to 5.8.4 as there are
1259        many people still running/testing this version with no known issues.
1260
1261   Tests:
1262      - Make the optional_http_server.t test an author only test which must be
1263        run by authors to stop it being broken again.
1264      - Fix recursion warnings in the test suites.
1265
1266 5.80011 2009-08-23 13:48:15
1267
1268   Bug fixes:
1269       - Remove leftovers of the restarter engine. The removed code caused test
1270         failures, which weren't apparent for anyone still having an old version
1271         installed in @INC.
1272
1273 5.80010 2009-08-21 23:32:15
1274
1275   Bug fixes:
1276       - Fix and add tests for a regression introduced by 5.80008.
1277         Catalyst::Engine is now able to send out data from filehandles larger
1278         than the default chunksize of 64k again.
1279
1280 5.80009 2009-08-21 22:21:08
1281
1282   Bug fixes:
1283       - Fix and add tests for generating inner packages inside the COMPONENT
1284         method, and those packages being correctly registered as components.
1285         This fixes Catalyst::Model::DBIC among others.
1286
1287 5.80008 2009-08-21 17:47:30
1288
1289   Bug fixes:
1290        - Fix replace_constructor warning to actually work if you make your
1291          application class immutable without that option.
1292        - Depend on Module::Pluggable 3.9 to prevent a bug wherein components
1293          in inner packages might not be registered. This especially affected
1294          tests.
1295        - Catalyst::Engine::FastCGI - relax the check for versions of Microsoft
1296          IIS. Provides compatibility with Windows 2008 R2 as well as
1297          (hopefully) future versions.
1298        - In tests which depend on the values of environment variables,
1299          localise the environment, then delete only relevant environment
1300          variables (RT#48555)
1301        - Fix issue with Engine::HTTP not sending headers properly in some cases
1302          (RT#48623)
1303        - Make Catalyst::Engine write at least once when finalizing the response
1304          body from a filehandle, even if the write is empty. This avoids fail
1305          when trying to send out an empty response body from a filehandle.
1306        - Catalyst::Engine::HTTP - Accept a fully qualified absolute URI in the
1307          Request-URI of the Request-Line
1308
1309   Refactoring / cleanups:
1310        - Deleted the Restarter engine and its Watcher code. Use the
1311          new Catalyst::Restarter in a recent Catalyst::Devel instead.
1312        - New unit test for Catalyst::Action 'unit_core_action.t'
1313        - Bump minimum supported perl version from 5.8.1 to 5.8.6 as there are
1314          known issues with 5.8.3.
1315        - Debug output uses dynamic column sizing to create more readable output
1316          when using a larger $ENV{COLUMNS} setting. (groditi)
1317
1318   New features:
1319        - Added private_path method for Catalyst::Action
1320        - Allow uri_for($controller_instance) which will produce a URI
1321          for the controller namespace
1322        - Break setup_components into two more parts: locate_components and
1323          expand_component_module (rjbs)
1324        - Allow Components to return anon classed from their COMPONENT method
1325          correctly, and have action registration work on Controllers returned
1326          as such by adding a catalyst_component_name accessor for all components
1327          which returns the component instance's name to be used when building
1328          actions etc.
1329        - Adding X-Forwarded-Port to allow the frontend proxy to dictate the
1330          frontend port (jshirley)
1331        - Added Catalyst::Stats->created accessor for the time at the start of
1332          the request.
1333
1334   Documentation:
1335        - Fix POD to refer to ->config(key => $val), rather than
1336          ->config->{key} = $val, as the latter form is deprecated.
1337        - Clearer docs for the 'uri_for' method.
1338        - Fix POD refering to CGI::Cookie. We're using CGI::Simple::Cookie.
1339          (Forrest Cahoon)
1340
1341 5.80007 2009-06-30 23:54:34
1342
1343   Bug fixes:
1344        - Don't mangle query parameters passed to uri_for
1345          - Tests for this (Byron Young + Amir Sadoughi)
1346        - Inherited controller methods can now be specified in
1347          config->{action(s)}
1348        - Assigning an undef response body no longer produces warnings
1349        - Fix C3 incompatibility bug caused if you use Moose in MyApp.pm and
1350          add Catalyst to the right hand side of this in @ISA.
1351        - Make Catalyst.pm implement the Component::ApplicationAttribute
1352          interface so defining actions in MyApp.pm works again, if the
1353          actions have attributes that cause $self->_application to be used
1354          (like ActionClass).
1355
1356   New features:
1357        - Add optional second argument to uri_with which appends to existing
1358          params rather than replacing them. (foo=1 becomes foo=1&foo=2 when
1359          uri_with({ foo => 2 }, { mode => 'append' }) is called on a foo=1
1360          URI.
1361
1362 5.80006 2009-06-29 23:37:47
1363
1364   Bug fixes:
1365         - Revert change to URL encode things passed into $c->uri_for
1366           Args and CaptureArgs as this causes breakage to pre-existing
1367           applications.
1368         - Remove use of Test::MockObject as it doesn't install from CPAN
1369           in some environments.
1370         - Remove use of dclone to deep copy configs and replace with
1371           Catalyst::Utils::merge_hashes which has the same effect, of
1372           ensuring child classes don't inherit their parent's config,
1373           except works correctly with closures.
1374         - Add Class::C3::reinitialize into Catalyst::Test to avoid weird
1375           bugs in ctx_request (bokutin in RT#46459)
1376         - Fix issues with _parse_PathPrefix_attr method in Catalyst::Controller
1377           (jasonk in RT#42816)
1378         - Fix bugs with action sorting:
1379           - Path actions sorted so that the most specific wins.
1380           - Action methods named default and index fixed.
1381
1382   New features:
1383         - Use ~ as prefix for plugins or action classes which are located in
1384           MyApp::Plugin / MyApp::Action (mo)
1385         - Controller methods without attributes are now considered actions if
1386           they are specified in config->{action(s)} (mo)
1387         - Add Catalyst::Component::ContextClosure as an easy way to create code
1388           references, that close over the context, without creating leaks.
1389
1390   Refactoring / cleanups:
1391         - Clean namespaces in Catalyst::Exception*.
1392         - Turn Catalyst::Exception into an actual class and make the throw
1393           method create instances of it. They can still be used as normal
1394           strings, as before, as they are overloaded to stringify to their
1395           error message.
1396         - Add a rethrow method to Catalyst::Exception.
1397         - Add Catalyst::Exception::Detach and ::Go, and refactor detach() and
1398           go() to use them instead of magic, global strings.
1399           Fixes RT#47366
1400         - Clean up getting metaclass instance and making app class immutable
1401           again in Catalyst::Test
1402
1403 5.80005 2009-06-06 14:40:00
1404
1405   Behaviour changes:
1406         - Arguments ($c->req->args) in Chained dispatch are now automatically
1407           URL decoded to be consistent with Local/Path dispatch
1408
1409   Documentation:
1410         - Clarify correct techniques for Moose controllers (domm)
1411
1412   Bug fixes:
1413         - Further change pushing 'env' attribute down into Catalyst::Engine
1414           to make $c->engine->env work in all cases (kmx)
1415         - Also fix $c->engine->env in Catalyst::Test tests (kmx)
1416           - Tests for this
1417         - Fix Catalyst failing to start if any plugin changed $_ whilst
1418           loading
1419           - Tests for this
1420         - Be stricter about arguments to Args attributes for Chained actions,
1421           so that they blow up on load instead of causing undefined behavior
1422           later on
1423           - Tests for this
1424         - Prefer Path actions with a smaller (or set) number of Args (caelum)
1425           Bug reported here: http://stackoverflow.com/questions/931653/catalyst-action-that-matches-a-single-file-in-the-root-directory/933181#933181
1426           - Tests for this
1427
1428    New features:
1429         - Add $c->req->remote_user to disambiguate from $c->req->user (dwc)
1430         - Require MooseX::MethodAttributes 0.12 so that action methods
1431           (with attributes) can be used in / composed from Moose roles.
1432         - Allow the generation of cookies with the HTTPOnly flag set
1433           in Catalyst::Engine (kmx)
1434
1435 5.80004 2009-05-18 17:03:23
1436         - Rename the actions attribute in Catalyt::Controller to
1437           _controller_actions to avoid name clashes with application
1438           controller naming. (random)
1439         - Test for using Moose in components which have a non-Moose base class
1440           Fixed by 349cda in Moose 0.78
1441         - Fix deprecation message for Catalyst::Dispatcher to refer
1442           to the class actually calling the deprecated method. RT#45741
1443         - Clarify limitations of $request->base and $request->secure.
1444           (Phil Mitchell)
1445         - Add 'use Catalyst' to documentation for a Moose MyApp class as
1446           noted by dmaki.
1447         - Fix so that / (and other special characters) are URL encoded when
1448           passed into $c->uri_for as Args/CaptureArgs
1449         - Fix development server so that $c->engine->env returns the correct
1450           environment
1451         - Require Moose 0.78 to fix metaclass incompatibility issues
1452         - Require MooseX::MethodAttributes 0.10 and use
1453           Moose::Meta::Class->initialize rather than Moose->init_meta to fix
1454           bugs related to having a 'meta' method in your controller
1455         - Fix cases where your application failing to compile could cause perl
1456           to report 'Unknown Error'
1457         - Support adding Moose::Roles to the plugin list. These are applied to
1458           MyApp after plugins have been pushed onto @ISA
1459         - Fix calling $c->req->parameters as the first thing you do when
1460           parse_on_demand is on
1461
1462 5.80003 2009-04-29 16:23:53
1463         - Various POD tweaks. (hdp, dandv)
1464         - Fix formatting error in the regex fallback warning.
1465         - Convert the dispatcher's and restarter engine's BUILD method to
1466           attribute builders to not override the BUILD method from
1467           MooseX::Emulate::Class::Accessor::Fast.
1468         - Fix classes without metaclasses restarting, when not using
1469           B::Hooks::OP::Check::StashChange
1470         - Fix the unattached chain debug table for endpoints with no
1471           parents at all.
1472         - Turn off test aggregation by default. Only aggregate if the
1473           AGGREGATE_TESTS environment variable is set and a recent
1474           Test::Aggregate is available.
1475         - Bump to MooseX::MethodAttributes 0.09, to gain the
1476           get_nearest_methods_with_attributes method allowing methods without
1477           attributes in a subclass to override those with attributes in a
1478           superclass. This fixes CatalystX::CRUD's method of overriding /
1479           disabling functionality from base controllers.
1480         - Bump HTTP::Request::AsCGI dependency to avoid broken version
1481         - Bump Moose dependency to latest version to fix metaclass
1482           incompatibility issues in some cases.
1483         - Additional tests for setup_stats method.
1484         - Fix log levels in Catalyst::Log to be properly additive.
1485         - Fix RT#43375 by sorting results before testing them
1486         - Fixes for uri_for_action when using Catalyst::DispatchType::Regex
1487           + tests from RT#39369 (norbi)
1488         - Partial rewrite and reoganisation of the C3 docs in
1489           Catalyst::Upgrading based on feedback from kiffin
1490         - If you make your application class immutable and turn off
1491           constructor inlining, Catalyst will die and tell you pass
1492           the (replace_constructor => 1) argument to
1493           make_immutable. (Dave Rolsky)
1494
1495 5.80002 2009-04-22 01:28:36
1496         - Fix CATALYST_DEBUG and MYAPP_DEBUG environment variables
1497           turning debuging on if defined, rather than if set.
1498           They now force debugging on or off, taking precedence over
1499           configuration in your application.
1500           - Tests for this
1501         - pass replace_constructor to the immutable call to ensure
1502           applications get a Moose constructor rather than a C::A one
1503         - Fix issues with restarting the application class due to C3 failures
1504           on perl 5.10
1505         - Work around issues in Moose with initialization order of multiple
1506           levels of non-Moose classes inheriting from a Moose class
1507           - Test for this
1508         - Add backwards compatibility method for Catalyst::Log->body, which
1509           has been made private
1510         - Fix so that calling $c->req->parameters(undef) does not flatten
1511           the request parameters with undef + test
1512         - Fix so that width of table of unattached actions for debugging
1513           ::DispatchType::Chained varies according to your terminal width
1514           (Oleg Kostyuk)
1515         - Fix warning message about linearized @ISA in Catalyst::Component
1516           (Emanuele Zeppieri)
1517         - Require MX::MethodAttributes 0.06 to avoid issues with saying
1518           use base 'Catalyst::Controller'; use Moose; losing actions
1519         - Fix all of's typos in ::Upgrading and ::Delta (hobbs)
1520
1521 5.80001 2009-04-18 22:18
1522         - Don't inline the constructor for Catalyst::Log to avoid a
1523           warning on recent Moose versions.
1524         - Add delta documentation
1525         - Clean up recursion errors
1526         - Extra cross links in dispatch types POD (Ian Wells)
1527         - Test uri_with clears query params when they are set to undef
1528           (Ian Wells)
1529         - Complain about old Catalyst::Devel versions which generated
1530           ->setup(qw/-Debug... etc. as this is not recommended
1531
1532 5.8000_07 2009-04-12 13:37
1533         - Add the Catalyst::Dispatcher->dispatch_type method (ash)
1534         - Throw an exception rather than loading an app if an action
1535           tries to chain to itself
1536           - Tests for this
1537         - Change the $c->visit and $c->go methods to optionally take
1538           CaptureArgs, making them useful to call ActionChains with
1539           - Tests for this (radek)
1540         - Fix _invoke_as_component method to find the proper action instance
1541           for dispatchable actions so that ->visit or ->going to ActionChains
1542           with qw/Class::Name method_name/ works correctly
1543           - Tests for this (radek)
1544         - Added Catalyst::Test::ctx_request to be able to inspect
1545           the context object after a request is made (Jos Boumans)
1546         - debug() POD rewrite (jhannah)
1547         - Change the warning when you have conflicting components to
1548           present a list
1549         - Move NEXT use and testing deprecated features out to its own
1550           test application so that the main TestApp isn't polluted with
1551           spurious warnings
1552         - Add a warning for the old ::[MVC]:: style naming scheme
1553           - Test for this
1554         - Kill Class::C3::Adopt::NEXT warnings for the Catalyst:: namespace
1555           in production versions
1556         - Tidy up Catalyst::ClassData to ensure that all components get
1557           the correct metaclass
1558         - Make MyApp.pm restartable by unsetting setup_finished in
1559           the restarter process
1560         - Non-naive implementation of making mutable on restart using
1561           B::Hooks::OP::Check::StashChange if installed
1562           - Tests for this
1563         - Naive implementation of making all components mutable in the
1564           forked restart watcher process so native Moose apps using
1565           immutable restart correctly.
1566           - Tests for this
1567         - Bump Moose dependency to 0.70 so that we avoid nasty surprises
1568           with is_class_loaded and perl 5.80 when you Moosify MyApp.pm
1569         - Clarify that request arguments aren't unescaped automatically
1570           (Simon Bertrang) (Closes RT#41153)
1571         - Don't require C3 for the MRO test
1572         - Bump MX::Emulate::CAF prereq to support list assignment
1573         - Remove useless column in chained action debug table.
1574         - namespace::clean related cleanups
1575         - Import related cleanups and consistency fixes
1576         - Fix test suite TestApp /dump/env action
1577         - Add $res->code as alias for $res->status
1578         - Make Catalyst::ClassData compatible with the latest Class::MOP::Class
1579           changes. Also depend on the latest Class::MOP.
1580         - Add $c->uri_for_action method.
1581         - Don't stringify the meta method. Use its name instead.
1582         - Use MooseX::MethodAttributes::Inheritable to contain action
1583           attributes. This means that attributes are now represented in the MOP,
1584           allowing method modifiers on actions to work as expected.
1585         - Provide a reasonable API in Catalyst::Controller for working with
1586           and registering actions, allowing a controller sub-class to replace
1587           subroutine attributes for action declerations with an alternate
1588           syntax.
1589         - Instantiate correct sub-class of Moose::Meta::Class for non-Moose
1590           components where Catalyst forces the creation of a metaclass instance.
1591           This is more correct, and avoids metaclass incompatibility in complex
1592           cases
1593           - Tests for this
1594         - Use of deprecated Catalyst::Base now warns.
1595         - Add uri_with tests
1596
1597 5.8000_06 2009-02-04 21:00
1598         - Disallow writing to config after setup
1599         - Disallow calling setup more than once
1600         - Documentation fix regarding overloading of Engine and Dispatcher
1601           instances
1602         - Several documentation typo fixes
1603         - Stop Makefile.PL from warning about versions that fixed a conflict
1604         - Improved upgrading documentation
1605         - Seed the RNG in each FastCGI child process (Andrew Rodland)
1606         - Properly report dynamic bind port for the development server
1607           (Closes RT#38544)
1608         - Use the way documented by IO::Socket::INET to get the error message
1609           after trying to create a listening socket (Closes RT#41828)
1610         - Don't ignore SIGCHLD while handling requests with the dev server
1611           (Closes RT#42962)
1612
1613 5.8000_05 2008-29-01 00:00
1614         - Text::SimpleTable's go as wide as $ENV{COLUMNS} (jhannah)
1615           Patch written by Oleg Kostyuk <cub.uanic@gmail.com>
1616         - Improve docs for visit (mateu)
1617         - Add docs for finalize hook (dhoss)
1618         - Added ru/ua translations to error page
1619         - Improve the clarity and verbosity of the warning when component
1620           resolution uses regex fallback. (jhannah)
1621         - Handle leading CRLF in HTTP requests sometimes sent by IE6 in
1622           keep-alive requests.
1623         - Fixes for FastCGI with IIS 6.0 (janus)
1624         - Passing request method exported by Catalyst::Test an extra
1625           parameter used to be ignored, but started breaking if the parameter
1626           was not a hash in 5.8000_04. Extra parameter is now ignored if
1627           it isn't a hashref
1628         - Fix request argumentss getting corrupted if you override the
1629           dispatcher and call an action which detaches (for
1630           Catalyst::Plugin::Authorization::ACL)
1631         - Fix calling use Catalyst::Test 'MyApp' 'foo' which used to work,
1632           but stopped as the 2nd parameter can be an options hash now
1633         - Bump Moose dependency to fix make_immutable bug
1634         - Use compile time extends in Catalyst::Controller
1635         - Make Catalyst::Request::uploads attribute non-lazy, to fix
1636           test for Catalyst-Engine-Apache
1637         - Bump version of MooseX::Emulate::Class::Accessor::Fast
1638         - Stop using MooseX::Adopt::Class::Accessor::Fast by default, to stop
1639           breaking other packages which use Class::Accessor::Fast
1640         - Remove unused action_container_class attribute from
1641           Catalyst::Dispatcher
1642         - Replace {_body} instance access with calls to _body accessors
1643         - Add backwards compatibility alias methods for private attributes on
1644           Catalyst::Dispatcher which used to be public. Needed by
1645           Catalyst::Plugin::Server and  Catalyst::Plugin::Authorization::ACL
1646         - Fix return value of $c->req->body, which delegates to the body
1647           method on the requests HTTP::Body instance
1648           - Test for this
1649         - Fix calling $c->req->body from inside an overridden prepare_action
1650           method in a plugin, as used by Catalyst::Plugin::Server
1651           - Test for this
1652         - Fix assignment to Catalyst::Dispatcher's preload_dispatch_types and
1653           postload_dispatch_types attributes - assigning a list should later
1654           return a listref. Fixes Catalyst::Plugin::Server.
1655           - Tests for this
1656         - Change streaming test to serve itself rather than 01use.t, making
1657           test sync for engines easier
1658         - Refactor capturing of $app from Catalyst::Controller into
1659           Catalyst::Component::ApplicationAttribute for easier reuse in other
1660           components
1661         - Make the test suites YAML dependency optional
1662         - Make debug output show class name for the engine and dispatcher
1663           rather than the stringified ref.
1664         - Make MyApp immutable at the end of the scope after the setup
1665           method is called, fixing issues with plugins which have their
1666           own new methods by inlining a constructor on MyApp
1667           - Test for this and method modifiers in MyApp
1668         - Fix bug causing Catalyst::Request::Upload's basename method
1669           to return undef
1670           - Test for this (Carl Franks)
1671         - Fix loading of classes which do not define any symbols to not
1672           die, as it didn't in 5.70
1673           - Test for this
1674         - Bump MooseX::Emulate::Class::Accessor::Fast dependency
1675           to force new version which fixes a lot of plugins
1676         - Make log levels additive, and add documentation and tests
1677           for the setup_log method, which previously had none.
1678           Sewn together by from two patches provided by David E. Wheeler
1679         - Switch an around 'new' in Catalyst::Controller to a BUILDARGS
1680           method as it's much neater and more obvious what is going on
1681         - Add a clearer method on request and response _context
1682           attributes, and use if from ::Engine rather than deleting
1683           the key from the instance hash
1684         - Use handles on tree attribute of Catalyst::Stats to replace
1685           trivial delegation methods
1686         - Change the following direct hash accesses into attributes:
1687           Catalyst::Engine: _prepared_write
1688           Catalyst::Engine::CGI: _header_buf
1689           Catalyst::Engine::HTTP: options, _keepalive, _write_error
1690           Catalyst::Request: _path
1691           Catalyst::Stats: tree
1692         - Fix issues in Catalyst::Controller::WrapCGI
1693           and any other components which import (or define) their
1694           own meta method by always explicitly calling
1695           Class::MOP::Object->meta inside Catalyst
1696           - Add test for this
1697         - Add test case for the bug which is causing the
1698           Catalyst::Plugin::Authentication tests to fail
1699         - Fix a bug in uri_for which could cause it to generate paths
1700           with multiple slashes in them.
1701           - Add test for this
1702         - Fix SKIP block name in t/optional_http-server-restart.t,
1703           stopping 'Label not found for "last SKIP"' error from
1704           Test::More
1705         - Workaround max_redirect 0 bug in LWP
1706         - Move live_engine_response_print into aggregate
1707         - Fix dependency bug, s/parent/base/ in new test
1708         - Fix optional tests to run the live tests in the aggregate
1709           dir
1710         - Fix Catalyst->go error in remote tests
1711         - Fix upload test to work with remote servers, don't check for
1712           deleted files
1713         - Fix engine_request_uri tests to work on remote server with
1714           different URI
1715
1716 5.8000_04  2008-12-05 12:15:00
1717         - Silence Class::C3::Adopt::NEXT warnings in the test suite
1718         - Fix loads of 'used once, possible typo' warnings
1719         - Additional tests to ensure upload temp files are deleted
1720         - Remove use of NEXT from the test suite, except for one case
1721           which tests if Class::C3::Adopt::NEXT is working
1722         - Use a predicate to avoid recursion in cases where the uri
1723           method is overridden by a plugin, and calls the base method,
1724           for example Catalyst::Plugin::SmartURI
1725           - Test for this (caelum)
1726         - Compose the MooseX::Emulate::Class::Accessor::Fast role to
1727           Catalyst::Action, Catalyst::Request, and all other modules which
1728           inherit from Class::Accessor::Fast in 5.70.
1729           This fixes:
1730             - Catalyst::Controller::HTML::FormFu (zamolxes)
1731             - Catalyst::Request::REST
1732           - Test for this
1733         - Make hostname resolution lazy (Marc Mims)
1734         - Support mocking virtualhosts in test suite (Jason Gottshall)
1735         - Add README
1736         - Fix TODO list
1737         - Use Class::C3::Adopt::NEXT
1738         - Ignore C3 warnings on 5.10 when testing ensure_class_loaded
1739         - Add TODO test for chained bug (gbjk)
1740         - Fix list address in documentation (zarquon)
1741         - Fix ACCEPT_CONTEXT on MyApp, called as a class method
1742            - Test for this
1743         - Bump MooseX::Emulate::Class::Accessor::Fast version requirement to
1744           get more back compatibility
1745         - Improve documentation for $req->captures (caelum)
1746         - Fix a bug in Catalyst::Stats, stopping garbage being inserted into
1747           the stats if a user calls begin => but no end => (jhannah)
1748            - Test for this (jhannah)
1749         - Trim lines sooner in stats to avoid ugly Text::SimpleTable wrapping
1750           (jhannah)
1751         - Change Catalyst::ClassData to tweak the symbol table inline for
1752           performance after profiling
1753         - Fix POD typo in finalize_error (jhannah)
1754         - Add tests to ensure that we delete the temp files created by
1755           HTTP::Body's OctetStream parser
1756
1757 5.8000_03 2008-10-14 14:13:00
1758         - Fix forwarding to Catalyst::Action objects.
1759         - Fix links to the mailing lists (RT #39754 and Florian Ragwitz).
1760         - Use Class::MOP instead of Class::Inspector.
1761         - Change Catalyst::Test to use Sub::Exporter.
1762         - Fixed typo in Engine::HTTP::Restarter::Watcher causing -r to complain.
1763
1764 5.8000_02 2008-10-14 07:59:00
1765        - Fix manifest
1766
1767 5.8000_01 2008-10-13 22:52:00
1768         - Port to Moose
1769         - Added test for action stringify
1770         - Added test for component instances getting $self->{value} from config.
1771         - Add Catalyst::Response->print() method
1772         - Optionally aggregate tests using Test::Aggregate.
1773         - Additional docs for uri_for to mention how to use $c->action and
1774           $c->req->captures (jhannah)
1775         - List unattached chained actions in Debug mode.
1776         - Pod formatting fix for Engine::FastCGI (Oleg Kostyuk).
1777         - Add visit, a returning ->go
1778
1779 5.7XXXXXX XXXX
1780         - Workaround change in LWP that broke a cookie test (RT #40037)
1781         - Back out go() since that feature's been pushed to 5.80
1782         - Fix some Win32 test failures
1783         - Add pt translation of error message (wreis)
1784         - Make :Chained('../action') work
1785         - Add test actions
1786         - Chained doc improvements (rev 8326-8328)
1787
1788 5.7099_03 2008-07-20 10:10:00
1789         - Fix regressions for regexp fallback in model(), view() and controller()
1790         - Added the supplied argument to the regexp fallback warning for easier
1791           debugging
1792         - Ensure ACCEPT_CONTEXT is called for results from component()
1793
1794 5.7099_02 2008-07-16 19:10:00
1795         - Added PathPrefix attribute
1796         - Removed Catalyst::Build; we've long since moved to Module::Install
1797         - Updated Catalyst::Test docs to mention the use of HTTP::Request
1798           objects
1799
1800 5.7099_01 2008-06-25 22:36:00
1801         - Refactored component resolution (component(), models(), model(), et al). We now
1802           throw warnings for two reasons:
1803           1) model() or view() was called with no arguments, and two results are returned
1804              -- set default_(model|view), current_(model|view) or current_(model|view)_instance
1805              instead
1806           2) you call a component resolution method with a string, and it resorts to a regexp
1807              fallback wherein a result is returned -- if you really want to search, call the
1808              method with a regex as the argument
1809         - remove 0-length query string components so warnings aren't thrown (RT #36428)
1810         - Update HTTP::Body dep so that the uploadtmp config value will work (RT #22540)
1811         - Fix for LocalRegex when used in the Root controller
1812         - Get some of the optional_* tests working from dirs with spaces (RT #26455)
1813         - Fix Catalyst::Utils::home() when application .pm is in the current dir (RT #34437)
1814         - Added the ability to remove parameters in req->uri_with() by passing in
1815           an undef value (RT #34782)
1816         - Added $c->go, to do an internal redispatch to another action, while retaining the
1817           contents of the stash
1818
1819 5.7014  2008-05-25 15:26:00
1820         - Addition of .conf in restart regex in Catalyst::Engine::HTTP::Restarter::Watcher
1821         - Fix regression for relative uri_for arguments after a forward()
1822           introduced in 5.7013 (Peter Karman)
1823         - Fix regression for "sub foo : Path {}" in the root controller which
1824           was introduced when attempting to allow "0" as a Path.
1825
1826 5.7013  2008-05-16 18:20:00
1827         - Provide backwards compatability methods in Catalyst::Stats
1828         - Fix subdirs for scripts that run in subdirs more than one level deep.
1829         - Added test and updated docs for handling the Authorization header
1830           under mod_fastcgi/mod_cgi.
1831         - Fixed bug in HTTP engine where the connection was not closed properly if the
1832           client disconnected before sending any headers. (Ton Voon)
1833         - POD fix, IO::FileHandle => IO::Handle (RT #35690)
1834         - Fix grammar on welcome page (RT #33236)
1835         - Fix for Path('0') handling (RT #29334)
1836         - Workaround for Win32 and c3_mro.t (RT #26452, tested by Kenichi Ishigaki)
1837         - Fix for encoding query parameters
1838         - Fix Chained multiple test
1839
1840 5.7012  2007-12-16 23:44:00
1841         - Fix uri_for()'s and uri_with()'s handling of multibyte chars
1842           (Daisuke Murase)
1843         - Fix __PACKAGE__->config->{foo} = 'bar' case with subclassing
1844         - Add Catalyst::Stats (Jon Schutz)
1845         - Fixed a bug where ?q=bar=baz is decoded as q=>'bar', not 'bar=baz'.
1846           (Tatsuhiko Miyagawa, Masahiro Nagano)
1847         - Fixed a bug where -rr (restart regex) command line option could cause
1848           shell errors. (Aristotle Pagaltzis, Chisel Wright)
1849
1850 5.7011  2007-10-18 20:40:00
1851         - Allow multiple restart directories and added option to follow
1852           symlinks in the HTTP::Restarter engine (Sebastian Willert)
1853         - Fixed t/optional_http-server-restart.t so it actually tests
1854           if the server restarted or notified of an error (Sebastian Willert)
1855         - Return child PID from the HTTP engine when run with the 'background' option.
1856           (Emanuele Zeppieri)
1857         - Fixed bug in HTTP engine where writes could fail with
1858           'Resource temporarily unavailable'.
1859         - Fixed bug where %2b in query parameter is doubly decoded to ' ', instead of '+'
1860           (RT #30087, Gavin Henry, Tatsuhiko Miyagawa, Oleg Pronin)
1861         - Fixed bug where req->base and req->uri would include a port number when running
1862           in SSL mode.
1863         - Removed unnecessary sprintf in debug mode that caused warnings on locales where
1864           commas are used for decimal markers.
1865         - Improved error message for case when server picks up editor save
1866           files as module names. (James Mastros)
1867
1868 5.7010  2007-08-22 07:41:00
1869         - Resource forks in 5.7009
1870
1871 5.7009  2007-08-22 00:14:00
1872         - Moved Manual.pod to Manual.pm and clarified status of
1873           Catalyst-Manual dist
1874         - Doc patches to Catalyst::Controller
1875         - remove ignore_loaded from plugin load, commenting why
1876         - document the ignore_loaded feature in Catalyst::Utils
1877         - Add testing of inline plugins.
1878
1879 5.7008  2007-08-13 08:40:00
1880         - Added $c->request->query_keywords for getting the keywords
1881           (a query string with no parameters).
1882         - Add undef warning for uri_for.
1883         - Fix bug where a nested component would be setup twice.
1884         - Make ensure_class_loaded behave better with malformed class name.
1885         - Make _register_plugin use ensure_class_loaded.
1886         - Remove 'Argument "??" isn't numeric in sprintf' warning.
1887           (Emanuele Zeppieri)
1888         - Fixed a bug where Content-Length could be set to 0 if a filehandle
1889           object in $c->response->body did not report a size.
1890         - Fixed issue where development server running in fork mode did not
1891           properly exit after a write error.
1892           (http://rt.cpan.org/Ticket/Display.html?id=27135)
1893         - Remove warning for captures that are undef.
1894         - Fixed $c->read and parse_on_demand mode.
1895         - Fixed a bug with the HTTP engine where very large response bodies
1896           would not be sent properly.
1897
1898 5.7007  2007-03-13 14:18:00
1899         - Many performance improvements by not using URI.pm:
1900           * $c->uri_for (approx. 8x faster)
1901           * $c->engine->prepare_path (approx. 27x faster)
1902           * $c->engine->prepare_query_parameters (approx. 5x faster)
1903         - Updated HTTP::Body dependency to 0.9 which fixes the following issues:
1904           * Handle when IE sometimes sends an extra CRLF after the POST body.
1905           * Empty fields in multipart/form-data POSTs are no longer ignored.
1906           * Uploaded files with the name "0" are no longer ignored.
1907         - Sending SIGHUP to the dev server will now cause it to restart.
1908         - Allow "0" for a path in uri_for.
1909         - Performance and stability improvements to the built-in HTTP server.
1910         - Don't ignore file uploads if form contains a text field with the same name.
1911           (Carl Franks)
1912         - Support restart_delay of 0 (for use in the POE engine).
1913         - Skip body processing if we don't have a Content-Length header.
1914           Results in about a 9% performance increase when handling GET/HEAD
1915           requests.
1916         - Add a default body to redirect responses.
1917         - MyApp->model/view now looks at MyApp->config->{default_view/model}
1918           (Bogdan Lucaciu)
1919
1920 5.7006   2006-11-15 14.18
1921         - Updated manifest
1922         - Fix Slurp dependency
1923         - Updated HTTP::Body dependency to 0.6, 0.5 can break on large POST
1924           requests.
1925         - Skip utf8 fix for undef values in uri_with() and uri_for()
1926
1927 5.7005   2006-11-07 19:37:35
1928         - Fixed lighttpd tests to be properly skipped.
1929         - Moved IE workarounds to exist only in the HTTP engine.
1930         - Added installation instructions (from Catalyst-Manual dist)
1931
1932 5.7004   2006-11-06 20:48:35
1933         - Fix Engine::HTTP crash when using IE. (Jesper Krogh, Peter Edwards)
1934         - clean up Catalyst::Utils to handle some edge cases
1935         - Properly work around lighttpd PATH_INFO vs. SCRIPT_NAME bug
1936           (Mark Blythe)
1937         - add _application accessor to Catalyst::Base
1938         - Support current_view
1939         - Allow use of Catalyst::Test without app name (Ton Voon, Altinity)
1940         - Catalyst::Manual moved to its own package
1941         - Add option to FastCGI engine to send errors to stdout, not the web server
1942         - Use Module::Install's auto_install to install prerequisite modules
1943         - various documentation fixes and improvements
1944
1945 5.7003   2006-09-21 16:29:45
1946         - Additions and updates to tutorial
1947
1948 5.7002   2006-09-17 19:35:32
1949         - unescape captures to match args
1950         - fix for relative Chained under namespace '' (root)
1951         - fix for hashrefs in action attributes from config
1952         - fix for Chained to require correct number of CaptureArgs
1953
1954 5.7001   2006-07-19 23:46:54
1955         - fix for component loading
1956         - uri_for and uri_with now behave as they used to with non-
1957           array references
1958
1959 5.7000   2006-07-07 08:08:08
1960         - fix FCGI.pm warning message with FastCGI engine
1961         - bumped inc::Module::Install to 0.63 in Makefile.PL
1962         - fixes to uri_for_action for DispatchType::Chained
1963         - Further doc work.
1964         - Minor code cleanups
1965         - Changed catalyst.pl to depend on Catalyst::Devel
1966
1967 5.70_03  2006-06-28 16:42:00
1968         - fixup to registered plugins debug at app startup
1969         - refactored Catalyst::Utils::home
1970
1971 5.70_02  2006-06-27 11:51:00
1972         - Updated tutorial.
1973
1974 5.70_01  2006-06-26 10:49:00
1975
1976         - fixed a Catalyst::Base bug causing duplicate action registrations
1977         - modified DispatchTypes to support multiple registrations
1978         - added Catalyst::Runtime module as dist marker
1979         - added Catalyst::ActionChain and Chained DispatchType
1980         - removed retarded registration requirement in dispatcher
1981         - removed Module::Pluggable::Fast hack in favor of
1982           Module::Pluggable::Object
1983         - extended uri_for, added dispatcher->uri_for_action
1984         - added Catalyst::Base->action_for('methodname')
1985         - checked and tested :Args multimethod dispatch
1986         - added ability to set action attributes from controller config
1987         - added merge_config_hashes() as a convenience method
1988         - Swapped out CGI::Cookie in favour of CGI::Simple::Cookie
1989         - Removed test dependencies on Test::NoWarnings, Test::MockObject
1990         - Removed dependency on UNIVERSAL::require
1991         - Split out Catalyst::Helper into a new distribution
1992         - un-bundled the plugins as they are now pre-reqs for Catalyst::Helper
1993         - nuked each() out of core with prejudice (due to lurking buglets)
1994         - Added tests from phaylon for dispatcher precedence
1995         - Use Class::Inspector->loaded($class) instead of $class->can('can')
1996         - Added ActionClass attribute
1997         - Removed Test::WWW::Mechanize::Catalyst from Makefile.PL (circular dep)
1998         - Updated docs for Catalyst::Component
1999         - Separated execute and dispatch on Catalyst::Action
2000         - cleaned up logging and debug output
2001         - significant documentation revisions
2002         - Added warning for setup being called twice
2003         - Fix pod to use DBIC::Schema instead of DBIC model
2004         - Fix ->config failing to copy _config for subclassing
2005         - Updated log format
2006         - Updated debug dump
2007
2008 5.6902  2006-05-04 13:00:00
2009         - Remove tarballs and OSX metadata files.
2010
2011 5.6901  2006-05-03 11.17:00
2012         - Module::Install didn't overwrite META.yml.
2013
2014 5.6900  2006-05-03 11.17:00
2015         - Stupid pause indexer can't count.
2016         - Better fix for Catalyst::Test
2017         - more tests.
2018
2019 5.682   2006-04-27 13:51:00
2020         - Damn OSX attributes again :(
2021
2022 5.681   2006-04-27 08:47:00
2023         - Updated manifest.
2024         - Add basename to core . (Deprecates Catalyst::Plugin::Basename)
2025
2026 5.68    2006-04-26 12:23:00
2027         - ConfigLoader: Updated to version 0.06
2028         - fixed undef warnings in uri_for() and uri_with()
2029         - Fixed Catalyst::Test to report errors on failed Class load
2030
2031 5.678   2006-04-24 12:30:00
2032         - Re-release of 5.67 without OSX metadata files.
2033
2034 5.67    2006-04-23 08:50:00
2035         - Added $c->req->uri_with() helper
2036         - ConfigLoader: Updated to version 0.05
2037         - Fix up Engine to avoid a new 5.8.8 warning
2038         - Added app name with :: support for PAR
2039         - Added $c->models/views/controllers
2040         - Static::Simple: Unescape the URI path before looking for the file.
2041           This fixes issues with files that have spaces.
2042         - Looping and recursion tests plus a fix
2043         - Added lots of API documentation. Refactored main pod.
2044         - Changed default behaviors for $c->model/$c->controller/$c->view
2045           to more sane settings.
2046         - added the clear_errors method - an alias for error(0)
2047         - Added tmpdir option for uploads (woremacx)
2048         - Applied patch from GEOFFR to allow normal filehandles.
2049         - Refactored Dispatcher internals for better readability and speedup
2050           (stress tests run 12% faster)
2051         - Allow $c->error to run as a class method
2052
2053 5.66    2006-03-10 17:48:00
2054         - Added Test::WWW::Mechanize::Catalyst support
2055         - Cleaned generated tests
2056         - Added Root controller concept
2057         - Updated ConfigLoader plugin to version 0.04
2058
2059 5.65    2006-02-21 10:34:00
2060         - Added plugin introspection.
2061         - Support optional hashref as last param for parameters in uri_for.
2062         - Updated tutorial to be more complete.
2063         - Applied args patch from antirice (Fixes Ticket #67)
2064
2065 5.64    2006-02-07 20:29:00
2066         - Fixed bug in FastCGI proc manager mode where pm_post_dispatch
2067           was not run. (Eric Wong)
2068         - Cleaned up generated tests
2069         - Updated YAML support to use ConfigLoader
2070         - Fixed path dispatch to canonicalise correctly
2071             (see http://dev.catalyst.perl.org/ticket/62)
2072         - Added Catalyst::Manual::About
2073
2074 5.63    2006-01-22 00:00:00
2075         - Updated prereq versions
2076
2077 5.62    2006-01-17 16:30:00
2078         - Large update to the tutorial (castaway)
2079         - Added YAML config support
2080         - Added COMPONENT() and ACCEPT_CONTEXT() support
2081         - Action list in debug mode is now displayed as a tree in the
2082           correct execution order.
2083         - Fixed engine detection to allow custom mod_perl engines.
2084         - Static::Simple: Fixed bug in ignore_dirs under win32.
2085         - Display version numbers of loaded plugins. (Curtis Poe)
2086         - Added class and method for caught exception messages.
2087         - Updated PAR support to use "make catalyst_par",
2088           packages are no longer written by Makefile.PL.
2089         - Automatically determine Content-Length when serving a
2090           filehandle.
2091         - Exceptions now return status 500.
2092         - Updated for Module::Install 0.44.
2093         - Fixed additional file installation for multi level app names.
2094         - Added REDIRECT_URL support for applications running behind
2095           a RewriteRule in Apache. (Carl Franks)
2096         - Fixed FastCGI engine under win32. (Carl Franks)
2097         - FastCGI doc updates (Bill Moseley)
2098         - Bugfix for $c->model and friends (defined).
2099
2100 5.61    2005-12-02 00:00:00
2101         - Fixed ExtUtils::AutoInstall Bootstrap Code in Makefile.PL
2102
2103 5.60    2005-12-01 22:15:00
2104         - Fixed Path and index actions in the appclass,
2105           including those that attach to /
2106         - Index is now weighted higher than Path
2107         - Fixed restarter and -d debug switch in server.pl.
2108         - Added a warning if you attempt to retrieve a parameter
2109           using $c->req->params('foo').
2110         - Fixed the Module::Install::Catalyst @ISA bug
2111
2112 5.59    2005-11-30 13:25:00
2113         - Fixed shebang line for generated scripts
2114         - Fixed forward to classes ($c->forward(qw/MyApp foo/))
2115         - Wrap use block in begin to quelch C:C3 warnings
2116         - Removed scrollbar from debug output
2117         - Fixed catalyst_par_core() and catalyst_par_multiarch()
2118
2119 5.58    2005-11-24 10:51:00
2120         - Added ExtUtils::AutoInstall support
2121         - Allow overriding path in Catalyst::Helper.
2122         - Added -makefile to catalyst.pl to generate a new Makefile.PL.
2123         - Restored Catalyst::Build with a deprecation notice.
2124         - Improved PAR support
2125         - Replaced -short with auto-detection
2126         - Fixed prereqs, added File::Copy::Recursive
2127         - Static::Simple changes:
2128             - Made prepare_action play nice with other plugins by not short-
2129               circuiting.
2130             - Added tmpl to the ignored extensions.
2131             - Fixed security problem if req->path contained '..'.
2132
2133 5.57    2005-11-20 22:45:00
2134         - Updated uri_for to accept undef actions
2135         - Switched to Module::Install
2136         - Renamed tests for easier editing
2137         - Reformatted documentation
2138         - Renamed -nonew to -force
2139         - Added PAR support
2140         - Added keep-alive support and bug fixes to HTTP engine.
2141           (Sascha Kiefer)
2142         - Added daemonize option to FastCGI engine. (Sam Vilain)
2143
2144 5.56   2005-11-16 10:33:00
2145         - Fixed FastCGI engine to not clobber the global %ENV on each
2146           request. (Sam Vilain)
2147         - Updated benchmarking to work with detach
2148         - Fixed dispatcher, so $c->req->action(undef) works again
2149         - Updated Catalyst::Test to use HTTP::Request::AsCGI
2150         - Added -pidfile to external FastCGI server.
2151
2152 5.55    2005-11-15 12:55:00
2153         - Fixed multiple cookie handling
2154
2155 5.54    2005-11-14 22:55:00
2156         - Fixed a Module::Pluggable::Fast related bug
2157
2158 5.53    2005-11-14 15:55:00
2159         - Removed t/04prereq.t that was testing for non-required
2160           modules.
2161
2162 5.52    2005-11-14 10:57:00
2163         - Strip '..'s in static urls to fix security issue.
2164
2165 5.51    2005-11-14 00:45:00
2166         - Changed uri_for to use namespace instead of match.
2167
2168 5.50    2005-11-13 20:45:00
2169         - Fixed minor bugs.
2170         - Updated docs.
2171
2172 5.49_05 2005-11-12 20:45:00
2173         - Large update to the documentation. (David Kamholz)
2174         - Fixed args handling in forward()
2175         - Fixed forwarding to classes
2176         - Fixed catalyst.pl-generated Build.PL Makefile section.
2177         - Fixed relative forwarding
2178         - Fixed forward arrows in debug output
2179
2180 5.49_04 2005-11-09 23:00:00
2181         - Made context, dispatcher, engine, request and response classes
2182           configurable.
2183         - Added $c->stack.
2184         - Fixed dispatcher to ignore unknown attributes.
2185         - Improved format of startup debug log.
2186         - Updated built in server to restart on win32. (Will Hawes)
2187         - Fixed streaming write from a filehandle to stop writing
2188           if the browser is closed.
2189         - Added $c->controller, $c->model and $c->view shortcuts.
2190         - Switched to Text::SimpleTable.
2191
2192 5.49_03 2005-11-03 12:00:00
2193         - Fixed $c->req->{path} for backwards-compatibility.
2194         - Allow debug to be disabled via ENV as well as enabled.
2195         - Added -scripts option to catalyst.pl for script updating
2196         - Changed helpers to default to long types, Controller instead of C
2197         - Added Catalyst::Controller, Catalyst::Model and Catalyst::View
2198           base classes
2199         - Added JavaScript to debug screen to show and hide specific dumps
2200         - Added _DISPATCH, _BEGIN, _AUTO, _ACTION and _END actions
2201         - Added multi process external FastCGI support
2202           (see myapp_fastcgi.pl -help) (Sam Vilain)
2203         - Restarter process in HTTP engine now properly exits when the
2204           parent app is shut down.
2205         - Improved performance of restarter loop while watching for
2206           changed files.
2207         - Restarter will now detect new files added to an app on systems
2208           that change directory mtimes when new files are created.
2209         - Restarter now properly handles modules that are deleted from an
2210           application.
2211         - Fixed memory leak in TestApp.
2212
2213 5.49_02 2005-10-26 12:39:00
2214         - Whole new dispatcher!
2215         - Added index action
2216         - Added path_to method
2217         - Added support for passing an IO::Handle object to $c->res->body.
2218           (Andrew Bramble)
2219         - Added a new welcome screen.
2220         - Included Catalyst buttons and icons in helper.
2221         - Added Static::Simple plugin to core.
2222         - Added self restarting test server
2223         - Added filename to debug output for uploaded files.
2224         - Fixed forwarding with embedded arguments.
2225         - Fixed handling of escaped query strings.
2226         - Added upload parameters back into $c->req->params.
2227         - Added multiple paths support to dispatcher
2228         - Fixed bug in req->path where changing the path added a trailing
2229           slash.
2230         - Removed req->handle and res->handle
2231         - Added prepare_body_chunk method as a hook for upload progress.
2232         - Fixed bug in uri_for method when base has no path.
2233         - Added automated tests for HTTP, CGI, and FastCGI servers.
2234
2235 5.49_01 2005-10-10 10:15:00
2236         - Refactored all internals, should be 99% compatible to previous
2237           versions.
2238         - *IMPORTANT* The Apache engines have been moved to a separate package
2239           for this release.  Please install Catalyst::Engine::Apache if you
2240           need Apache support.
2241
2242         - Added support for calling forward with arguments in the path, i.e.
2243           $c->forward('/foo/bar/arg1/arg2')
2244         - Made $c->req->uri a URI object, added req->path_info for CGI compat.
2245           Raw query string is available as $c->req->uri->query.
2246         - Made $c->req->base a URI object.
2247         - Parameters with multiple values (?a=1&a=2) now display properly
2248           in the debug output.
2249         - Semi-colon separators in query strings now work properly.
2250         - Expanded documentation of catalyst.pl (Andrew Ford)
2251         - Added support for running as a backend server behind a frontend
2252           proxy so req->base and req->address are set properly.
2253         - Added an 'abort' method to the Log api, so that you can
2254           kill loggging for a whole request.
2255         - Added $c->uri_for method to simplify url handling.
2256         - Added more tests and reorganized the t directory.
2257         - Reimplemented core engines, all are now CGI based for better test
2258           coverage and maintainability.
2259         - Added fork support to built in test server.
2260         - Fixed all memory leaks.
2261         - Thread-related bug fixes and tests.  We now believe the Catalyst
2262           core to be thread-safe.
2263         - Added streaming IO support through $c->req->read() and
2264           $c->res->write()
2265         - Added MyApp->config->{parse_on_demand} (streaming input)
2266         - Added $c->req->handle and $c->res->handle
2267         - Improved documentation
2268         - Fixed mkpath in Catalyst::Helper (Autrijus Tang)
2269         - Fixed bug in dispatcher where an invalid path could call a valid
2270           action. (Andy Grundman)
2271         - Fixed Helper so it works with CRLF line-endings. (Andy Grundman)
2272
2273 5.33  2005-08-10 15:25:00
2274         - Now with updated manifest.
2275
2276 5.32  2005-08-10 15:10:00
2277         - Dispatcher might fail if object returns false.
2278
2279 5.31  2005-06-04 12:35:00 (never released to CPAN)
2280
2281         - helpers now create .new files where files already exist and differ
2282         - fixed $Data::Dumper::Terse (Robin Berjon)
2283         - added arguments for detach
2284         - new credits section in POD
2285         - fixed detach to allow relative action names (Matt and Robert)
2286         - added the ability to have whitespaces in Path( '' ) and Regex( '' )
2287
2288 5.30  2005-06-04 12:35:00
2289
2290         - Fixed a bug where it was not possible to $c->forward to a
2291           component
2292           that was not inheriting from Catalyst::Base.
2293         - Fix for inheritance bug.
2294         - Allow forward with arguments.
2295         - Updated cookbook
2296         - Allow overriding home/root in config.
2297         - make module build cons README automatically.
2298         - prettify home path by resolving '..' (Andy Grundman)
2299         - improved helper templates a bit, new naming scheme for tests.
2300         - added support for case sensitivity, MyApp->config->{case_sensitive}
2301         - added $c->detach for non-returning forwards
2302         - added unified error handling, Catalyst::Exception
2303         - added section on param handling in Intro.pod
2304         - added $c->request->cookie
2305         - added Catalyst::Setup
2306         - refactored Catalyst::import()
2307         - improved rendering of error messages in debug mode
2308         - fixed a bug in Catalyst::Helper::mk_dir
2309         - further doc changes, esp. to Intro.pod
2310
2311 5.23  2005-06-03 02:30:00
2312         - added support for non Catalyst::Base components to live in namespace
2313         - improved concurrency connections in Catalyst::Engine::HTTP::Daemon
2314
2315 5.22  2005-05-26 14:24:00
2316         - improved base locating in MP engines
2317         - improved error messages in C::E::HTTP::Daemon
2318         - hostnames are now resolved on demand unless provided by engine
2319         - fixed memory leak in $c->execute (Michael Reece, Matt S Trout)
2320
2321 5.21  2005-05-24 14:56:00
2322         - fixed a bug in https detection
2323         - fixed auto chain finally
2324         - added MYAPP_HOME and CATALYST_HOME environment variables
2325
2326 5.20  2005-05-18 19:52:00
2327         - improved uploads and parameters
2328         - added $c->req->protocol and $c->req->secure
2329         - added $c->req->user and $c->req->uri
2330         - improved error message when forwarding to unknown module
2331         - fixed win32 installer
2332         - added deep recursion detection
2333         - fixed auto actions
2334         - fixed inheritance in dispatcher
2335         - allow whitespaces between brackets and quoted string
2336           in Path and Regex attributes
2337         - new helper templates
2338         - installer now supports install_base and destdir
2339         - allow multiple Catalyst apps to run on the same mod_perl
2340           instance (not the same app!)
2341         - fixed MP2 engines
2342         - removed apreq dependency from all MP engines
2343         - added support for MP registry scripts
2344         - added support for LocationMatch and ScriptAliasMatch in MP engines
2345         - added SpeedyCGI engine
2346
2347 5.10  2005-04-23 11:16:00
2348         - updated dependencies to require latest module::pluggable::fast
2349         - new installer for templates and stuff using Module::Build
2350         - scripts are now prefixed, for being installable
2351         IMPORTANT: You have to regenerate the script directory,
2352         remove Makefile.PL and add Build.PL
2353         - Added compat to install Module::Build if required.
2354         - Improved: Params handling with MP engines
2355         - Fixed: Params handling on POST with CGI engine (Andy Grundman)
2356         - Fixed: Helper.pm on Win32 (Matt S Trout)
2357
2358 5.03  2005-04-19 20:35:00 (Revision 462)
2359         - fixed Test example (Torsten Seeman)
2360         - added Plugins chapter to manual
2361         - applied doc patch from Robert Boone <robert@rlb3.com>
2362         - improved Dispatcher error messages.
2363         - refactored so we don't need to include helper from
2364           Catalyst.pm - Fixes issues with FindBin
2365         - applied HTTP.pm patch from Andy Grundman <andy@hybridized.org>
2366         - added plugin() method for instant plugins
2367         - FCGI is no more considered experimental
2368
2369 5.02  2005-04-18 10:00:00
2370         - fixed manifest
2371
2372 5.01  2005-04-17 23:00:00
2373         - some documentation bugs fixed
2374         - added Catalyst::Utils
2375         - fixed regexp bug (Matt S Trout)
2376         - fixed upload bug with MP19
2377         - added $c->req->body
2378         - aliased $c->res->output to $c->res->body
2379         - Read AUTHOR from passwd or $ENV{AUTHOR} when
2380           generating code.
2381         - extended attribute handling
2382         - added global config for components
2383
2384 5.00  2005-04-15 18:00:00
2385         - new core to support inheritance trees
2386         - new syntax for action declaration
2387         - new helper system using TT2
2388         - problems with mod_perl2 fixed
2389         - added Test::Pod support
2390         - added new server backend with HTTP/1.1 support
2391         - added option to run tests against a remote server
2392         - renamed errors() to error()
2393         - more better docs
2394         - countless minor improvements
2395           IMPORTANT: This release is very incompatible to previous ones
2396           and you have to regenerate the helper scripts again...
2397
2398 4.34  2005-03-23 07:00:00 2005
2399         - added some messages to Makefile.PL
2400         - added Catalyst::Engine::Test
2401         - added Catalyst::Engine::CGI::NPH
2402         - simplified Catalyst::Log to be easier to implement/subclass
2403         - added cgi.pl
2404         - updated Catalyst::Test to use Catalyst::Engine::Test
2405         - updated helper scripts
2406           IMPORTANT: this will be the last time you'll have to regenerate
2407           the script directory. We promise!
2408
2409 4.33  2005-03-23 01:00:00 2005
2410         - documented the log() accessor method in Catalyst (Andrew Ford)
2411         - added optional arguments to Catalyst::Log methods (Andrew Ford)
2412         - removed cgi-server.pl
2413         - added fcgi.pl and Catalyst::Engine::FCGI
2414         - fixed an undef durng make test (Dan Sully)
2415         - new path test (Christian Hansen)
2416           IMPORTANT: you have to regenerate the script directory again
2417
2418 4.32  2005-03-22 02:10:00 2005
2419         - made a damn typo *AAAAAAAAAAAAAAHHHH!!!*
2420
2421 4.31  2005-03-22 02:00:00
2422         - fixed inheritance (Christian Hansen)
2423         - previous release was borked!
2424           fixed that, but you have to regenerate the scripts again :(
2425
2426 4.30  2005-03-21 23:00:00
2427         - more documentation (Andrew Ford)
2428         - added connection informations (Christian Hansen)
2429         - HTTP::Request support in Catalyst::Test (Christian Hansen)
2430         - moved cgi.pl to nph-cgi.pl
2431         - added Catalyst::Engine::Server (Christian Hansen)
2432         - removed Catalyst::Test::server
2433         - updated helper scripts
2434           IMPORTANT: note that you have to regenerate script/server.pl,
2435           script/cgi-server.pl and script/cgi.pl (now nph-cgi.pl)
2436
2437 4.28  2005-03-19 22:00:00
2438         - fixed isa tree (Christian Hansen)
2439         - added script/cgi-server.pl, so no more server restarting after
2440           code changes
2441         - reworked documentation (Andrew Ford <A.Ford@ford-mason.co.uk>)
2442
2443 4.27  2005-03-19 01:00:00
2444         - debug message for parameters
2445         - Fix redirects (Christian Hansen <ch@ngmedia.com>)
2446         - some random fixes
2447         - new helper api for Catalyst::Helper::* support
2448           you have to update script/create.pl to use it
2449
2450 4.26  2005-03-16 10:00:00
2451         - fixed the weird bug that caused regex actions to fail on every
2452           second request
2453         - more debug messages
2454         - 100% pod coverage.
2455
2456 4.25  2005-03-12 18:00:00
2457         - correct perl pathes for helper generated scripts (Tatsuhiko Miyagawa)
2458         - improved cgi engine docs (Christoper Hicks)
2459
2460 4.24  2005-03-12 01:00:00
2461         - updated cookbook example
2462         - fixed base for apache and https (Andrew Ruthven)
2463
2464 4.23  2005-03-09 20:00:00
2465         - no more regex actions in forward
2466         - added support for test directories t/m, t/v and t/c
2467
2468 4.22  2005-03-08 20:00:00
2469         - catch errors in application class
2470         - handle die properly.
2471
2472 4.21  2005-03-05 17:00:00
2473         - fixed docs
2474
2475 4.20  2005-03-04 22:00:00
2476         - moved bin to script
2477
2478 4.13  2005-03-03 11:00:00
2479         - improved documentation
2480         - pod coverage test for helper generated apps
2481         - new helper api
2482
2483 4.12  2005-03-02 11:00:00 2005
2484         - server_base sucks, removed
2485         - added $c->log->dump()
2486
2487 4.11  2005-03-02 11:00:00 2005
2488         - removed some warnings
2489         - improved docs
2490         - private prefixed actions override private non prefixed actions
2491         - added server_base
2492         - updated Catalyst::Manual::Intro
2493
2494 4.10  2005-03-02 10:00:00 2005
2495         - improved documentation
2496         - fixed upload bug
2497         - fixed prefixed private actions bug
2498         - fixed more little bugs
2499
2500 4.01  2005-03-01 10:00:00 2005
2501         - improved documentation
2502         - documentation fixes (Johan Lindstrom)
2503
2504 4.00  2005-02-27 22:00:00
2505         - more verbose debug messages, especially for forward()
2506         - implemented prefixed prvate actions, icluding built in
2507           !?default, !?begin and !?end
2508         - new Catalyst::Manual::Intro
2509         - new helpers, bin/catalyst
2510         - helper api
2511
2512 3.11  2005-02-23 21:00:00
2513         - added dependency to UNIVERSAL::require (Marcus Ramberg)
2514         - added a little workaround for a warning in Catalyst::Test
2515           (Marcus Ramberg)
2516         - improved documentation for actions
2517
2518 3.10  2005-02-19 20:00:00
2519         - removed roles management from Catalyst::Engine
2520           and added it to Catalyst::Plugin::Authentication::CDBI
2521
2522 3.04  2005-02-17 21:00:00
2523         - error reporting for app class
2524         - no more engine debug messages
2525         - class->method forwards get resolved now
2526
2527 3.03  2005-02-16 23:00:00
2528         - friendlier statistics
2529
2530 3.02  2005-02-16 22:00:00
2531         - fixed unintialized actions (Marcus Ramberg)
2532
2533 3.01  2005-02-16 20:30:00
2534         - better statistics
2535
2536 3.00  2005-02-16 20:00:00
2537         - real version number for CPAN.pm
2538         - fixed redirect in CGI engine
2539         - more statistics in debug logs
2540         - ? prefix for forward()
2541
2542 2.99_15  2005-02-02 22:00:00
2543         - support for short namespaces, MyApp::M, MyApp::V and MyApp::C
2544         - Replaced "Catched" with "Caught" in Catalyst::Engine
2545           (Gary Ashton Jones)
2546         - replaced _ with ! for private actions
2547         - added ? for prefixed actions
2548         - misc improvememts
2549
2550 2.99_14  2005-01-31 22:00:00 2005
2551         - arguments for _default
2552         - $c->entrance removed for more flexibility
2553         - added $c->req->method
2554
2555 2.99_13  2005-01-30 18:00:00 2005
2556         - POD fixes and improvements
2557
2558 2.99_12  2005-01-28 22:00:00 2005
2559         - first development release