Hello Catalyst Users and Hackers!

05 November 2013 marked the end of the Hamburg development cycle, which was kicked off back in June. This release is a bit longer in development than the past few, but as I expected, things got a bit slow over the summer (I'm Northern hemisphere located) and since we did a lot of development releases along the way I think the longer cycle worked out.

Now I am please to announce https://metacpan.org/release/JJNAPIORK/Catalyst-Runtime-5.90050 !

A number of people contributed to this release included two of my coworkers here at Campus Explorer (ether++, gerda++), n0body from IRC (who stepped up with a patch at the last moment that solved some testing problems in dev release 5) as well as many people who contributed via discussion, or doing code review (t0m++)

In general I think we hit most of the goals we set at the start of the hamburg. I'll do a full end retrospective later in the week. In no particular order of importance:

You can now declare PSGI Middleware via configuration (making it easier and potentially less messy to use Middleware in your applications).

Catalyst::Response can now consume a PSGI response (making it easier to use Catalyst to dispatch to an underlying PSGI application, such as one based on Web::Machine, Web::Simple (or Dancer, or even another Catalyst application).

Other small PSGI related improvements, like we now buffer request body content if a buffer does not exist (such as if you are using FastCGI) so that PSGI applications running under Catalyst will be able to read that data.

You can use Hash::MultiValue for your body and query parameters. This approach is used in a lot of PSGI middleware and applications because it reduces the need to worry about if incoming parameters are scalars or arrays.

Catalyst::Request now has a new method 'body_data' which exposes perl structures of incoming body content such as JSON and nested parameters ( Catalyst now can read JSON posted data out of the box !)

We also fixed up docs, modernized some of the Moose code, added experimental support for IO-Async based event loops for doing non blocking IO (web sockets, long polling, streaming, etc. see the example repo on github for nonblocking IO and websockets under Catalyst) And some other stuff, go check out the change log and view the diffs.

I'll blog more about some of these updates, and retrospect this development cycle a bit later. And there's nothing stopping any of the rest of you from playing with this and blogging as well!

What's next? I'm not setting the start of a new goal specific development cycle, but of course the repo is still open and you can branch the code and hack as you wish. If you are looking for some ideas, feel free to checkout our quest hub list: http://questhub.io/realm/perl/explore/latest/tag/catalyst

Remember, there's lots of ways to contribute. You can code of course, but we also need people that review proposals and ask questions or consider solutions (see the quest hub link above), as well as people to blog, review documentation and just generally help out people when they are stuck on IRC.

Thanks again for everyones help, and please don't be upset if I forgot to mention you by name.

Catalyst on CPAN : https://metacpan.org/release/JJNAPIORK/Catalyst-Runtime-5.90050

Questhub: http://questhub.io/realm/perl/explore/latest/tag/catalyst

Git repo: git://git.shadowcat.co.uk/catagits/Catalyst-Runtime.git

Github: https://github.com/perl-catalyst/catalyst-runtime

This closes the hamburg branch. On a personal note, both my Hamburg hen and rooster were lost to predation over the summer, so this release will serve for me as a memorial to them. Thanks for checking in!

Jnap