Hot on the heels of our earlier gift (Dancer2 1.1.0) come two more plugin releases, Dancer2::Plugin::Cache::CHI and Dancer2::Plugin::Syntax::GetPost.
Enjoy! Let us know what you think. Happy holidays to all! (and now it is time for this Dancer to enjoy a long winter's nap)
Jason/CromeDome
]]>Happy Holidays! Dancer2 1.1.0 has been released and is on its way to CPAN. It has one really awesome new feature: named routes.
With this update, you can name each route in your Dancer2 application, then refer to that route by name with a new keyword, uri_for_route
. You have a lot of control over how this route is constructed, and can use it anywhere you were previously using uri_for
. This helps you to avoid the need for lengthy URL references in your code, and makes it easier for you to build applications that are easier to grow, maintain, and later refactor.
You can read more about it in the Dancer2 manual, or check out the pull request that introduced the change. As a bonus, the Twelve Days of Dancer (our mini-advent calendar) launches this week, and Sawyer has written a great article that covers this new feature and keyword in-depth.
Happy Dancing! Jason/CromeDome
]]>December is coming fast, so get your ideas in now. Please reply to this post if you’d be interesting in helping with this year’s advent calendar.
]]>So how did we get here? Why now? I'll cover the specifics in a future blog post, but suffice it to say for now, we're stable, and we've been stable for a long time, but this was never reflected in our versioning. It's beyond time to commemorate that milestone.
If you're expecting big changes, you'll be disappointed that there aren't many on the technical side. Much of what's in this release involves adding some polish in spots, and smoothing out some jagged edges in others. Some important highlights include:
For more details, please see the Changes file.
We've recently partnered with TPRF to make it easier to donate to Dancer2. We’ll have more details to offer about this soon, but TL;DR: donating to Dancer2 will now be easier to do, and donations will be tax-deductible. The Core Team hopes you’ll take advantage of this new arrangement and help fund future development of Dancer2 and its ecosystem.
A number of bugs and minor enhancements have been made to our website in preparation for this release. We’ve got some additional incremental improvements ahead, but we hope you find this to be a nicer resource than it has been previously.
There's a lot of excitement among members of the core team, and Dancer2 1.0.0 is just the beginning. We've got some awesome ideas coming to fruition in the weeks and months ahead.
How can you help? Use Dancer2! Blog about it, tell your friends, especially your non-Perl using friends. Report bugs, send pull requests, improve the docs, donate some coffee or pizza or spare change... it all helps us to keep delivering.
Thank you for being such an amazing community. You make this worth doing for all of us.
Love, hugs, and, of course, the dance of joy!
Jason Crome / CromeDome, on behalf of the entire Dancer Core Team
]]>You know, we don't have any uwsgi guides in Dancer2::Deployment. We have a big release coming up, would you be interested in contributing a sample config for that?
Thank you!
]]>Ruth is a longtime user of Dancer2, and has been one of our most vocal supporters in the greater Perl community. She’s responsible for a number of excellent additions to the Dancer2 ecosystem, and is an active member of our wonderful community.
Please join us in welcoming Ruth to our team. We’re looking forward to her continued contributions to the framework and community.
In other news, Steven Humphrey has retired from the Core Team. We’re grateful for his contributions to Dancer2, and wish him well in his future endeavors.
]]>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
]]>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
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
]]>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! :-)
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
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
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 (irc.perl.org#dancer) 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!
CromeDome
request_data
, to get the entire deserialized body of the requestCheck 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
]]>