Fix dead links to cpansearch.perl.org to point to metacpan.org
[catagits/Catalyst-Runtime.git] / Changes
diff --git a/Changes b/Changes
index 331d18f..502fe6e 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,6 +1,438 @@
 # This file documents the revision history for Perl extension Catalyst.
 
-  - Deal with Moose >= 1.15 warning if you add a method called 'meta' to a
+ Bug fixes:
+  - The Catalyst::Utils::home function is used to find if the application
+    is a checkout in Catalyst::ScriptRunner. This means that a non-existant
+    lib directory that is relative to the script install location is not
+    included when not running from a checkout.
+
+  - Fix dead links to cpansearch.perl.org to point to metacpan.org.
+
+5.90008 - TRIAL 2012-02-06 20:49:00
+
+ New features and refactoring:
+  - Much of the Catalyst::Engine code has been moved into Catalyst::Request
+    and Catalyst::Response, to be able to better support asynchronous web
+    servers such as Twiggy, by making the application engine more reenterant.
+
+    This change is as a prequel to full asynchronous support inside Catalyst
+    for AnyEvent and IO::Async backends, which allow highly scaleable streaming
+    (for applications such as multi-part XML HTTPRequests, and Websockets).
+
+ Deprecations:
+  - This means that the $c->engine->env method to access the PSGI environment
+    is now deprecated. The accessor for the PSGI env is now on Catalyst::Request
+    as per applications which were using Catalyst::Engine::PSGI
+
+    Catalyst::Engine::PSGI is now considered fully deprecated.
+
+  - The private _dump method in Catalyst::Log is now deprecated. The dumper is
+    not pluggable and which dumper to use should be a user choice. Using
+    an imported Dump() or Dumper() function is less typing than $c->log->_dump
+    and as this method is unused anywhere else in Catalyst, it has been scheduled
+    for removal as a cleanup. Calling this method will now emit a stack trace
+    on first call (but not on subsequent calls).
+
+ Back compatibility fixes:
+  - Applications still using Catalyst::Engine::PSGI as they rely on
+    $c->request->env - this is now the provided (and recommended) way of
+    accessing the raw PSGI environment.
+
+ Tests:
+  - Spurious warnings have been removed from the test suite
+
+ Documentation:
+  - Fix the display of PROJECT FOUNDER and CONTRIBUTORS sections in the
+    documentation. These were erroneously being emitted when the Pod
+    was converted to HTML for search.cpan.org
+
+  - Fix documentation for the build_psgi_app app method. Previously the
+    documentation advised that it provided the psgi app already wrapped
+    in default middleware. This is not the case - it is the raw app psgi
+
+5.90007 - 2011-11-22 20:35:00
+
+  New features:
+   - Implement a match_captures hook which, if it exists on an action,
+     is called with the $ctx and \@captures and is expected to return
+     true to continue the chain matching and false to stop matching.
+     This can be used to implement action classes or roles which match
+     conditionally (for example only matching captures which are integers).
+
+  Bug fixes:
+   - Lighttpd script name fix is only applied for lighttpd versions
+     < 1.4.23. This should fix non-root installs of lighttpd in versions
+     over that.
+   - Prepare_action is now inside a try {} block, so that requests containing
+     bad unicode can be appropriately trapped by
+     Catalyst::Plugin::Unicode::Encoding
+
+5.90006 - 2011-10-25 09:18:00
+
+  New features:
+   - A new 'run_options' class data method has been added to Catalyst.pm
+     This is used to store all the options passed by scripts, allowing
+     application authors to add custom options to their scripts then
+     get them passed through to the application.
+
+  Doumentation:
+   - Clarify that if you manually write your own .psgi file, then optional
+     proxy support (via the using_frontend_proxy config value) will not be
+     enabled unless you explicitly apply the default middlewares from
+     Catalyst, or you apply the middleware manually.
+
+  Bug fixes:
+   - Fix issue due to perl internals bugs in 5.8 and 5.10 (not present in
+     other perl versions) require can pass the context inappropriately,
+     meaning that some methods of loading classes can fail due to void
+     context being passed throuh to make_immutable, causing it to not return
+     a value.
+     This bug caused loading Catalyst::Script::XXX to fail and is fixed
+     both by bumping the Class::Load dependency, and also adding an explicit
+     '1;' to the end of the classes, avoiding the context issue.
+
+   - Fix using_frontend_proxy support in mod_perl by using the psgi wrapped
+     in default middleware in mod_perl context, rather than the raw psgi.
+
+5.90005 - 2011-10-22 13:35:00
+
+  New features:
+
+   - $c->uri_for_action can now take an array of CaptureArgs and Args
+     If you have an action which has both, then you can now say:
+     $c->uri_for_action('/myaction', [@captures, @args]);
+     whereas before you had to say:
+     $c->uri_for_action('/myaction', [@captures], @args);
+     The previous form is still supported, however in many cases it is
+     easier for the application code to not have to differentiate between
+     the two.
+
+   - Catalyst::ScriptRunner has been enhanced so that it will now
+     load and apply traits, making it easier to customise.
+     - MyApp::TraitFor::Script (if it exists) will be applied to all
+       scripts in the application.
+     - MyApp::TraitFor::Script::XXXX will be applied to the relevant script
+       (for example MyApp::TraitFor::Script::Server will be applied to
+       MyApp::Script::Server if it exists, or Catalyst::Script::Server
+       otherwise).
+
+  Documentation:
+
+   - Document how to get the vhost of the request in $c->req->hostname
+     to avoid confusion
+   - Remove documentation showing Global / Regex / Private actionsi
+     as whilst these still exist (and work), they are not recommended.
+   - Remove references to the -Engine flag.
+   - Remove references to the deprecated Catalyst->plugin method
+   - Spelling fixed (and tested) throughout the documentation
+   - Note that wrapping the setup method will not work with method modifiers
+     and provide an alternative.
+
+5.90004 - 2011-10-11 17:12:00
+
+  Bug fixes:
+
+   - Don't guess engine class names when setting an engine through
+     MyApp->engine_class.
+
+5.90003 - 2011-10-05 08:32:00
+  Bug fixes:
+
+   - Make default body reponses for 302s W3C compliant. RT#71237
+
+   - Fix issue where groups of attributes to override controller actions
+     in config would be (incorrectly) overwritten, if the parser for that
+     attribute mangled the contents of the attribute. This was found
+     with Catalyst::Controller::ActionRole, where Does => [ '+Foo' ]
+     would be transformed to Does => [ 'Foo' ] and written back to config,
+     whereas Does => '+Foo' would not be changed in config. RT#65463
+
+  Enhancements:
+
+   - Set a matching Content-type for the redirect if Catalyst sets the
+     body. This is for compatibility with a WatchGuard Firewall.
+
+  Backward compatibility fixes:
+
+   - Restore (an almost empty) Catalyst::Engine::HTTP to the dist for old
+     scripts which explictly require Catalyst::Engine::HTTP
+
+  Documentation fixes:
+
+   - Document Catalyst::Plugin::Authentication fails tests unless
+     you use the latest version with Catalyst 5.9
+
+   - Clarify that prepare is called as a class method
+
+   - Clarify use of uri_for further. RT#57011
+
+5.90002 - 2011-08-22 21:44:00
+  Backward compatibility fixes:
+
+    - Deploying via mod_perl in some cases is fixed by making
+      Catalyst::EngineLoader detect mod_perl in more generic
+      circumstances.
+      https://github.com/miyagawa/Plack/issues/239
+
+  Documentation fixes:
+
+    - Fix incorrect example in Catalyst::PSGI.
+    - Add note that if you are using the PSGI engine, then $c->req->env
+      needs to become $c->engine->env when you upgrade.
+
+5.90001 - 2011-08-15 22:42
+
+ Realise that we accidentally chopped a digit off the versioning scheme
+ without anyone noticing, which is a bad thing.
+
+ Feel like a fool. Well done t0m.
+
+ Cut another release.
+
+5.9000 - 2011-08-15 22:18
+
+ See Catalyst::Delta for the major changes in this release.
+
+ Changelog since the last TRIAL release:
+
+   Backward compatibility fixes:
+
+    - Fix calling MyApp->engine_class to set the engine class manually.
+
+    - Re-add a $res->headers->{status} field to Catalyst::Test responses.
+      This _should_ be accessed with $c->res->code instead, but is here
+      for backward compatibility.
+
+   Documentation:
+
+    - Documentation which was in the now removed Catalyst::Engine::* classes
+      has been moved to Catalyst::Manual::Deployment
+
+   Changes:
+
+    - nginx specific behaviour is removed as it is not needed with any
+      web server configuration I can come up with (recommended config is
+      documented in Catalst::Manual::Deployment::nginx::FastCGI)
+
+5.89003 2011-07-28 20:11:50 (TRIAL release)
+
+ Backward compatibility fixes:
+
+  - Application scripts which have not been upgraded to newer
+    Catalyst::Script::XXX style scripts have been fixed
+
+ Bug fixes:
+
+  - mod_perl handler fixed to work with application classes which have manually
+    been made immutable.
+
+  - Scripts now force the Plack engine choice manually, rather than relying
+    on auto-detection, as the automatic mechanism gets it wrong if (for
+    example) Coro is loaded.
+
+  - Server script option for --fork --keepalive are now handled by loading
+    the Starman server, rather than silently ignored.
+
+  - Server script options for --background and --pid are now fixed by
+    using MooseX::Deamonize
+
+  - Plack middlewares to deal with issues in Lighttpd and IIS6 are now
+    automatically applied to applications and deployments which need them
+    (when there is not a user written .psgi script available).
+    This fixes compatibility with previous stable releases for applications
+    deployed in these environments.
+
+ Enhancements:
+
+  - Catalyst::Test's remote_request method not uses Plack::Test to perform
+    the remote request.
+
+ Documentation:
+  - Added a Catalyst::PSGI manual page with information about writing a .psgi
+    file for your application.
+
+   - Catalyst::Uprading has been improved, and the status of old Catalyst
+     engines clarified.
+
+ Deprecations:
+  - Catalyst::Test's local_request function is now deprecated. You should just
+    use the normal request function against a local server instead.
+
+5.80033 2011-07-24 16:09:00
+
+ Bug fixes:
+  - Fix Catalyst::Request so that the hostname accessor is not incorrectly
+    populated with 'localhost' if a reverse DNS lookup fails.
+
+  - Fix Path actions debug screen to display number of arguments
+
+  - Fix a regression that prevented configuring attributes for all actions using
+    ->config(actions => { '*' => \%attrs }) from working
+
+  - Append $\ in Catalyst::Response->print to more closely match
+    IO::Handle's behaviour.
+
+  - Fixed situation where a detach($action) from a forward within auto
+    was not breaking out correctly
+
+  - Fix the disable_component_resolution_regex_fallback config setting
+    to also work in the $c->component method.
+
+  - Handle users setting cookies with an undef value by not trying to
+    output that cookie (rather than trying to do so and causing an exception
+    as previously happened). A warning is logged if this occurs in debug
+    mode.
+  - Update tests to ignore $ENV{CATALYST_HOME} where required
+
+  - Change repository metadata to point at git.
+
+  - Clean namespaces in Catalyst::Request::Upload
+
+  - Catalyst::Test: Fixes to action_ok, action_redirect and action_notfound
+    test functions to be better documented, and have better default test
+    names.
+
+  - Update tests to ignore CATALYST_HOME env var.
+
+5.89002 2011-03-02 11:30:00 (TRIAL release)
+
+ Bug fixes:
+  - Fix a couple of test failures caused by optional dependencies such as FCGI
+    not being installed.
+
+ Refactoring:
+  - Simplified the API for getting a PSGI application code reference for a
+    Catalyst application for use in, for example, .psgi files. See
+    Catalyst::Upgrading for details.
+
+5.89001 2011-03-01 15:27:00 (TRIAL release)
+
+ Bug fixes:
+  - Fixed command-line argument passing in Catalyst::Script::FastCGI.
+
+  - Fixed Catalyst::Engine::Stomp compatibility. Applications using
+    Catalyst::Engine::Stomp are believed to continue working without
+    any changes with the new Catalyst major version.
+
+  - Fixed issues auto-loading engine with older scripts.
+
+ Known problems:
+  - Catalyst::Engine::Wx is officially unsupported and BROKEN. If you
+    are using this engine then please get in touch with us and we'll
+    be happy to help with the changes it needs to be compatible with
+    the new major version of Catalyst.
+
+ Documentation:
+  - The section of Catalyst::Upgrading describing how to upgrade to version 5.90
+    of Catalyst has been much improved.
+
+5.80032 2011-02-23 01:10:00
+
+ Bug fixes:
+  - Fix compatibility issue with code which was testing the value of
+    $c->res->body multiple times. Previously this would cause the value
+    to be built, and ergo cause the $c->res->has_body predicate to start
+    returning true.
+    Having a response body is indicated by $c->res->body being defined.
+
+  - Fix bug with calling $upload->slurp multiple times in one request
+    not working as expected as the file handle wasn't returned to
+    the zero position. (Adam Sjøgren)
+
+  - Fix some weird perl 5.8 situations where $c can get squashed unexpectedly
+    in Catalyst::execute
+
+  - Fix chained dispatch where chains were being compared for length (number
+    of private parts in the chain) vs where they are being compared for
+    PathPart length (i.e. number of non-capturing URI elements in your path).
+
+    This bug meant that sometimes multiple Args or CaptureArgs (e.g. /*/*)
+    type paths would be preferred to those with fixed path elements
+    (e.g. /account/*)
+
+ New features:
+   - Add MYAPP_RESTARTER and CATALYST_RESTARTER environment variables to
+     allow the restarter class to be chosen per application or generally.
+
+     This feature was added to enable GUI restarters (such as the soon to
+     be released CatalystX::Restarter::GTK to be enabled more easily by
+     developers without changing their application code.
+
+5.80031 2011-01-31 08:13:02
+
+ Bug fixes:
+  - Update dependency on MooseX::Role::WithOverloading to ensure that
+    a version which can deal with / depends on a new Package::Stash
+    is installed. (As if some other dependency is pulled in during upgrading
+    which results in new Package::Stash, then it can leave you with a broken
+    version of MooseX::Role::WithOverloading.
+
+  - Fix undef warning in Catalyst::Engine::FastCGI when writing an empty
+    body (e.g. doing a redirect)
+
+5.89000 2011-01-24 09:28:45 (TRIAL release)
+
+ This is a development release from psgi branch of Catalyst-Runtime.
+
+ Removed features:
+
+  - All of the Catalyst::Engine::* namespace is now gone. Instead we only have
+    one Catalyst::Engine class speaking the PSGI protocol natively. Everything
+    the various Catalyst::Engine:: classes did before is now supposed to happen
+    through PSGI handlers such as Plack::Handler::FCGI,
+    Plack::Handler::HTTP::Server::PSGI, Plack::Handler::Apache2, and so
+    on. However, deployment can still work the same as it did before. The
+    catalyst scripts still exist and continue to work.
+
+    If you find anything that either doesn't work anymore as it did before or
+    anything that could be done before with the various Catalyst::Engine::
+    classes, but can't be done anymore with the single PSGI Catalyst::Engine
+    class, please tell us *now*.
+
+5.80030 2011-01-04 13:13:02
+
+ New features:
+  - Add a --proc_title option to the FCGI script to set the process
+    title.
+  - Allow the response body to be set to `undef' explicitly to indicate the
+    absence of a body. It can be used to indicate that no body should be sent at
+    all and processing of views should be skipped. This is especially useful for
+    things like X-Sendfile, which now no longer require providing fake response
+    bodies to suppress view processing. In order for this to work, you will also
+    have upgrade Catalyst::Action::RenderView to at least version 0.15.
+
+ Bug fixes:
+  - Deal correctly with GLOB file handles in the response body (setting
+    the Content-Length header appropriately)
+  - Chained dispatch has been fixed to always prefer paths
+    with the minimum number of captures (rather than the
+    maximum number of actions). This means that (for example)
+    a URI path /foo/* made out of 2 actions will take preference
+    to a URI path /*/* made out of 3 actions. Please check your applications
+    if you are using chained action and please write new test to report
+    failing case.
+  - Stop relying on bugs in the pure-perl version of Package::Stash. New
+    versions of Package::Stash load Package::Stash::XS if
+    available. Package::Stash::XS fixes some of the bugs of the pure-perl
+    version, exposing our faulty assumption and breaking things. We now work
+    with both old and new versions of Package::Stash, both with and without
+    Package::Stash::XS being installed. Older versions of Catalyst-Runtime also
+    work with both old and new versions of Package::Stash, but only if
+    Package::Stash::XS is *not* installed.
+
+ Documentation:
+  - Clarify that when forwarding or detaching, the end action associated
+    with the original dispatched action will be run afterwards (fallen)
+
+5.80029 2010-10-03 16:39:00
+
+ New features:
+  - Add a warning when $c->view is called and cannot locate a default_view
+    or current_view. This clarifies the logging when ::RenderView gets
+    confused.
+
+ Warning fixes:
+  - Deal warning in with Moose >= 1.15 if you add a method called 'meta' to a
     class which already has one by using _add_meta_method.
 
 5.80028 2010-09-28 20:49:00