Official Announcement for Catalyst version 5.8001

18 April 2009
For immediate release

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:

A further explanation of all the changes can be found in cpan Catalyst::Delta (included below).

Thank you for your attention, and for using our software.

Full delta from 5.71


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


  • Fix forwarding to Catalyst::Action objects.
  • Add the dispatch_type method


  • 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.


  • Give a private path to the Catalyst action you want to create a URI for.


  • Log levels have been made additive.


  • Change to use Sub::Exporter.
  • Support mocking multiple virtual hosts
  • New methods like action_ok and action_redirect to write more compact tests


  • 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..

My tags:
Popular tags:
Powered by Catalyst
Powered by MojoMojo Hosted by Shadowcat - Managed by Nordaaker