Yet another Dancer2 release hitting CPAN as we speak, all the way from Granada, Spain, courtesy of YAPC::EU 2015.

We've made a few interesting changes, highlights of which I would like to share with you.

Fixes

Escaping file paths in regexes.

Handle response in before hook correctly when serializer available.

Correctly validate all options in route definition.

Custom error templates fixes, including in before hooks.

Unmask exceptions thrown by serializers.

Enhancements

Major optimizations! Dancer 2 is now at least as fast as Dancer 1. We're continuing work on optimizing it. If you have use-cases you would like us to take a closer look at, just let us know!

Better stack trace display.

Correctly set response content via "halt" keyword.

Switch to HTML5 templates!

Streamline and optimize serializer helpers ( to_json , from_json ).

Thanks

We want to thank our lovely contributors for this release (in alphabetical order): A. Sinan Unur, Achilles Kars, Andy Beverley, Dmitrii Tcyganov, Gabor Szabo, Kadir, Nick Tonkin, Patrick Zimmermann, Tina Müller, Vernon, and, of course, our core devs involved in this release: Alberto Simões, Mickey Nasriachi, Russell Jenkins, Sawyer X.

Future plans

We intend to introduce one major change and deprecate unsafe behavior.

We have a branch ready (which will be merged only after this release) that introduces three new keywords: query_parameters , body_parameters , and route_parameters . These will return values that make it unnecessary to validate whether you received a single value or multiple values. It's a change we've wanted to introduce for a while now.

We also plan to deprecate the ability to set route parameters that undermine two specific features in route matching: splat/megasplat and regex captures. Unless you have :splat or :captures placeholder variables in your route definitions, you will not even notice.

Have a great dance, :) Sawyer and the Dancer Core Dev Team.