Fix dead links to cpansearch.perl.org to point to metacpan.org
[catagits/Catalyst-Runtime.git] / Changes
diff --git a/Changes b/Changes
index 7705f00..502fe6e 100644 (file)
--- a/Changes
+++ b/Changes
 # This file documents the revision history for Perl extension Catalyst.
 
  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
+
+ Bug fixes:
+  - use Class::MOP in Catalyst::Utils.
+
+  - Do not keep a reference to a closed over context in ctx_request, allowing
+    the caller to dispose of the request context at their leisure.
+
+  - Changes to be compatible with bleadperl
+
+5.80027 2010-09-01 22:14:00
+
+ Bug fixes:
+  - Fix an issue with newly added test cases which depended on Catalyst::Action::RenderView
+
+5.80026 2010-09-01 15:14:00
+
+ Bug fixes:
+  - Fix so that CATALYST_EXCEPTION_CLASS in MyApp is always respected by
+    not loading Catalyst::Exception in Utils.pm BEGIN, because some Scripts::*
+    load Utils before MyApp.pm
+
+  - Fix warnings with new Moose versions about "excludes" during role
+    application
+
+  - Fix warning from MooseX::Getopt regarding duplicate "help" aliases.
+
   - parse_on_demand fixed when used in conjunction with debug mode.
     A regression was introduced in 5.80022 which would cause the body
     to always be parsed for logging at the end of the request when in
     debug mode. This has been fixed so that if the body has not been parsed
     by the time the request is logged, then the body is omitted.
+
   - Fix show_internal_actions config setting producing warnings in debug
     mode (RT#59738)
 
+  - Make Catalyst::Test::local_request() set the response base from base href
+    in the returned document so that links can be resolved correctly by
+    Test::WWW::Mechanize::Catalyst
+
+ Refactoring:
+   - moved component name sort that happens in setup_components to
+     locate_components to allow methods to wrap around locate_components
+
+ Documentation:
+    - Fix some typos
+
+    - Advertise Catalyst::Plugin::SmartURI
+
+
 5.80025 2010-07-29 01:50:00
 
  New features: