[dancer-users] Dancer 0.202000 allows plugins to call DSL (even of other plugins!) and fixes unicode support for parameter methods

Jason A. Crome cromedome at gmail.com
Sat Aug 13 20:08:03 BST 2016

Dancer2 0.202000 is on its way to a CPAN mirror near you, and brings
several important bug fixes and enhancements.

Plugins may now easily call the application’s DSL using `$self->dsl`.
For example, logging a debugging message is as easy as
`$self->dsl->debug( “I’m in your plugin!” );` Plugins can now also
call the syntax of plugins that they have loaded. Consider this

Your Dancer2 application (`MyApp`) uses plugin `Foo`. Plugin `Foo`
uses plugin `Bar`. Plugin `Bar` adds `baz()` to the DSL. Plugin `Foo`
can now access `baz()` (just like the DSL in Dancer2 works), however,
`baz()` is only accessible to the Foo plugin, *not* `MyApp`.

Please keep in mind that if plugin `Bar` adds any hooks, those hooks
are added to `MyApp`, but `Bar`’s DSL is not available to `MyApp`.

The parameter methods in Dancer2 (`body_parameters()`, etc.) were not
decoding Unicode values passed to them. All parameter methods are now
decoding Unicode characters.

There have been several maintenance issues regarding `Type::Tiny::XS`,
and these were causing compilation and runtime failures for users of
Dancer2 on Strawberry Perl. Until these issues are resolved, we have
returned to using `MooX::Types::MooseLike` for type checking. If
you’re a plugin author, please check your plugin against this release
as this change may require some reworking on your part. Please find us
on `irc.perl.org#dancer` with any questions or help you may need.

A memory leak was uncovered in `Dancer2::Plugin`, and has been patched
in this release. A test has been added to check for this in the

If you have `HTTP::XSCookies` installed, we will now use it, and
cookie operations will be substantially faster.

The full changelog is as follows:

    0.202000  2016-08-13 13:50:30-05:00 America/Chicago

    [ BUG FIXES ]
    * Fix memory leak in plugins. (Sawyer X)
    * GH #1180, #1220: Revert (most of) GH #1120. Change back to using
      MooX::Types::MooseLike until issues around Type::Tiny are resolved.
      Peter (@SysPete) Mottram
    * GH #1192: Decode body|query|request_parameters (Peter Mottram)
    * GH #1224: Plugins defined with :PluginKeyword attribute are now
      exported. (Yanick Champoux)
    * GH #1226: Plugins can now call the DSL of the app via $self->dsl
      (Sawyer X)

    * PR #1223: Add YAML::XS to Recommends (Peter Mottram)
    * PR #1117: If installed, use HTTP::XSCookies and all cookie operations
      will be faster (Peter Mottram)
    * PR #1228: Allow register_plugin() to pass @_ properly (Sawyer X)
    * PR #1231: Plugins can now call the syntax of plugins they loaded
      (Sawyer X)

    * PR #1151: Note that config is immutable after first read (Peter Mottram)
    * PR #1222: Update list of files generated by `dancer2 -a`, make name of
      sample app consistent (Daniel Perrett)

If you have any questions, please find us at `irc.perl.org#dancer`.

Thank you to our amazing community and plugin developers for your
continued support.
Your questions, contributions, and the support you give the core team
and each other continue to make the Dancer2 community great.

Just a reminder, the Dancer conference in Vienna, Austria is quickly
approaching. If you are interested in attending or giving a talk,
please visit the [conference website](https://www.perl.dance/).

Happy dancing!

Jason A. Crome / CromeDome
On behalf of the Dancer Core Team

More information about the dancer-users mailing list