New Dancer, Dancer2 plus Ecosystem Updates

Welcome to 2023 (just a little bit late)! We've put together a number of long overdue updates for Dancer, Dancer2, and other parts of the ecosystem.

Dancer2 version 0.400001:

 [ BUG FIXES ]
* PR #1247: Fix edge case in plugin compat (Sawyer X)
* GH #1621: Fix recursion error in TT after longjump (Andy Beverley, Russell @veryrusty Jenkins)
* PR #1667: Remove failing module from GitHub Actions config (Jason A. Crome)

[ ENHANCEMENTS ]
* GH #769, PR #829, #1662: Rename show_errors as show_stacktrace (Nuno Ramos Carvalho, Sawyer X)
* GH #1594: Use Unicode::UTF8 if available (Sawyer X)

[ DOCUMENTATION ]
* GH #1657: Fix the Dancer2::DeprecationPolicy abstract (Jason A. Crome)
* GH #1661: Add 'gen' command to 'dancer2' runs (Steve Bertrand)
* PR #1671: Fix broken links in POD; avoid passive voice (Tom Hukins)

Dancer2::Template::Xslate version 0.2.0: - Add docs/warning about using Dancer2 layouts with cascading templates (Pedro Melo)

Dancer2::Session::CHI version 0.05: - Various doc fixes

Task::Dancer2 version 0.07: * This was woefully out of date. Updated for all Dancer2::* modules available today (thanks to GeekRuthie for the assistance)

Dancer version 1.3521 will be hitting CPAN soon: - Fix XML serializer tests (gregoa & Debian team)

The Dancer2 Wiki has seen some updates, too. Do you want to contribute, but aren't sure where to start? This handy guide has some good places to get started; there's a number of plugins for Dancer that haven't been ported to Dancer2, for example.

Is there something you'd like to see? Please add it to the wishlist!

As a final reminder, we marked a number of keywords, methods, and other code in Dancer2 for deprecation last year. Hard deprecation will take effect by the end of March, so any plugins built still relying on deprecated code will need to be updated. See this blog post for more information.

Looking forward to a great 2023! As always, happy Dancing!

Jason/CromeDome

Dancer2 0.400000 Released

Dancer2 0.400000 has been released, and is on its way to CPAN.

We realize that some of you might be curious as to the large version bump. There are a couple of reasons for this: - Modules we depend on bumped their minimum Perl version to 5.12, requiring us to follow suit. - As of 2022, Dancer2 has an official deprecation policy. We are implementing this policy effective with this release, and it will help shape and guide future development. - We’ve officially marked a lot of outdated and unused API as being deprecated.

With that, the following APIs, methods, etc. are now officially deprecated:

  • Dancer2::Test
  • request->dispatch_path
  • push_header
  • header
  • headers
  • context
  • Named placeholders: splat and capture

In plugins:

  • plugin_setting
  • dancer_app
  • request
  • var
  • hook

To discuss any of these, you can find issue for each of the above here.

We realize some users may be frustrated by the minimum version bump to 5.12. This was not a decision we arrived at lightly. Maintaining backwards compatability to Perl 5.8 requires resources we lack; resources we do have are better spent on work that advances the web framework for everyone. If you’re affected by this and would like to discuss, please reach out to the Dancer Core Team.

All changes in this release:

0.400000  2022-03-13 22:16:13-04:00 America/New_York

[ BUG FIXES ]
* PR #1634: Fix CI push setting to run tests on branches with / in the
  name (Stefan Hornburg - Racke)
* PR #1641: Fix uninitialized warnings from parsing routes with mixed
  regex/splats (Russell @veryrusty Jenkins)

[ ENHANCEMENTS ]
* PR #1627: Set minimum Perl to 5.10.1 (Peter Mottram - SysPete)
* PR #1643: Set minimum Perl to 5.12.5 (Jason A. Crome)

[ DOCUMENTATION ]
* PR #1633: Fix YAML example in the tutorial (Tina Müller)
* PR #1644: Add deprecation policy to docs; link git guide (Jason A.
  Crome)

This release would not have been possible without help and support from the Dancer Core Team, specifically Sawyer, Yanick, veryrusty, SysPete, Racke, and bigpresh; it also doesn’t happen without GeekRuthie cheering this on down the stretch. To all of of you that took the time to contribute to our deprecation policy, submit a patch, report a bug… thank you. I am truly grateful to each and every one of you for helping to make this release happen.

Happy Dancing!

Jason / CromeDome

Draft: Dancer2 Deprecation Policy

Hello fellow Dancers!

I have posted a draft deprecation policy for the Dancer2 code base for public review.

The Dancer Core Team has done our best to look at this every which way and cover all potential issues and use cases, but we're sure to have missed something here or there. So take a look and let us know. Your feedback is welcome - please add comments, feedback, and suggestions on the issue.

Thanks in advance! :-)

Dancer2 0.301004 Released

On behalf of the Dancer Core Team, I'd like to announce the availability of Dancer2 0.301004. This is a maintenance release with two bug fixes only: one corrects an omission from the tutorial, and the other adds a missing dependency to Dancer2's cpanfile.

You can read the complete [changelog](https://metacpan.org/changes/distribution/Dancer2)
here. If you need help, please reach out on IRC (irc.perl.org#dancer) or our
[mailing list](https://lists.perldancer.org).

Happy Dancing!
Jason/CromeDome

Dancer2 0.301003 Released

On behalf of the Dancer Core Team, I'd like to announce the availability of Dancer2 0.301003. While there are a number of bug fixes and documentation improvements in this release, there are two new features that I'd like to point out:

  • Git support from the CLI: When scaffolding a new Dancer2 app from the command line, you can now initialize a new Git repository and set the remote all at once. Passing the --git option to dancer2 gen will initialize a new repository, and --remote will take a URL for your remote repository (git:// and https:// are both supported).

  • Out-of-the-box Docker support: There are a lot of ways to containerize your Dancer2 application, but sometimes we all need a little help getting started. Using the --docker argument to dancer2 gen creates a Dockerfile for your application based on the latest stable Perl image available. Once your application is generated, there are instructions for how to run your app via plackup or Docker.

You can read the complete changelog here. If you need help, please reach out on IRC (irc.perl.org#dancer) or our mailing list.

I'd like to thank Oliver Marketing for their contributions towards the development of Dancer2, and our community for the ideas, questions, bug reports, and support of the Core Team and what we do. Thanks for making our little slice of the greater Perl community a nice place to be.

Happy Dancing!
Jason/CromeDome