Catalyst-Runtime
view release on metacpan or search on metacpan
screen as easy to write.
- Make all logging of request and response state get the information from
$c->dump_these so that there is a unified point from which to hook
in parameter filtering (for example).
- $c->model/view/controller have become a lot faster for non-regexp names
by using direct hash lookup instead of looping.
- IP address => hostname mapping for the server is only done once and cached
by Catalyst::Engine::HTTP to somewhat mitigate the problem of people
developing on machines pointed at slow DNS servers.
Bugs fixed:
- DispatchType::Index's uri_for_action only returns for actions registered
with it (prevents 'index :Path' or similar resolving to the wrong URI)
- Make sure to construct Upload objects properly, even if there are
multiple Content-Type headers (Closes RT#55976).
5.80021 2010-03-03 23:02:01
Bug fixed:
- $c->uri_for will now escape unsafe characters in captures
($c->request->captures) and correctly encode utf8 characters.
5.80020 2010-02-04 06:51:18
New features:
- Allow components to specify additional components to be set up by
overriding the expand_modules method. (Oliver Charles)
5.80019 2010-01-29 01:04:09
Bug fixed:
- Calls to $c->uri_for with private paths as strings (e.g.
$c->uri_for('controller/action', 'arg1', 'arg2') ) no longer have
/ encoded to %2F. This is due to $c->uri_for('static', 'css/foo', $bar)
which should not be encoded.
Calls with an action object (rather than a string), or uri_for action
will still encode / in args and captures to %2F
- The above noted / => %2F encoding in uri_for_action or uri_for with
an action object has been fixed to not just encode the first slash in
any set of args/captures.
- nginx and lighttpd FCGI requests with URI encoded sections as the first
path part have been fixed to operate correctly.
- A source of bogus warnings in Catalyst::Component::BUILDARGS has been
removed.
Documentation:
- Improve the documentation about -Home and how Catalyst finds the home path
for applications.
- Various minor typo fixes.
New features:
- Allow passing additional arguments to action constructors.
5.80018 2010-01-12 22:24:20
Bug fixed:
- Call ->canonical on URI derived from $ENV{REQUEST_URI} to get
paths correctly decoded. This bug was previously hidden by a bug
in HTTP::Request::AsCGI.
Documentation:
- Clarify that uri_for_action works on private paths, with example.
- Clarify documentation about debug
Deprecations:
- Saying use Catalyst::Test; (without an application name or () to stop
the importer running is now deprecated and will issue a warning.
You should be saying use Catalyst::Test ();
5.80017 2010-01-10 02:27:29
Documentation:
- Fix docs for ->forward method when passed a class name - this should
be a component name (e.g. View::HTML, not a full class name, like
MyApp::View::HTML).
Bug fixes:
- --daemon and -d options to Catalyst::Script::FastCGI are fixed.
- Fix the debug dump for applications which use Catalyst::Plugin::Session
(RT#52898)
- Fix regression in the case where mod_rewrite is being used to rewrite
requests into a path below your application base introduced with the
%2F related fixes in 5.80014_02.
- Do not crash on SIGHUP if Catalyst::Engine::HTTP->run is not passed the
argv key in the options hash.
- Correctly pass the arguments to Catalyst::Script::Server through to
Catalyst::Engine::HTTP->run so that the server can restart itself
with the correct options on SIGHUP.
- Require new MooseX::MethodAttributes to be compatible with Moose
versions >= 0.93_01
- Require new MooseX::Role::WithOverloading to be compatible with Moose
versions >= 0.93_01
Cleanups:
- Stop suppressing warnings from Class::C3::Adopt::NEXT now that most plugins
have been updated to not use NEXT. If you get warnings then please upgrade
your components or log a bug with the component author if an upgrade is
not available. The Class::C3::Adopt::NEXT documentation contains information
about how to suppress the warnings in your application if you need to.
5.80016 2009-12-11 23:23:33
Bug fixes:
- Fix slurping a file to work correctly with binary on Win32 in the
encoding test controller.
Bug fixes in the new scripts (for applications which have been upgraded):
- Allow --restartdirectory as an option for the Server script, for
backwards compatibility. (Dave Rolsky)
- The --host option for the server script defaulted to localhost, rather
than listening on all interfaces, which was the previous default. (Dave
Rolsky)
- Restore -p option for pid file in the FastCGI server script.
- Fix the script environment variables MYAPP_PORT and MYAPP_RELOAD RT#52604
- Fix aliasing applications under non-root paths with mod_rewrite in
some Apache versions where %ENV{SCRIPT_NAME} is set to the real name of
the script, by using $ENV{REDIRECT_URL} which contains the non-rewritten
URI.
- Fix usage display when myapp_create.pl is run with no arguments. RT#52630
New features:
- The __MOP__ hash element is suppressed from being dumped fully
(and instead stringified) when dumping the error screen to be
less packed with information of no use.
Documentation:
- Fix Pod nits (RT#52370)
5.80015 2009-12-02 15:13:54
Bug fixes:
- Fix bug in Catalyst::Engine which would cause a request parsing to end
prematurely in the hypothetical case where calling $engine->read returned
the single character '0'.
- Fix failing tests when combined with new HTTP::Request::AsCGI
Documentation:
- Improved documentation on read and read_chunk methods in Catalyst::Engine.
- Fix reversal of SCRIPT_NAME and PATH_INFO in previously correct nginx
FastCGI documentation introduced in _02.
5.80014_02 2009-12-01 00:55:23
Bug fixes:
- Fix reporting the wrong Content-Length if the response body is an
upgraded string. Strings mean the same thing whether or not they are
upgraded, may get upgraded even after they are encoded, and will
produce the same output either way, but bytes::length returns too big
values for upgraded strings containing characters >127
- Fix t/live_fork.t with bleadperl (RT#52100)
- Set $ENV{PATH_INFO} from $ENV{REQUEST_URI} combined with
$ENV{SCRIPT_NAME} if possible. This is many web servers always fully
decode PATH_INFO including URI reserved characters. This allows us to
tell foo%2cbar from foo%252cbar, and fixes issues with %2F in paths
being incorrectly decoded, resulting in too many path parts (rather
than 1 path part containing a /, on some web servers (at least nginx).
(RT#50082)
- Require new HTTP::Request::AsCGI so that it fully decodes $ENV{PATH_INFO}
in non CGI contexts. (RT#50082)
Refactoring / cleanups:
- NoTabs and Pod tests moved to t/author so that they're not run
(and then skipped) normally.
Documentation:
- Fix Pod nits in Catalyst::Response (RT#51818)
5.80014_01 2009-11-22 20:01:23
Bug fixes:
- Filehandle now forced to binmode in CGI and FastCGI engines. This appears
to correct some UTF-8 issues, but may break people's code which relies
on the old behaviour.
Refactoring / cleanups:
- Plugins which inherit from Catalyst::Controller or Catalyst::Component
are deprecated and now issue warnings.
5.80014 2009-11-21 02:51:14
Bug fixes:
- Require MooseX::MethodAttributes 0.17. This in turn requires new
MooseX::Types to stop warnings in Moose 0.91, and correctly supports
role combination of roles containing attributed methods.
- Catalyst::Dispatcher::dispatch_types no longer throws deprecated warnings
as there is no recommended alternative.
- Improved the suggested fix warning when component resolution uses regex
fallback for fully qualified component names.
- Catalyst::Test::local_request sets ->request on the response.
- Log flush moved to the end of setup so that roles and plugins which
hook setup_finalize can log things and have them appear in application
startup, rather than with the first hit.
- Require a newer version of LWP to avoid failing tests.
- Stop warnings when actions are forwarded to during dispatch.
- Remove warnings for using Catalyst::Dispatcher->dispatch_types as this is a
valid method to publicly call on the dispatcher.
- Args ($c->request->args) and CaptureArgs ($c->request->captures)
passed to $c->uri_for with an action object ($c->action) will now
correctly round-trip when args or captures contain / as it is now
correctly uri encoded to %2F.
Documentation:
- Document no-args call to $c->uri_for.
- Document all top level application configuration parameters.
- Clarify how to fix actions in your application class (which is
deprecated and causes warnings).
- Pod fixes for ContextClosure.
- Fix documentation for go/visit to reference captures and arguments
in the correct order.
- Update $c->forward and $c->state documentation to address scalar
context.
- Pod fix in Catalyst::Request (RT#51490)
- Pod fixes to refer to ::Controller:: rather than ::C:: as the latter
is deprecated (RT#51489)
config->{action(s)}
- Assigning an undef response body no longer produces warnings
- Fix C3 incompatibility bug caused if you use Moose in MyApp.pm and
add Catalyst to the right hand side of this in @ISA.
- Make Catalyst.pm implement the Component::ApplicationAttribute
interface so defining actions in MyApp.pm works again, if the
actions have attributes that cause $self->_application to be used
(like ActionClass).
New features:
- Add optional second argument to uri_with which appends to existing
params rather than replacing them. (foo=1 becomes foo=1&foo=2 when
uri_with({ foo => 2 }, { mode => 'append' }) is called on a foo=1
URI.
5.80006 2009-06-29 23:37:47
Bug fixes:
- Revert change to URL encode things passed into $c->uri_for
Args and CaptureArgs as this causes breakage to pre-existing
applications.
- Remove use of Test::MockObject as it doesn't install from CPAN
in some environments.
- Remove use of dclone to deep copy configs and replace with
Catalyst::Utils::merge_hashes which has the same effect, of
ensuring child classes don't inherit their parent's config,
except works correctly with closures.
- Add Class::C3::reinitialize into Catalyst::Test to avoid weird
bugs in ctx_request (bokutin in RT#46459)
- Fix issues with _parse_PathPrefix_attr method in Catalyst::Controller
(jasonk in RT#42816)
- Fix bugs with action sorting:
- Path actions sorted so that the most specific wins.
- Action methods named default and index fixed.
New features:
- Use ~ as prefix for plugins or action classes which are located in
MyApp::Plugin / MyApp::Action (mo)
- Controller methods without attributes are now considered actions if
they are specified in config->{action(s)} (mo)
- Add Catalyst::Component::ContextClosure as an easy way to create code
references, that close over the context, without creating leaks.
Refactoring / cleanups:
- Clean namespaces in Catalyst::Exception*.
- Turn Catalyst::Exception into an actual class and make the throw
method create instances of it. They can still be used as normal
strings, as before, as they are overloaded to stringify to their
error message.
- Add a rethrow method to Catalyst::Exception.
- Add Catalyst::Exception::Detach and ::Go, and refactor detach() and
go() to use them instead of magic, global strings.
Fixes RT#47366
- Clean up getting metaclass instance and making app class immutable
again in Catalyst::Test
5.80005 2009-06-06 14:40:00
Behaviour changes:
- Arguments ($c->req->args) in Chained dispatch are now automatically
URL decoded to be consistent with Local/Path dispatch
Documentation:
- Clarify correct techniques for Moose controllers (domm)
Bug fixes:
- Further change pushing 'env' attribute down into Catalyst::Engine
to make $c->engine->env work in all cases (kmx)
- Also fix $c->engine->env in Catalyst::Test tests (kmx)
- Tests for this
- Fix Catalyst failing to start if any plugin changed $_ whilst
loading
- Tests for this
- Be stricter about arguments to Args attributes for Chained actions,
so that they blow up on load instead of causing undefined behavior
later on
- Tests for this
- Prefer Path actions with a smaller (or set) number of Args (caelum)
Bug reported here: http://stackoverflow.com/questions/931653/catalyst-action-that-matches-a-single-file-in-the-root-directory/933181#933181
- Tests for this
New features:
- Add $c->req->remote_user to disambiguate from $c->req->user (dwc)
- Require MooseX::MethodAttributes 0.12 so that action methods
(with attributes) can be used in / composed from Moose roles.
- Allow the generation of cookies with the HTTPOnly flag set
in Catalyst::Engine (kmx)
5.80004 2009-05-18 17:03:23
- Rename the actions attribute in Catalyst::Controller to
_controller_actions to avoid name clashes with application
controller naming. (random)
- Test for using Moose in components which have a non-Moose base class
Fixed by 349cda in Moose 0.78
- Fix deprecation message for Catalyst::Dispatcher to refer
to the class actually calling the deprecated method. RT#45741
- Clarify limitations of $request->base and $request->secure.
(Phil Mitchell)
- Add 'use Catalyst' to documentation for a Moose MyApp class as
noted by dmaki.
- Fix so that / (and other special characters) are URL encoded when
passed into $c->uri_for as Args/CaptureArgs
- Fix development server so that $c->engine->env returns the correct
environment
- Require Moose 0.78 to fix metaclass incompatibility issues
- Require MooseX::MethodAttributes 0.10 and use
Moose::Meta::Class->initialize rather than Moose->init_meta to fix
bugs related to having a 'meta' method in your controller
- Fix cases where your application failing to compile could cause perl
to report 'Unknown Error'
- Support adding Moose::Roles to the plugin list. These are applied to
MyApp after plugins have been pushed onto @ISA
- Fix calling $c->req->parameters as the first thing you do when
parse_on_demand is on
5.80003 2009-04-29 16:23:53
- Various POD tweaks. (hdp, dandv)
- Fix formatting error in the regex fallback warning.
- Convert the dispatcher's and restarter engine's BUILD method to
attribute builders to not override the BUILD method from
MooseX::Emulate::Class::Accessor::Fast.
- Add test actions
- Chained doc improvements (rev 8326-8328)
5.7099_03 2008-07-20 10:10:00
- Fix regressions for regexp fallback in model(), view() and controller()
- Added the supplied argument to the regexp fallback warning for easier
debugging
- Ensure ACCEPT_CONTEXT is called for results from component()
5.7099_02 2008-07-16 19:10:00
- Added PathPrefix attribute
- Removed Catalyst::Build; we've long since moved to Module::Install
- Updated Catalyst::Test docs to mention the use of HTTP::Request
objects
5.7099_01 2008-06-25 22:36:00
- Refactored component resolution (component(), models(), model(), et al). We now
throw warnings for two reasons:
1) model() or view() was called with no arguments, and two results are returned
-- set default_(model|view), current_(model|view) or current_(model|view)_instance
instead
2) you call a component resolution method with a string, and it resorts to a regexp
fallback wherein a result is returned -- if you really want to search, call the
method with a regex as the argument
- remove 0-length query string components so warnings aren't thrown (RT #36428)
- Update HTTP::Body dep so that the uploadtmp config value will work (RT #22540)
- Fix for LocalRegex when used in the Root controller
- Get some of the optional_* tests working from dirs with spaces (RT #26455)
- Fix Catalyst::Utils::home() when application .pm is in the current dir (RT #34437)
- Added the ability to remove parameters in req->uri_with() by passing in
an undef value (RT #34782)
- Added $c->go, to do an internal redispatch to another action, while retaining the
contents of the stash
5.7014 2008-05-25 15:26:00
- Addition of .conf in restart regex in Catalyst::Engine::HTTP::Restarter::Watcher
- Fix regression for relative uri_for arguments after a forward()
introduced in 5.7013 (Peter Karman)
- Fix regression for "sub foo : Path {}" in the root controller which
was introduced when attempting to allow "0" as a Path.
5.7013 2008-05-16 18:20:00
- Provide backwards compatibility methods in Catalyst::Stats
- Fix subdirs for scripts that run in subdirs more than one level deep.
- Added test and updated docs for handling the Authorization header
under mod_fastcgi/mod_cgi.
- Fixed bug in HTTP engine where the connection was not closed properly if the
client disconnected before sending any headers. (Ton Voon)
- POD fix, IO::FileHandle => IO::Handle (RT #35690)
- Fix grammar on welcome page (RT #33236)
- Fix for Path('0') handling (RT #29334)
- Workaround for Win32 and c3_mro.t (RT #26452, tested by Kenichi Ishigaki)
- Fix for encoding query parameters
- Fix Chained multiple test
5.7012 2007-12-16 23:44:00
- Fix uri_for()'s and uri_with()'s handling of multibyte chars
(Daisuke Murase)
- Fix __PACKAGE__->config->{foo} = 'bar' case with subclassing
- Add Catalyst::Stats (Jon Schutz)
- Fixed a bug where ?q=bar=baz is decoded as q=>'bar', not 'bar=baz'.
(Tatsuhiko Miyagawa, Masahiro Nagano)
- Fixed a bug where -rr (restart regex) command line option could cause
shell errors. (Aristotle Pagaltzis, Chisel Wright)
5.7011 2007-10-18 20:40:00
- Allow multiple restart directories and added option to follow
symlinks in the HTTP::Restarter engine (Sebastian Willert)
- Fixed t/optional_http-server-restart.t so it actually tests
if the server restarted or notified of an error (Sebastian Willert)
- Return child PID from the HTTP engine when run with the 'background' option.
(Emanuele Zeppieri)
- Fixed bug in HTTP engine where writes could fail with
'Resource temporarily unavailable'.
- Fixed bug where %2b in query parameter is doubly decoded to ' ', instead of '+'
(RT #30087, Gavin Henry, Tatsuhiko Miyagawa, Oleg Pronin)
- Fixed bug where req->base and req->uri would include a port number when running
in SSL mode.
- Removed unnecessary sprintf in debug mode that caused warnings on locales where
commas are used for decimal markers.
- Improved error message for case when server picks up editor save
files as module names. (James Mastros)
5.7010 2007-08-22 07:41:00
- Resource forks in 5.7009
5.7009 2007-08-22 00:14:00
- Moved Manual.pod to Manual.pm and clarified status of
Catalyst-Manual dist
- Doc patches to Catalyst::Controller
- remove ignore_loaded from plugin load, commenting why
- document the ignore_loaded feature in Catalyst::Utils
- Add testing of inline plugins.
5.7008 2007-08-13 08:40:00
- Added $c->request->query_keywords for getting the keywords
(a query string with no parameters).
- Add undef warning for uri_for.
- Fix bug where a nested component would be setup twice.
- Make ensure_class_loaded behave better with malformed class name.
- Make _register_plugin use ensure_class_loaded.
- Remove 'Argument "??" isn't numeric in sprintf' warning.
(Emanuele Zeppieri)
- Fixed a bug where Content-Length could be set to 0 if a filehandle
object in $c->response->body did not report a size.
- Fixed issue where development server running in fork mode did not
properly exit after a write error.
(http://rt.cpan.org/Ticket/Display.html?id=27135)
- Remove warning for captures that are undef.
- Fixed $c->read and parse_on_demand mode.
- Fixed a bug with the HTTP engine where very large response bodies
would not be sent properly.
5.7007 2007-03-13 14:18:00
- Many performance improvements by not using URI.pm:
* $c->uri_for (approx. 8x faster)
* $c->engine->prepare_path (approx. 27x faster)
* $c->engine->prepare_query_parameters (approx. 5x faster)
- Updated HTTP::Body dependency to 0.9 which fixes the following issues:
* Handle when IE sometimes sends an extra CRLF after the POST body.
* Empty fields in multipart/form-data POSTs are no longer ignored.
* Uploaded files with the name "0" are no longer ignored.
- Sending SIGHUP to the dev server will now cause it to restart.
- Allow "0" for a path in uri_for.
- Performance and stability improvements to the built-in HTTP server.
- Don't ignore file uploads if form contains a text field with the same name.
(Carl Franks)
- Support restart_delay of 0 (for use in the POE engine).
- Skip body processing if we don't have a Content-Length header.
Results in about a 9% performance increase when handling GET/HEAD
requests.
- Add a default body to redirect responses.
- MyApp->model/view now looks at MyApp->config->{default_view/model}
(Bogdan Lucaciu)
( run in 0.721 second using v1.01-cache-2.11-cpan-e1769b4cff6 )