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

Search Discussions

  • Peter Edwards at Apr 18, 2009 at 10:07 pm
    2009/4/18 Tomas Doran <bobtfish@bobtfish.net>
    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.
    Woot! Nice work, I'm very impressed.

    Regards, Peter
    http://perl.dragonstaff.co.uk
    -------------- next part --------------
    An HTML attachment was scrubbed...
    URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20090418/be68554f/attachment.htm
  • John Napiorkowski at Apr 18, 2009 at 10:42 pm
    Tremendous thanks and am looking forward to 5.9 :) --John Napiorkowski

    --- On Sat, 4/18/09, Tomas Doran wrote:
    From: Tomas Doran <bobtfish@bobtfish.net>
    Subject: [Catalyst] [ANNOUNCE] Catalyst Runtime 5.80001
    To: "The elegant MVC web framework" <catalyst@lists.scsys.co.uk>
    Date: Saturday, April 18, 2009, 4:28 PM
    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..

    _______________________________________________
    List: Catalyst@lists.scsys.co.uk
    Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
    Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
    Dev site: http://dev.catalyst.perl.org/
  • Octavian Rasnita at Apr 19, 2009 at 4:16 pm
    Congratulations to all for this much awaited version!

    I want to report something that might be a packaging bug, or maybe you can
    tell me what could be the problem...

    This version requires MooseX-MethodAttributes-0.05.tar.gz and I couldn't
    install this module under Windows using CPAN.

    The cpan command installed it fine, without any errors, but the directory
    "MethodAttributes" was not installed and neither the sub-directories and
    files under it.

    I've downloaded from cpan.org, unarchived it with WinRar but WinRar tried to
    unarchive all the files and directories from this package in the same
    directory, which doesn't happends with other CPAN modules.

    Finally I've unarchived it with 7zip, compiled and it installed fine.

    Catalyst-Runtime installed fine under Windows XP.

    Octavian

    ----- Original Message -----
    From: "Tomas Doran" <bobtfish@bobtfish.net>
    To: "The elegant MVC web framework" <catalyst@lists.scsys.co.uk>
    Sent: Saturday, April 18, 2009 11:28 PM
    Subject: [Catalyst] [ANNOUNCE] Catalyst Runtime 5.80001

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

    _______________________________________________
    List: Catalyst@lists.scsys.co.uk
    Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
    Searchable archive:
    http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
    Dev site: http://dev.catalyst.perl.org/
  • Tomas Doran at Apr 19, 2009 at 10:18 pm

    Octavian R?snita wrote:
    Congratulations to all for this much awaited version!
    Thank you very much.
    I want to report something that might be a packaging bug, or maybe you
    can tell me what could be the problem...

    This version requires MooseX-MethodAttributes-0.05.tar.gz and I couldn't
    install this module under Windows using CPAN.
    <snip>

    Hmm. If I remember correctly, I built that distribution on my new mac
    mini, but I may not have done. Can I build a couple of demo dists on my
    machines and send them to you off list so we can work out what in my
    setup might be causing issues for you?
    Catalyst-Runtime installed fine under Windows XP.
    Great stuff!

    I've just built an updated distribution of MX::MethodAttributes (0.06)
    on a different system and shipped it to CPAN.

    This release also contains a bug fix which could be relevant to some
    applications.

    With 0.05, the following code would fail to correctly register any
    actions in your package:

    package MyApp::Controller::Foo;
    use base qw/Catalyst::Controller/;
    use Moose;

    however the recommended:

    package MyApp::Controller::Foo;
    use Moose;
    BEGIN { extends 'Catalyst::Controller' }

    was unaffected, as were classes which did not use Moose.

    This issue has been corrected for any users with applications using
    Moose with the previous pattern.

    Cheers
    t0m
  • Octavian Rasnita at Apr 20, 2009 at 8:53 am
    From: "Tomas Doran" <bobtfish@bobtfish.net>
    Octavian R?snita wrote:
    I want to report something that might be a packaging bug, or maybe you
    can tell me what could be the problem...

    This version requires MooseX-MethodAttributes-0.05.tar.gz and I couldn't
    install this module under Windows using CPAN.
    <snip>

    Hmm. If I remember correctly, I built that distribution on my new mac
    mini, but I may not have done. Can I build a couple of demo dists on my
    machines and send them to you off list so we can work out what in my setup
    might be causing issues for you?
    Oh yes, please do it. I've downloaded MooseX-MethodAttributes-0.06.tar.gz
    and tried to unarchive it, but this package also tried to put all the files
    and directories in the same directory (and also tried to overwrite
    Inheritable.pm because there are 2 files with this name in the
    distribution).

    It is strange because it unarchives fine under Linux and also under Windows
    using 7zip, but the cpan command line can't install it well under Windows.
    I've just built an updated distribution of MX::MethodAttributes (0.06) on
    a different system and shipped it to CPAN.

    This release also contains a bug fix which could be relevant to some
    applications.

    With 0.05, the following code would fail to correctly register any actions
    in your package:

    package MyApp::Controller::Foo;
    use base qw/Catalyst::Controller/;
    use Moose;

    however the recommended:

    package MyApp::Controller::Foo;
    use Moose;
    BEGIN { extends 'Catalyst::Controller' }

    was unaffected, as were classes which did not use Moose.

    This issue has been corrected for any users with applications using Moose
    with the previous pattern.

    Cheers
    t0m
    I found a very strange thing that I can't understand...

    I made a new app using

    catalyst T5

    In this app I added 2 controllers:

    package T5::Controller::BlaBla;
    use strict;
    use warnings;
    use base 'TranzactiiBursiere::Controller::Base';
    1;

    package T5::Controller::Base;
    use strict;
    use warnings;
    use base 'Catalyst::Controller';
    1;

    If I start the development server using
    perl script/t5_server.pl
    the server starts fine.

    But if I rename the BlaBla.pm controller to Ana.pm and also edit it to be

    package T5::Controller::Ana;

    the server doesn't start, but gives the error below.

    It is strange because it is a new app that doesn't have other dependencies
    and it shouldn't have any conflict just because I changed the controller
    name. I've tested with other names for that controller, and some of them
    work and some of them don't.

    Here is the error given when using
    perl script/t5_server.pl

    E:\web\T5>perl script/t5_server.pl
    Metaclass for Class::MOP::Class for T5::Controller::Base cannot support
    register
    _actions. at E:/perl510/site/lib/Catalyst/Controller.pm line 180
    Catalyst::Controller::get_action_methods('T5::Controller::Base=HASH(0x40
    a97bc)') called at E:/perl510/site/lib/Catalyst/Controller.pm line 189
    Catalyst::Controller::register_actions('T5::Controller::Base=HASH(0x40a9
    7bc)', 'T5') called at E:/perl510/site/lib/Catalyst/Dispatcher.pm line 596
    Catalyst::Dispatcher::setup_actions('Catalyst::Dispatcher=HASH(0x3836924
    )', 'T5') called at E:/perl510/site/lib/Catalyst.pm line 2096
    Catalyst::setup_actions('T5') called at
    E:/perl510/site/lib/Catalyst.pm
    line 1084
    Catalyst::setup('T5') called at E:/web/T5/script/../lib/T5.pm line
    34
    require T5.pm called at script/t5_server.pl line 55
    Compilation failed in require at script/t5_server.pl line 55.
    E:\web\T5>

    Octavian
  • Tomas Doran at Apr 20, 2009 at 7:50 pm

    On 20 Apr 2009, at 09:53, Octavian R?snita wrote:
    But if I rename the BlaBla.pm controller to Ana.pm and also edit it
    to be

    package T5::Controller::Ana;

    the server doesn't start, but gives the error below.
    I can replicate this, and I've got a fairly good idea what it's
    caused by - this is the same issue which caused your last problem,
    and that I worked around in the new release of MooseX::MethodAttributes.

    I think you'll find that this will _only_ happen for controllers whos
    names sort alphabetically below 'Base.pm', and which don't contain
    any actions. I guess that is pretty atypical for normal applications :)

    Still a bug though, I'll try and work out a test for Moose (as thats
    where I think the issue lies) tonight.

    Cheers
    t0m
  • Tomas Doran at Apr 21, 2009 at 12:33 am

    On 20 Apr 2009, at 20:50, Tomas Doran wrote:
    I think you'll find that this will _only_ happen for controllers
    whos names sort alphabetically below 'Base.pm', and which don't
    contain any actions. I guess that is pretty atypical for normal
    applications :)

    Still a bug though, I'll try and work out a test for Moose (as
    thats where I think the issue lies) tonight.
    When I said 'alphabetically', I meant in hash order, which is
    essentially random :_)

    I've committed tests to Moose for root cause of the issue (and some
    other stuff I found along the way), and I've also committed a test
    and a workaround into Catalyst trunk.

    Cheers
    t0m

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupcatalyst @
categoriescatalyst, perl
postedApr 18, '09 at 8:28p
activeApr 21, '09 at 12:33a
posts8
users4
websitecatalystframework.org
irc#catalyst

People

Translate

site design / logo © 2021 Grokbase