On 05/31/2016 10:22 PM, Sawyer X 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?

It really took a while to get there - I remember when I tried to wrap my head 
around the plugin problem on
the ACT hackathon in Lyon back in 2014 :-).

I'm confident we found a good solution, otherwise GH issues are open 24/7.

<plug>Time to celebrate that at the Perl Dancer Conference 
(https://www.perl.dance), we need more
participants, speakers and sponsors!</plug>

Regards
        Racke

> 
> 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!
> 
> *New keywords
> *
> 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).
> 
> *Megasplat fix
> *
> We fixed a problem with Megasplat, reported by Miyagawa-san.
> 
> *Plack support
> *
> 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.
> 
> *Onwards
> *
> 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
> [email protected]
> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
> 


-- 
Please visit our 3rd Perl Dancer Conference 2016 in Vienna: 
https://www.perl.dance/.



_______________________________________________
dancer-users mailing list
[email protected]
http://lists.preshweb.co.uk/mailman/listinfo/dancer-users

Reply via email to