Dancer2 0.301002 Released

On behalf of the Dancer Core Team, I'd like to announce the availability of Dancer2 0.301002. This release includes a number of enhancements and documentation changes along with several bugfixes. The most notable enhancement is a brand new command line interface, and I highly encourage you to check it out.

This is feature-for-feature compatible with the previous CLI, but has a few minor cosmetic differences from the prior version. Under the hood, however, it is entirely different. We previously used App::Cmd as the basis for our CLI, but recent changes to it bumped the minimum Perl version to 5.20. As we strive to maintain compatibility back to at least Perl 5.10, this caused some problems for users stuck on older Perl versions. We monkey-patched a fix in a previous version, but our new-and-improved CLI based on CLI::Osprey is the path forward. Even better, CLI::Osprey has no dependencies outside of those we already had in the Dancer2 toolchain, so your favorite lightweight web framework just got even lighter.

You can read the complete changelog here. If you need help, please reach out on IRC ( or our mailing list.

Thank you to our users for being one of the best parts of the Perl community. We appreciate your continued feedback and support. Please reach out with any suggestions or needs you have.

Happy Dancing!

Dancer2 0.301000 Released

On behalf of the Dancer Core Team, version 0.301000 is now available. This is not the release we envisioned; it is missing some things we'd like to have finished, but it does have a couple of new things worth pointing out:

  • A new keyword, request_data, to get the entire deserialized body of the request
  • A new Cookbook recipe for showing how to dynamically enable/disable modules and routes at runtime
  • Numerous doc and bug fixes.

Check out the changelog for a complete list of changes.

The big thing worth pointing out is App::Cmd, which is now not a requirement of Dancer2. A new version of App::Cmd was released with a minimum version requirement of Perl 5.20. We aim to support Dancer2 back to Perl 5.10, which was no longer possible with the current App::Cmd. We had several options to consider in moving forward, and the one we chose was this:

If you want to use the Dancer2 CLI, you musy explicitly install App::Cmd. If you have previously installed Dancer2, all is well. If this is a new install and you are on a Perl older than 5.20, you will not be able to use the CLI (dancer2 gen) until you can upgrade your version of Perl, or you can install a version of App::Cmd version 0.331 or older (generally, cpanm App::Cmd@0.331 will do here). On Perl 5.20 or newer, install App::Cmd if you want to use the CLI and you're golden.

A more well-thought out solution will be provided in a not-too-distant release.

We know this does not make for the best user experience, and for that, we apologize. Not breaking backwards compatability is important, however, and for the short-term, this seemed like the best solution. We will deliver something better (and more permanent) soon.

Thanks for your patience and continued support. Now, go forth and keep dancing! Jason / CromeDome

Dancer2 0.300005 Released

Well, it’s been a hot minute since the last release, hasn’t it? Dancer2 0.300005 has landed on CPAN and features a number of bug fixes, enhancements, and doc patches:

0.300005  2021-01-26 15:57:41-05:00 America/New_York

* GH #1546: Add MIME type for all files served from public (Russell 
  @veryrusty Jenkins)
* GH #1555: Remove all leftovers of warnings config setting (Sergiy 
* GH #1557: Remove HTTP::XSCookies workaround (Alexander Pankoff)
* GH #1564: Add script_name to redirects beginning with / (Nigel Gregoire)
* GH #1567: Fix CSS so errors do not display ourside of <pre> HTML
  element (Elliot Holden)
* GH #1568: Serializer::Mutable doesn't auto-load other serializers
  (Russell @veryrusty Jenkins)
* GH #1579: Fix missing push_header method in Response::Delayed 
  (Paul Clements)

* GH #1552: Update jQuery (Sergiy Borodych)
* GH #1558: Test to make sure uploads aren't discarded after the
  forward keyword is used (Alexander Pankoff)
* GH #1571: Add GitHub Actions support (Gabor Szabo)
* GH #1572: Install Dancer2::Session::Cookie in order to run the test 
  t/issues/gh-811.t (racke)

* GH #1490: Document Dancer2::Core::App->template() (Steve Dondley)
* GH #1551: Fix pod for cookie same site attribute (Sergiy Borodych)
* GH #1562: Fix links, missing code in Tutorial (cloveistaken)

I have already lined up a number of issues for inclusion into the next release, which should be landing in early February (as of now).

Thanks for your patience with the long break between the releases, we (hopefully) won’t do that to you again.

Happy Dancing! See you in February!

The Twelve Days of Dancer, 2020 Edition

Need some joy this holiday season? Head over to the Dancer Advent Calendar for this year's Twelve Days of Dancer. With a little help from our friends, we've put together a 12-day mini advent calendar featuring some great software built in Dancer, some helpful tips and tricks, new features, and more.

Thanks for being such a great community, and for your continued support of Dancer! Wishing you the happiest of holiday seasons!

CromeDome (on behalf of the Dancer Core Developers)

Dancer2 0.300004 Released

The Dancer Core Team would like to announce the availability of Dancer2 0.300004. This release brings several important fixes and enhancements:

  • Session cookies can be restricted to a first-party or same-site context

  • There were a number of spots where Dancer2 would return a 500 error upon receiving an invalid request, rather than (correctly) returning 400 - Bad Request. Many, if not all, of these have been fixed.

For more information about same-site context, please refer to RFC-6265bis.

To use this, add the cookie_same_site key to your session engine configuration in the appropriate YAML file. Valid settings include Strict, Lax, and None.

The complete changelog is as follows: 0.300004 2020-05-26 20:52:34-04:00 America/New_York

* GH #1509: Request instantiation fails throw 400 Bad Response (Russell
  @veryrusty Jenkins). This resolves GH #1056, 1482, 1496, 1507, 1508,
  and 1510.

* GH #1510: Test for proper multi-part form handing (ice-lenor, Sawyer X)
* GH #1547: Cookie SameSite support (Russell @veryrusty Jenkins)

* None

Thanks for your pull requests and bug reports. We really appreciate the help we receive from our community!

Until next time, keep on Dancing!