[Catalyst] [ANNOUNCE] Catalyst Runtime 5.80001
Tomas Doran
bobtfish at bobtfish.net
Sat Apr 18 20:28:19 GMT 2009
The Catalyst Core Team is proud to announce that we've just shipped
the next major release of the Catalyst framework, version 5.8001.
This release is the result of the helpful contributions of a large
number of people, comprising documentation, new features, bug fixes
and entire branches of refactoring, and has taken over twelve months
work.
Specifically this release would not have been possible without the
hard work put in by Guillermo Roditi and Scott McWhirter for the
initial port, and Florian Ragwitz on method attributes, as well as
their CPAN modules to support this. Huge thanks to those guys, and
also to everyone providing patches for documentation, bug fixes, and
new features.
The major focus of this release is refactoring, and porting to Moose,
which enables a lot of additional features, and gives you, the user,
a lot of additional power to use when building your applications, and
gives the Catalyst team a lot of power for extending the framework.
Current applications will still run unmodified, but new code and
extensions can start to fully take advantage of Moose.
A lot of (previously inadvisable) techniques have become officially
deprecated, producing warnings, and full documentation is provided in
the distribution to explain any changes which may affect your
applications or components. Extensive smoke testing for backwards
compatibility has taken place as part of the release process, and
we're confident that we haven't broken anything which wasn't a very
bad idea in the first place :)
The Runtime distributions will be on a CPAN mirror near you before
long, but until then you have the option of getting them here:
http://files.perldition.org/Catalyst-Runtime-5.80001.tar.gz
A further explanation of all the changes can be found in
Catalyst::Delta (included below).
Thank you for your attention, and for using our software.
t0m
Full delta from 5.71:
Deprecations:
Please see Catalyst::Upgrading for a full description of how
changes in
the framework may affect your application.
Below is a brief list of features which have been deprecated in
this
release:
* ::[MVC]:: style naming scheme has been deprecated and will warn
NEXT is deprecated for all applications and components, use
MRO::Compat
Dispatcher methods which are an implementation detail made private,
public versions now warn.
* MyApp->plugin method is deprecated, use Catalyst::Model::Adaptor
instead.
* __PACKAGE__->mk_accessors() is supported for backward
compatibility
only, use Moose attributes instead in new code.
* Use of Catalyst::Base now warns
New features:
Dispatcher -
* Fix forwarding to Catalyst::Action objects.
* Add the dispatch_type method
Restarter -
* The development server restarter has been improved to be
compatible with
immutable Moose classes, and also to optionally use
B::Hooks::OP::Check::StashChange to handle more complex
application
layouts correctly.
$c->uri_for_action -
Give a private path to the Catalyst action you want to create a
URI for.
Logging -
Log levels have been made additive.
Catalyst::Test -
* Change to use Sub::Exporter.
* Support mocking multiple virtual hosts
* New methods like action_ok and action_redirect to write more
compact
tests
Catalyst::Response -
* New print method which prints @data to the output stream,
separated
by $,. This lets you pass the response object to functions
that want
to write to an IO::Handle.
* Added code method as an alias for "$res->status"
Consequences of the Moose back end:
* Components are fully compatible with Moose, and all Moose
features, such as method modifiers, attributes, roles,
BUILD and
BUILDARGS methods are fully supported and may be used in
components and applications.
* Many reusable extensions which would previously have been
plugins or base classes are better implemented as Moose
roles.
* MooseX::MethodAttributes::Inheritable is used to contain
action
attributes. This means that attributes are represented
in the
MOP, and decouples action creation from attributes.
* There is a reasonable API in Catalyst::Controller for
working
with and registering actions, allowing a controller sub-
class to
replace subroutine attributes for action declarations
with an
alternate syntax.
* Refactored capturing of $app from Catalyst::Controller into
Catalyst::Component::ApplicationAttribute for easier
reuse in
other components.
* Your application class is forced to become immutable at
the end
of compilation.
Bug fixes:
* Don't ignore SIGCHLD while handling requests with the
development server, so that system() and other ways of
creating
child processes work as expected.
* Fixes for FastCGI when used with IIS 6.0
* Fix a bug in uri_for which could cause it to generate
paths with
multiple slashes in them.
* Fix a bug in Catalyst::Stats, stopping garbage being
inserted
into the stats if a user calls begin => but no end
P.S. This release would also not have been possible without the
relentless list keeping, cat herding, dist smoking and bug fixing
done by t0m Doran, who is apparently too modest to point it out
P.P.S. mst made me add that..
More information about the Catalyst
mailing list