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
