[dancer-users] Dancer2 0.200000 is finally out!
ZahirLalani at oliver.agency
Wed Jun 1 09:44:01 BST 2016
Thx to team. Really impressed
Sent from my Samsung Galaxy smartphone.
-------- Original message --------
From: Pedro Melo <melo at simplicidade.org>
Date: 01/06/2016 05:02 (GMT+00:00)
To: Perl Dancer users mailing list <dancer-users at dancer.pm>
Subject: Re: [dancer-users] Dancer2 0.200000 is finally out!
Wow... this a huge release... :)
Congratulations to all the team, really amazing stuff!
On Tue, May 31, 2016 at 9:22 PM, Sawyer X <xsawyerx at gmail.com<mailto:xsawyerx at gmail.com>> wrote:
The long awaited new version of Dancer2<https://metacpan.org/pod/Dancer2> is finally on its way to CPAN mirror near you!
Why did it take so long, what's changed, and why the big bump in version?
In short: A new plugin system, reworked from scratch, that is still (mostly) backwards compatible.
The plugin system
One of the sore points left in Dancer2 is its plugin architecture. The idea was to have an easy, comfortable plugin system (similar to Dancer 1) but much smarter. Unfortunately while the idea was there, and some of the code was there, the goals were not fully achieved, due to tuit shortage.
This led to various problems with plugins, most notably, using plugins within other plugins. This was beyond frustrating for several plugin developers. The current system was simply insufficient. We decided to finally tackle this. I have an entire story about that, but I'll leave it for another time.
The new plugin system provides each plugin with its own instance, full Moo<https://metacpan.org/pod/Moo> classes (use attributes, roles, other plugins, whatever you want), full access to the internal objects (which, as a plugin developer, you might as well use), and cleanly decouples it from the user namespace. Despite it being object oriented, we still carefully try and handle the old keyword-based interface that the previous plugin system used. In places where it was not possible, we contacted the module authors, and provided pull requests to implement the new parts. We even collected statistics on which modules are supported, whether we submitted a PR, whether it was merged, and whether a new release was made. You can see this here<https://github.com/PerlDancer/Dancer2/issues/1078>.
The compatibility layer was incredibly involved and tasking and took several good developers, and myself, to get it done. Damien Krotkine (dams) even came back from semi-retirement just to help remove AUTOLOAD usage. He was missed. :)
Peter Mottram has worked tirelessly to get everything running as smooth as possible. He tracked everything, debugged, tested, submitted PRs, contacted and worked with authors, and basically did the work of about 20 people at once.
New core plugin
A beautiful gem that was a result of the second Dancer Conference (DancerConf<http://perl.dance/>), Dancer2::Plugin::SendAs<https://metacpan.org/pod/Dancer2::Plugin::SendAs> is now in core! Most people do not know about it. It allows you to override the serializer (or the lack thereof) per response.
Well, that's not really true. The truth is that we introduced a stronger version of it with more features!
The original keyword spec for Dancer<https://metacpan.org/pod/Dancer> and Dancer2<https://metacpan.org/pod/Dancer2> included header and push_header. This is only for response, not request. We now introduced variations explicitly for request and response, namely request_header and response_header (and more).
We fixed a problem with Megasplat, reported by Miyagawa-san.
We support new Plack<https://metacpan.org/pod/Plack> versions, a breakage that we marked as a mandatory high-priority issue.
A bit faster
We've internally moved to Type::Tiny<https://metacpan.org/pod/Type::Tiny> which will automatically load Type::Tiny::XS<https://metacpan.org/pod/Type::Tiny::XS>, making your program faster.
We also moved from Class::Load<https://metacpan.org/pod/Class::Load> to Module::Runtime<https://metacpan.org/pod/Module::Refresh> to both reduce dependencies and speed up the framework.
There had been quite a few more improvements and we would like to thank everyone who helped make this release such a great one. You can view all the changes in the Changes<https://metacpan.org/changes/distribution/Dancer2> log.
Now that we got the new plugin architecture out of the way, we can start concentrating on additional improvements and interesting changes. We will introduce a completely reworked documentation, named routes (or route aliases), and maybe a rainbow-colored pony which sneezes sunshine.
With much love, The Dancer Core Team.
dancer-users mailing list
dancer-users at dancer.pm<mailto:dancer-users at dancer.pm>
xmpp:melo at simplicidade.org<mailto:xmpp%3Amelo at simplicidade.org>
mailto:melo at simplicidade.org<mailto:melo at simplicidade.org>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the dancer-users