1.3051 27.05.2011
** Security release based on 1.3050 **
[ SECURITY ]
* FIX CVE-2011-1589 (Mojolicious report, but Dancer was vulnerable as well).
Return "400 Bad Request" when requested filename seems suspicious
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1589
(Vladimir Lettiev and Franck Cuny)
1.3050 20.05.2011
** Codename: The Captain Hook Adventure // Franck Cuny **
[ ENHANCEMENTS ]
* No functional changes, just releasing as stable.
[ DOCUMENTATION ]
* Improve Dancer documentation
(Damien Krotkine)
1.3049_01 14.05.2011
[ API CHANGES ]
* Deprecation of 'logger' (use set). (Alberto Simões)
* Deprecate 'layout' (use set). (Alberto Simões)
* Definitely remove plack_middlewares HashRef deprecation.
(Alberto Simões & Damien Krotkine)
[ BUG FIXES ]
* Unbreaking auto_page somewhat - the catch-all route added will
pass unless a suitable view exists. This means that routes like
/foo are not obscured, and made up URLs will result in a proper
404, not 500. A little more work required here, though.
(David Precious)
* Anchor regular expression routes. Before regular expressions
were matching anywhere in the URL.
(Alberto Simões)
[ ENHANCEMENTS ]
* GH #519: remove redundant lines from CSS
(Alberto Simões)
* When scaffolding an app, show a warning if YAML not installed.
Prompted by Issue 496. (David Precious)
* Hooks! add new positions for hooks, and possibility to create
your own hooks inside your application and your plugin.
(Franck Cuny)
* Don't try to read/set session vars with empty/undef keys. It
doesn't make sense to do so, and can cause warnings elsewhere.
(David Precious)
* Check HTTP status code/alias passed to status() is valid;
previously, and invalid code would result in the response status
being unset
(David Precious, prompted on IRC by jonas)
* Lowercase status aliases and swap spaces for underscores before
trying to match
(David Precious, suggested on IRC by jonas)
* Added 'behind_proxy' setting, making Dancer honor
X_FORWARDED_PROTOCOL and X_FORWARDED_HOST
(Alberto Simões, requested by sukria and others)
1.3040 01.05.2011
** Codename: Yanick in Black // Yanick Champoux, Labor Day - May Day **
[ ENHANCEMENTS ]
* No functional changes, just releasing as stable.
1.3039_01 27.04.2011
[ BUG FIXES ]
* Fix 404 results from forwarding.
(Alberto Simões)
* Don't remove trailing slashes from route patterns under prefix.
(Brian E. Lozier)
* Remove deprecated r() function from list of exports.
(Stefan Hornburg)
* GH #402: make session_expires honor +2h style formatting.
(Michael G. Schwern)
* GH #433: encoding issues with forward().
(Alberto Simões)
* GH #390: Renaming access_log to startup_info (+doc).
(Sawyer X)
* Rewrite scalar usage of qw() that is incompatible with 5.14.
(Alberto Simões)
* Don't parse ARGV when under PSGI (closes #473)
(Franck Cuny)
[ ENHANCEMENTS ]
* Forward can change method GH#493
(Alberto Simões)
* Introducing the "megasplat"!
(Yanick Champoux)
* More tests for versions, setings and variables.
(Alberto Simões)
* Improve Dancer::Test so failures report the correct line numbers.
(Michael G. Schwern)
* GH #466: Can now set cookies with http_only => 0 for JS integration.
(Alberto Simões)
* Session engine can be told to set cookies without HttpOnly attribute using
new session_is_http_only setting.
(Alberto Simões, requested by JT Smith)
* GH #296: Show versions of loaded modules in startup info.
(Sawyer X)
* Able to set more than one value at once using set().
(Alberto Simões)
* GH #253: Use Clone::clone() if available to clone data before censoring.
(Sawyer X)
* GH #246: Dancer::Test can now test for file uploads as well.
(Franck Cuny)
* Allow parameters in forward().
(Alberto Simões)
[ DOCUMENTATION ]
* Major rewrite/reorganization on Dancer::Config documentation.
(David Precious, pushed by Alberto Simões PR)
* GH #284: Document hosting multiples Dancer apps in a single PSGI file.
(Franck Cuny)
* Dancer::Session POD typos and spurious characters.
(Stefan Hornburg)
1.3030 13.04.2011
** Codename: Silence of the ambs // Alberto Simões **
[ ENHANCEMENTS ]
* Change the flag for sending system-wide path with send_file to
'system_path' (was 'absolute').
(Alberto Simões)
1.3029_03 10.04.2011
[ BUG FIXES ]
* Dancer::Session::Cookie 0.14 is required for dependency test.
* Only test for undef serializer if we have the default (JSON) available.
(Sawyer X)
[ ENHANCEMENTS ]
* Test before_template & auto_page.
1.3029_02 08.04.2011
[ BUG FIXES ]
* Better way to initialize the logdir in Dancer::Logger::File.
Works now cleanly if the appdir is not writable but the logdir exist and
is writable.
(Alberto Simões)
* fix warnings in t/03_route_handler/28_plack_mount.t.
(Franck Cuny)
[ ENHANCEMENTS ]
* Support for error templates.
If the setting "error_template" is set, it is used when building an error
page instead of using the default template.
Added the appropirate documentation as well.
(Alberto Simões)
* Dancer::Test::dancer_response() returns a 404 response when no route
handler is found. This is consistent with what Dancer does internally.
(Alberto Simões)
* Dancer::Test provides a new helper for inspecting subsets of headers:
"response_headers_include".
(Alberto Simões, Alexis Sukrieh)
* dancer_response now handles the rendering of static pages as well.
(Alberto Simões)
* Cleanup some tests.
(Alberto Simões)
[ DOCUMENTATION ]
* POD fix.
(Stefan Hornburg - Racke)
1.3029_01 01.04.2011
[ BUG FIXES ]
* Fix t/14_serializer/02_json.t to work with older JSON (relates to GH#416)
(Damien Krotkine)
* the Changelog test now supports Codenames. It suggests to add codenames
for table releaes as well
(Damien Krotkine)
* GH #420: Extra content generated
(Alberto Simões, Damien Krotkine)
* GH #409: If pass has no more matching routes, return 404.
(Alberto Simões)
[ ENHANCEMENTS ]
* GH #396: Test that Dancer::Session::Cookie isn't broken
(Michael G. Schwern)
* GH #399: Make sure session can have their name changed.
(Michael G. Schwern)
* Dancer::Test tests assumes 'GET' if their first argument is scalar.
(Yanick Champoux)
* send_file accepts optional content-type declaration, to override guessed
MIME type, e.g. send_file $filename, content_type => 'image/png'
(Alberto Simões, requested by Michael G Schwern)
* send_file accepts optional absolute option, to send an absolute path
(Alberto Simões)
* Have `dancer` cmd tool create MANIFEST and MANIFEST.SKIP.
(Alberto Simões)
* mime_type is deprecated; new keyword 'mime'; new config key
'default_mime_type';
(Alberto Simões and Michael G. Schwern)
* Recognize absolute redirects
(Yanick Champoux)
[ DOCUMENTATION ]
* Add documentation to send_file optional argument
(Alberto Simões)
* Fix plack_middlewares example in the cookbook
(Michael G. Schwern)
* Extend the POD on plugin_setting to prevent a pitfall with plugin
modules more than 3 levels deep.
(Stefan Hornburg)
* GH #400: Documenting the plack_middlewares_map.
(Michael G. Schwern, Sawyer X)
* GH #422: Documenting no need for caret when you have a prefix.
(Sawyer X)
1.3020 21.03.2011
** Codename: The Schwern Cometh // Michael G. Schwern **
[ ENHANCEMENTS ]
* No functional changes, just releasing as stable.
1.3019_02 14.03.2011
[ BUG FIXES ]
* GH #354: Tokens are not passed to layout if no params are passed to
template.
(Damien Krotkine)
1.3019_01 13.03.2011
[ BUG FIXES ]
* GH #393: Reset vars for each new request.
(Franck Cuny)
[ ENHANCEMENTS ]
* GH #391: Dancer::Logger::Note now exists. :)
(Sawyer X)
* Porting documentation on WRAPPER to Dancer::Template::TemplateToolkit.
(Sawyer X)
* GH #387: Document views and appdir in Dancer::Config.
(Michael G. Schwern)
* Add a new symbol to exporter ':script'.
(Franck Cuny)
* GH #397: Support cookie expire times like "+2h".
(Michael G. Schwern)
1.3014_01 10.03.2011
[ BUG FIXES ]
* GH #373: Display valid path to the main app file in the welcome screen.
(Franck Cuny)
* GH #152, GH #170, GH #362: Log dir is not created when logger is not set
to 'file', and setting log_path works as expected.
(Franck Cuny)
* GH #308: Use request's uri_base.
(Sawyer X)
* GH #378: Some routes with prefix where wrongly matched.
(Franck Cuny)
[ ENHANCEMENTS ]
* GH #351: Explicitly exclude some keywords when important Dancer's syntax,
add modes that also excludes some keywords (:moose, :tests).
(Sawyer X, Naveed Massjouni, Michael G. Schwern, Franck Cuny)
* All logging options accept any number of variables.
(Sawyer X)
* GH #297: All logging options can automatically serialize references.
(Sawyer X)
* Add Dancer::Logger::Capture to capture and read log messages during
testing.
(Michael G. Schwern)
* Dancer::Cookie make secure (https only) cookies. It also adds the
"session_secure" setting instructing sessions to use secure cookies.
(Michael G. Schwern)
* Adding uri_base to Request.pm.
(Sawyer X)
* Make Dancer::Test use the capture logger
(Michael G. Schwern)
[ DOCUMENTATION ]
* Dancing on command line.
(Maurice Mengel)
* Improve Dancer::Cookbook.
(Maurice Mengel)
1.3014 04.03.2011
[ BUG FIXES ]
* YAML Session UTF-8 Fix
(Roman Galeev)
* Tests and documentations for Dancer::Request::Upload + type method in
Dancer::Request::Upload
(Michael G. Schwern)
* Dancer::Test::dancer_response handles correctly its 'body' parameter
We can now pass a hash ref as the body of dancer_response, it will
automatically be serialized as an URL-encoded string with the appropriate
content_type header.
(Alexis Sukrieh)
1.3013 01.03.2011
[ ENHANCEMENTS ]
* Fix test suite: the changelog test is skipped if not under
RELEASE_TESTING environment.
1.3012 01.03.2011
[ BUG FIXES ]
* Fix cookies disappearing when more than one is set.
Complete refactoring of the cookie handling.
(Chris Andrews, Geistteufel)
* Properly set the settings in Dancer::Test only after config loading.
(Sawyer X)
* Fix possible loss of last directory in path.
(Sawyer X)
* No need for default upper directory in Dancer::Test. This fixes an issue
raised on the list about the default scaffolded test failing.
(Sawyer X)
* Fix anti UNC substitution under Cygwin
(Rowan Thorpe)
* GH#299 Return appropriate headers on HEAD request (content-type, ...)
(franck cuny)
* Use the dancer_version variable in scaffolded app.
(Sawyer X, reported by Brian E. Lozier)
[ ENHANCEMENTS ]
* Fix manifest
(Damien Krotkine)
* Various packaging, changelog and test fixes
(Damien Krotkine)
* Add a new accessor to Dancer::Request: ->uri.
(it's an alias to ->request_uri)
(Franck Cuny)
* Removes Dancer::Helpers, refactor Dancer.pm accordingly.
(Franck Cuny)
* Introduce changelog test of hell.
(Damien Krotkine)
* Add Dancer::Logger::Null.
(Sawyer X)
* Add Dancer::Logger::Diag.
(Sawyer X)
* Refactor Dancer::Response
(franck cuny)
* Allow to use a subclass of Template::Toolkit.
(Michael G. Schwern)
* Dancer::Test now uses Dancer::Logger::Null instead of ::File.
(Sawyer X)
* Add Dancer::Deprecation. (handle deprecation messages)
(franck cuny)
* Introduce new timestamp format in logger (%T)
(Roman Galeev)
* Refactoring of the forward method
(Alex Kalderimis)
* Refactoring of internal objects in the core,
use more of Dancer::Object. Introduce attributes_defaults
(Damien Krotkine)
* Add a perl_version variable to all templates, used in scaffolded app.
(Sawyer X, reported by Brian E. Lozier)
* Better output when template file is missing.
(Brian E. Lozier, Sawyer X)
[ DOCUMENTATION ]
* Add missing methods (e.g. "referer"), sorting, clean up.
(Flavio Poletti)
* Complete working example of deployment under Nginx/Starman in
Deployment.pod
(Geistteufel)
1.3010_01 12.02.2011
[ BUG FIXES ]
* GH#136: fix again Mime::Type issues in preforking environment
(Chris Andrews)
* GH#220: fix for path issues under MacOS X and Windows platforms.
A new function is provided by Dancer::FileUtils: path_no_verify()
(Rowan Thorpe)
* Fix for infinite loops detection in before filters
(Flavio Poletti)
[ ENHANCEMENTS ]
* Better detection of the application layout under non-UNIX platforms.
(Rowan Thorpe, Alexis Sukrieh)
[ DOCUMENTATION ]
* Fix a typo in Dancer::Request::Upload's POD
(Rowan Thorpe)
* Better documentation for the before filters, explanations about the
potential infinite loops that can happen when using before filters (and
what Dancer does in that case).
(Flavio Poletti)
1.3011 14.02.2011
[ BUG FIXES ]
* Set binmode in write_data_to_file() to fix image corruption in
Windows
(Rowan Thorpe)
* GH#319, GH#278, GH#276, GH#217: Fix file issues on Cygwin and
Win32 platforms
(Rowan Thorpe)
* GH#322: Detect errors in scaffolded dispatchers
(Alberto Simões)
* Fix tests so that they don't fail if JSON is not installed
(Damien Krotkine)
[ DOCUMENTATION ]
* Small spaces fix (Alberto Simões).
1.3010_01 12.02.2011
[ BUG FIXES ]
* GH#136: fix again Mime::Type issues in preforking environment
(Chris Andrews)
* GH#220: fix for path issues under MacOS X and Windows platforms.
A new function is provided by Dancer::FileUtils: path_no_verify()
(Rowan Thorpe)
* Fix for infinite loops detection in before filters
(Flavio Poletti)
[ ENHANCEMENTS ]
* Better detection of the application layout under non-UNIX platforms.
(Rowan Thorpe, Alexis Sukrieh)
[ DOCUMENTATION ]
* Fix a typo in Dancer::Request::Upload's POD
(Rowan Thorpe)
* Better documentation for the before filters, explanations about the
potential infinite loops that can happen when using before filters (and
what Dancer does in that case).
(Flavio Poletti)
1.3010 10.02.2011
[ BUG FIXES ]
* GH#303: Generated Makefile.PL's clean is done correctly now.
(Sawyer X)
* Minimum version of HTTP::Headers to avoid test fails.
(LoonyPandora)
* Do not require JSON to get version number (fixes tests).
(Sawyer X)
[ ENHANCEMENTS ]
* Allow read_file DWIMishness using wantarray.
(LoonyPandora)
* Tidy up Dancer.pm
(Damien Krotkine)
* Document forward should use return.
(Sawyer X)
* GH#290: Use return with redirect examples in docs.
(Damien Krotkine)
* Document that base() returns a URI object.
(David Precious)
* Show version when starting standalone server.
(David Precious)
1.3003 06.02.2011
[ API CHANGES ]
* Remove load_plugin from the core's DSL (was deprecated).
[ BUG FIXES ]
* Eliminate test warnings on Windows.
(Gabor Szabo)
* GH#271 - use correct VERSION_FROM in scaffolded application.
(Sawyer X)
* GH#260 - send_file doesn't clobber existing headers
(Alexis Sukrieh)
* logger unicode bugfix in the formated date
(jahmed)
* GH#281 - Don't crash if splat is used with no captures
(David Precious)
* Possible to given "template" a view name with the extenstion.
(Alexis Sukrieh)
[ ENHANCEMENTS ]
* New setting log_path to allow for alternalte logging path in logger
"file".
(Natal Ngétal)
* GH#289: Add more aliases on the ENV, provide more smart accessors to Plack env
entries
(Franck Cuny)
Dancer 1.3002
[ API CHANGES ]
* to_json and from_json accept options as hashref instead of hash.
Passing arguments as hash is deprecated
(Franck Cuny).
[ BUGFIXES ]
* status is kept even when halt is used in a before filter
(Alexis Sukrieh)
* Proper handling of temporary file creation using File::Temp module
instead of homebrew solution. (jahmed)
* Logger::Abstract unicode bug fix. (jahmed)
[ ENHANCEMENTS ]
* In development, pretty-print JSON serializations for easier development
(Ask Bjørn Hansen)
Dancer 1.3001
[ Flavio Poletti ]
* Added "git fetch upstream" for remote tracking
* turned a tab into the right number of spaces
* Fix weird Plack error "status code needs to be an integer greater than
or equal to 100", because of a typo in a call to Dancer::Error
(Closes issue GH#264)
[ Franck Cuny ]
* uri_(un)escape cookie value; closes GH-248
* remove websocket tutorial (it has its own distro now)
* add a new tests to make sure unknown templates produce a warning
* path for send_file must be relative from the public directory
* Support for complex values in cookies (scalars, flat arrays and
flat hashes). Fixes issue GH#249
[ David Precious ]
* Point people towards D::P::Database in the tutorial.
* Mention leaving ratings on cpanratings.
* Some minor typo fixed in the documentations.
[ mokko ]
* typos and a little more substatial changes to Development.pod
[ Hagen Fuchs ]
* Request.pm Decode HTTP::Request's uploads
[ Alberto Simoes ]
* Support for aliases for content_type and refactoring of
mime-types handling, with a new class Dancer::MIME
(closes issue GH #124)
* Deprecation of Dancer::Config::mime_types (now handled by Dancer::MIME).
[ jahmed ]
* Fix a bug in YAML session backend, during the creation of the session
file.
Dancer 1.3000_02
[ Sawyer X ]
* Added forward() functionality (incl. tests and docs)
[ Damien Krotkine ]
* FIX for --no-check switch in script/dancer
* Refactoring of Dancer::Template::Abstract
- add support of apply_layout and apply_renderer
- deprecation of render_with_layout (now handled better)
- add an accessor "engine" to the DSL to access any engine singleton
- better interface for Dancer::Object and Dancer::Object::Singleton
- updated tests accordingly
[ Jonathan Otsuka ]
* Bring dancer application creation pod up-to-date 1.2003
Dancer 1.3000_01
[ Damien Krotkine ]
* Better check of keywords used in plugins.
* internal refactoring:
- Dancer::Object::Singleton added to refactor engines later
- Support of inheritance in attributes declared with Dancer::Object
[ jamhed ]
* Fix some unicode issues, refactored all file openings in one function in
Dancer::FileUtils.
[ Gabor Szabo ]
* Adding test for multi-leveled scaffolding.
[ Maurice Mengel (mokko) ]
* Skip file upload tests on Cygwin, not just win32.
[ Alan Haggai ]
* Fixing up typos in various places.
* Show the correct filename in usage.
[ Alexis Sukrieh ]
* Update documentation for developers. Dancer::Development reflects the new
releases startegy since 1.2 is out. Also better explaining about how
to contribute pull-requests to the core team.
* New documentation for integrators: Dancer::Development::Integration
describes precisely how integrators should handle pull-requests.
[ Naveen ]
* add a --no-check switch to script/dancer to disable remote check of new
Dancer versions.
[ Philippe Bruhat ]
* add script/wallflower, helper to turn a Dancer application into a static
web site.
* better behaviour for plugin_setting (better search, more user-friendly)
[ Franck Cuny ]
* Support for configurable log format in logger engines
* Refactoring of Dancer::Route, some optimisations and code cleanup
* Add several tests to increase the coverage (reached 92.4%, for 1399 tests)
Dancer 1.2003
* Production release.
Dancer 1.2002_02
[ Danijel Tasov ]
* Correct HTTP.pm POD's 503 entry with 403.
[ Paul Tomlin ]
* Tests for URI object in uri_for.
* Update Plack middleware tests compatibility.
Dancer 1.2002_01
[ Joel Roth ]
* Code fixes in documentation (Dancer::Session, Dancer::Introduction).
[ Franck Cuny ]
* Fix test failures on old machines with Test::More without done_testing.
Dancer 1.2002
* Productionized! :)
Dancer 1.2001_01
[ David Precious, Ivan Bessarabov ]
* Fixing TT example config.
[ Danijel Tasov ]
* Default layout now validates.
Dancer 1.2001
[ Sawyer X ]
* Fix clash with KiokuDB because of Dancer::Serializer::Dumper.
[ Franck Cuny ]
* Refactoring engine triggers. This resolves an issue of engine inits being
run before all configuration is read. That also crashes D::S::Cookie.
As a side effect we now have a refactored _set_setting() which does not
trigger any engine hooks (unlike setting()).
* Fix failing test t/07_apphandlers/06_debug.t
[ David Precious ]
* Doc fixes. Clarifications to Cookbook's REST section.
* Don't crash if application name is invalid and provide better information.
Dancer 1.2000
** 1.2 is a stable release of Dancer **
** We assure consistency and stability for this release and the following **
** 1.2xxx releases; you should not have issues updating to any 1.2xxx **
** version because of it. **
++ A very special thanks goes to the Dancer community who improved and ++
++ perfected this release and worked hard on reporting bugs, fixing them, ++
++ improving the stability, providing important features and everything ++
++ else which makes Dancer so attractive - and above all: its community ++
++ so thank you! ++
[ Sawyer X ]
* Fixing some more XML tests with missing preqreqs.
Dancer 1.1999_04 (RC4)
[ Sawyer X ]
* Load Plack::Loader dynamically in test.
[ Yanick Champoux ]
* Doc fix.
Dancer 1.1999_03 (RC3)
[ Alexis Sukrieh ]
* Transparent unicode support
Dancer now takes care transparently of decoding unicode strings
used within route handlers and encoding them back before sending
a response content. Once the 'charset' setting is set, the user
has nothing more to do to have a working unicode-aware application.
* FIX for issue #172
More documentation added to Dancer::Request, all public method
are documented. A pod coverage test has been added for this
module.
* Documentation update The deployment documentation is more precise about
cgi/fast-cgi deployment under Apache.
* FIX for issue GH#171
Scaffolded configuration files are fully commented in order to quickly
guide the user in her first steps.
[ Damien Krotkine ]
* Fix Dancer::Plugin OO issue
[ Danijel Tasov ]
* Fixed expires in cookies + tests
[ Philippe Bruhat ]
* Dancer::Logger::Abstract: turn _should() into a closure, and avoid
setting up the hash again and agai
[ Franck Cuny ]
* Closes issue 181 (unknown log level)
* Plack middlewares must be listed in an arrayref (listing them in a
hashref is now deprecated)
[ Al Newkirk ]
* fixed redirect to redirect immediately (+ refactoring by franck)
[ Dave Doyle ]
* clarify Pod as to how before_template works
[ Sawyer X ]
* Overhaul tests to use lib t/lib instead of t::lib::.
(fixes Windows test fails)
* PSGI envs on Windows is in capital letters.
(fixes Windows test fails)
* Add tests on every required directory to create a fake environment.
(realpath() on Windows fails when path doesn't exist)
Dancer 1.1999_02 (RC2)
[ Mark Allen ]
* Add a tutorial (Dancer::Tutorial)
* example application 'Dancr', provided in example/
[ Franck Cuny ]
* Dancer::Test load D::Session::Simple
* rewrite how Dancer handle HTTP headers
- no more Dancer::Headers
- all headers are HTTP::Headers object
[ Philippe Bruhat ]
* use Pod::Usage
[ Damien Krotkine ]
* replace all die and warn with croak and carp
[ Alexis Sukrieh ]
* FIX for issue GH #151
utf8 pragma is imported automatically when Dancer is loaded
to allow the usage of UTF-8 strings in the application code.
(Thanks to kocoureasy for the report).
* FIX for "UTF-8" issues (GH#153):
- response content is encoded only if content_type is text
- charset setting is normalized to UTF-8 when appropriate
- automatically decode UTF-8 strings in params
* FIX scaffolded dispatchers (script/dancer)
The PLACK_ENV variable is not propagated by Apoache to the dispatchers (at
least with our Deployment examples) so the dispatchers aren't aware of the
PSGI context if we don't tell them explicitly.
This patch forces the dispatchers in PSGI mode.
* FIX (unknown bug)
When a serializer is set and show_errors is true, don't expose internal
errors caught.
[ Naveen ]
* add --version to the dancer CLI
* changed the URI fetched by the dancer script to check Dancer's version
Dancer 1.1999_01 (RC1)
[ Alexis Sukrieh ]
* FIX for utf8 content in views
Dancer now handles correctly templates with non-ASCII characters in views.
All you have to do is to set the "charset" setting in your config. Your
content response will then be encoded appropriately on-the-fly by Dancer.
* Scaffolded app sets the charset to "utf8" by default.
* Better design for the scaffolded app (logo, favicon and background image
added)
* Environment info available on scaffolded app
* LWP is used by the dancer helper to download files
* jQuery 1.4.2 (minified) is included in the scaffolded app
* default layout uses <% request.base %> in order to support mounted apps
(Thanks to Naveed Massjouni and Franck Cuny for the concept/idea).
* The main.tt layout sources jQuery first from Google CDN and falls back to
the local minified version if on offline mode.
* New default token provided to the "template" helper: dancer_version
[ Sebastian de Castelberg ]
* The dancer helper is able to download files via a transparent proxy
(thanks to LWP).
[ Adam J. Foxson ]
* FIX for issue GH#136:
"readline() on closed filehandle DATA" error that appears when running
the app with Starman
[ Naveed Massjouni ]
* Dancer::Test function get_response is renamed to dancer_response
get_response still works but is deprecated
* dispatch.f?cgi scripts use FindBin to resolve their location.
FIX a bug when using symlinks.
[ Franck Cuny ]
* FIX for issue GH#129
don't add multiple content-type to headers
* fix broken tests (they were testing incorrect content type)
[ Damien Krotkine ]
* FIX for issue GH#115
documentation about compression in Dancer::Deployment
[ David Precious ]
* Make the 'layout' param to the template keyword work as you'd expect and
allow you to set a custom layout to use, e.g.:
template 'templatename', {}, { layout => 'layoutname' };
[ Philippe Bruhat ]
* Make sure a plugin refuse to register a keyword twice
[ Sawyer X ]
* Lots of documentation updates
* Dancer now logs caught crashes in rendering
(easier to debug Ajax routes)
Dancer 1.1904
[ Sawyer X, Franck Cuny ]
* SAX, not Sax.
* Check for XML::Parser or XML::SAX in test as well.
Dancer 1.1903
[ Sawyer X, Franck Cuny ]
* XML::Simple needs either XML::SAX or XML::Parser.
(fixed test fails from Dancer::Serializer::XML)
Dancer 1.1902
[ Adam J. Foxson ]
* Addresses issue #136: "readline() on closed filehandle DATA"
Dancer 1.1901 (1.2RC0)
[ Franck Cuny ]
* implemented GH#120:
- methods {to,from}_{xml,json,yaml} accept more than one arguments. The
first argument is the data to transform. All the remainings arguments
are parameters to alter the behavior of the serializers. Refer to the
documentation for more informations.
* more tests added
[ Alexis Sukrieh ]
* load_plugin is DEPRECATED; 'use' should be used instead to load a plugin.
This is fixes the major issue with plugins about symbol exports that
didn't work well (issue #101).
* All paths built in a scaffolded application are dynamic, it's now
possible to move a scaffolded application after it's been generated.
(fixes issues #88,
* The auto_reload feature is now disabled by default due to too many
unsolved issues (it works most of the time, but some race conditions are
still present) This feature is still being working on, but it's now
flagged "experimental").
* Default log level in development environment is now 'core' in order to
provide more information.
* New scaffolded application design. More neutral and with lots of
information for a beginner, and links to useful material.
Based on the Ruby on Rails start page (kudos to the Rails team,
http://www.rubyonrails.org).
[ Boris Shomodjvarac ]
* Support for a clean way for Template engines to define their template
file extensions (issue #126).
Dancer 1.1812
[ Franck Cuny ]
* Skip bogus uploads test on Win32 (thanks to Alias for reporting)
[ Alexis Sukrieh ]
* Fix for scaffolded apps
* Dancer::Deployment cleanup (CGI section)
* Declare LWP explicitly (already implied by HTTP::Body and HTTP::Headers)
[ Sawyer X ]
* Nitpicking at tabs and spaces at end of lines
Dancer 1.1811
[ Franck Cuny ]
* FIX for issue #113 and #112
[ Naveed Massjouni ]
* FIX for issues #111 and #108
Dancer 1.1810
[ Naveed Massjouni ]
* FIX for issue #108
replaced Clone::clone() with Storable::dclone().
* Fixed the plan of one of the test files.
[ Alexis Sukrieh ]
* Fix a test that depends on YAML (pass if not present)
(Smoker failure '2010-08-30T11:07:59Z').
Dancer 1.1809
[ Franck Cuny ]
* update Deployement.pod and Cookbook.pod
* fix bug in route building with prefix
* don't use app.psgi anymore in generated scripts
* fix GH#106: serializer
* fix bug in PSGI handler using HTTP::Headers when using some header
* fix bug in ajax query
* more tests
[ Alexis Sukrieh ]
* fix plan for t/03_route_handler/24_named_captures.t
Dancer 1.1808
[ Alexis Sukrieh ]
* FIX test failures
- t/08_session/07_session_expires.t
- t/08_session/07_session_expires.t
Dancer 1.1807
[ Sawyer X ]
* Fix for RT #60403: removing Test::Exception requirement
[ Alexis Sukrieh ]
* Global rewrite of Dancer's core to allow support for
sub-application, better route resolution and a better design.
* Support for mountable applications via "load_app".
Mounted applications can have their own settings registry and
can be mounted under a given prefix.
[ Franck Cuny ]
* Support for new hooks:
- after: to allow response post-processing
- before_template: to allow defaut tokens to be given at anytime
to the template function.
* Fix and test for bug RT#57829
(Custom response headers lost when using JSON serializer)
* FIX PSGI compatibility layer (request->path_info is used when appropriate
instead of request->path)
* FIX for GH#100
When loading a module, it's possible to require a minimal
version.
* New option "ajax" for route handlers.
* Fix a bug in ajax route when processing the route resolution
(when a route is defined with options, it's pushed in the
beggining of the route handler tree).
[ jamhed ]
* Support for new setting "session_expire" in order to allow
session cookies to expire before the browser is closed.
[ Naveed Massjouni ]
* Dancer::Test can now test requests with a body
Dancer 1.1806_02
[James Aitken]
* fix issues GH #84 #86 and #87 (failing tests on < 5.10 due to regex with named captures)
[franck cuny]
* update cookbook
[François Charlier]
* fix for GH#76 and GH#88
[David Precious]
* Add Dancer::Plugins POD, describing useful plugins
* Extend sessions & logging in entry in cookbook
Dancer 1.1806_01
[ sebastian de castelberg ]
* Support for path_info() in Dancer::Request so it's possible to
mount an application under a directory.
[ Alexis Sukrieh ]
* Fix for RT#56239
logger calls are better traced
* Fix for GH#72
New keyword 'load_plugin' for loading a plugin in the current namespace.
Plugins can be used anywhere thanks to that method.
* Fix for issue #77
Passing and caching works well together again.
* Applied miyagawa's patch for droping the app.psgi file. Refactoring of
Dancer::Handler::PSGI and friends.
* Applied LoonyPandora's patch for checking Dancer's VERSION when running
script/dancer. Changed it a bit so it can check against CPAN rather than
GitHub.
* Documentation update: r('') is now DEPRECATED, the method triggers a warning
when called and will be removed in the next stable release (1.2).
* Transparent wrapping of Plack middlewares in Dancer's configuration.
It's possible to enable/disable middlewares right from Dancer's config files.
Thanks to Tatsuiko Miyagawa and Franck Cuny for their help.
[jbarratt]
* Dancer::Serializer::JSON supports 'allow_blessed' and 'convert_blessed'
options.
[ Marc Chantreux ]
* Support for regexp objects in route definition
* Support for named captures (keyword 'captures' added to Dancer's syntax).
Dancer 1.1805
[ Alexis Sukrieh ]
* Fix for RT#56239
logger calls are better traced
* Fix for GH#72
New keyword 'load_plugin' for loading a plugin in the current namespace.
Plugins can be used anywhere thanks to that method.
[ Minty ]
* Update Introduction pod with (required) -a dancer opt (Murray, 5 hours ago)
* Bump HTTP::Body dependency to 1.07 (Murray, 6 hours ago)
Dancer 1.804
[ sebastian de castelberg ]
* Fix priority in D::S::Mutable.
[ David Precious ]
* Fix test failures with old Plack versions (Issue 73).
* Don't surround content with <p> tags in layout.
* Add $ENV{REMOTE_ADDR} in core log messages
[ SawyerX ]
* Fix issue #75, reported by nanis.
perl -MDancer -e "print $Dancer::VERSION" now works as expected
[ Daniel Pittman ]
* FIX for issue #80
Make sure the tempfiles created during uploads are removed when the
request object dies.
[ Alexis Sukrieh ]
* FIX for bug RT#58355
Rewrite of Dancer::Template::Simple's parser, now more robust,
based on Perl's regexp engine.
* FIX a warning when remote_address is undefined
Dancer 1.1803
[ Alexis Sukrieh ]
* Fix for issue #69
The issue was resolved in 1.1801, this time, the fix is working as
expected.
[ Sawyer X ]
* Fix for RT #57715, require Test::More 0.88 and up.
Dancer 1.1802
[ Sawyer X ]
* Fix RT #57158 (route_cache does not work with multiple parameters)
Cache revealed a small design overlook of not cloning a route before
returning it to the user, making multiple parameters disabled.
(Thanks to Stéphane Alnet for reporting and adding a test for it!)
Dancer 1.1801
[ Alexis Sukrieh ]
* FIX issue #69
Error are trapped even if occuring from Dancer's source code.
auto_reload is set to false in scaffolded applications to
prevent errors if Module::Refresh is not installed.
Dancer 1.1800
[ Alexis Sukrieh ]
* merge of the devel branch into master, first stable release of
1.178_01 and 1.178_02
Dancer 1.178_02
[ Alexis Sukrieh ]
* Errors are caught in before filters
* halt can be given a Dancer::Response object rahter than plain text content
Dancer 1.178_01
[ Alexis Sukrieh ]
* New logger for sending log message to STDERR: Dancer::Logger::Console
Thanks to Gabor Szabo for the idea.
* Logger engines don't have anymore to implement _format(), they can use
$self->format_message instead.
* New log level: "core" for letting Dancer's core express itself on crucial
events.
That way, when the app config sets log to "core", any core messages is
sent to the logger, and the end-user can see which route is chosen for
each request received.
Thanks to Gabor Szabo for the idea.
* New class Dancer::Timer added so any logger engine can now show a timer
string.
* Scaffolded applications are now built like a CPAN distribution, with a
Makefile.PL
and test scripts (thanks to Gabor Szabo for the idea).
* Added Dancer::Test to provide helpers for writing test script for Dancer
applications
* FIX bug when returning a void context after redirecting a route.
Thanks to Juan J. Martínez for the report.
* Add support for request headers in Dancer::Request
* Add support for halt() in Dancer's syntax.
[ Alex Kapranof ]
* Support for on-the-fly charset encoding when the setting is set and a
content is sent by Dancer and needs to be encoded.
The response Content-Type is updated accordingly as well.
[ Sawyer X ]
* Adding "import_warnings" settings. On by default, but allows to disable
auto-import of "warnings" pragma. Reported by Adam Kennedy.
Dnacer 1.176
* Bringing 1.175_01 into production.
Dancer 1.175_01 (Developer release)
[ Sawyer X ]
* Documentation for Dancer::FileUtils.
* Documentation for Dancer::Cookie.
* Fixing PNG bug on IE (reported by Adam Kennedy - thank you).
Dancer 1.175
[ Sawyer X ]
* RT #56395 reported by Jonathan Yu on behalf of Debian Perl team.
* Documentation for Dancer::Error.
[ Alexis Sukrieh ]
* fixed t/15_plugins/02_config.t when YAML is not installed
Dancer 1.174
[ Gabor Szabo ]
* Docs fixes, typo in warning.
* TestUtils.pm is now in "t/lib".
[ David Precious ]
* Support semi-colons as name=value pair separators when parsing
querystring. Satisfies feature request/issue 59.
Thanks to deepakg for requesting this feature.
[ Sawyer X ]
* RT #56381 reported by Jonathan Yu on behalf of Debian Perl team.
(Adding LICENSE file)
Dancer 1.173_01 (Developer release)
[ Franck Cuny ]
* Doc fixes.
(Thanks to poisonbit)
* Plugins configuration
* Cleaning up tests
[ Alexis Sukrieh ]
* New serializer: Dumper for easily output dumped variable
in text/plain.
* Before filters can now access route params
* Support for '.' as a token separator in params parsing
* The standalone server respect the 'access_log' setting,
the starting banner is printed on STDERR only if the
setting is set to true.
[ Sawyer X ]
* Fixed Windows PSGI.URL_SCHEME bug, causing tests to fail
(Thanks to ADAMK for reporting)
Dancer 1.173
[ Alexis Sukrieh ]
* Documenting set_cookie in Dancer.pm.
[ Franck Cuny ]
* Cleaning up serializer test.
[ François Charlier ]
* Documenting layout disabling.
[ Sawyer X ]
* Fix a few failing tests because of compilation errors.
* Add init{} subs for all serializers.
* Dancer::Engine documentation
[ David Precious ]
* Fix issue 52 - creating invalid cookie expiration dates.
Thanks to Juanjo (reidrac) for reporting!
Dancer 1.172
[ Alexis Sukrieh ]
* Plugin support.
[ Franck Cuny ]
* Prevent usage of reserved Dancer keywords in plugins.
* Tests cleanups.
[ Robert Olson ]
* Fixing docs to clarify layouts can use variables too.
Dancer 1.171
[ Alexis Sukrieh ]
* Removed bogus TestApp/ directory
Dancer 1.170
[ David Precious ]
* Fixed bug with status keyword not converting aliases (e.g. 'not_found') to
real usable status lines with valid HTTP codes.
Thanks to P Kishor for reporting this on the dancer-users mailing list!
* Accept end_tag as a synonym for stop_tag when configuring TemplateToolkit.
Thanks to James Ronan for bringing this up.
[ Sawyer X]
* Route::Cache store_route = store_path, beefed up docs
* Changed names of limits in settings
* Added documentation for it in Dancer.pm
* More documentation about Module::Refresh dependency
(closes bug #48)
* uri_for now accepts a boolean for not escaping URIs,
and redirect calls uri_for with that boolean.
(closes: bug #47)
[ Alexis Sukrieh ]
* Query string params are not dropped anymore when their value is 0. thanks
to "Squeeks" for the report.
(closes: bug #49)
* Support for file uploads
The Dancer::Request class provides a common interface to access file
uploads. Syntactic sugar has been added to Dancer's as well
(keyword 'upload').
(closes whish #36)
[ Franck Cuny ]
* Support for automatic serialization/deserialization
Dancer is now able to serialize route handler's response in various
format (JSON, YAML, XML); and can also deserialize request body when
appropriate.
(closes: wish #29)
Dancer 1.160
[ David Precious ]
* Added session backend Dancer::Session::Simple
* Dump session contents on development error page, if session is in use
* Censor sensitive-looking information on development error page settings /
session dumps, to help avoid passwords / card details etc being leaked.
* Add deployment guide
[ Alexis Sukrieh ]
* Dancer helper propagates its perl executable into the generated
$appname.pl script (FIX for RT #54759).
* FIX for issue #34
No more warnings undeer Win32 for tests script that needs a tempdir
* FIX (unknown bug)
The standalone server now parses commandline options (was broken
since 1.140).
* FIX for issue #37
A new setting "confdir" is provided for making Dancer
read the application configuration files from an
alternate location.
* Core settings can be initialized via environment
variables, prefixed with "DANCER_" (e.g. "DANCER_DAEMON"
for the setting "daemon").
* Config and command-line arguments are parsed and loaded at import time,
rather than when the handler is initialized.
* Routes are compiled at startup instead of being compiled whenever a
request is handled. This can increase performances up to 50%.
* FIX Params are not polluted anymore by the 'splat' keyword when no capture
is needed by the pattern.
* New feature 'auto_page' (closes: #41)
Lets the user have automatic route resolution for
requests that match an existing template in the views dir. Thanks to
David Precious for the idea and his help.
[ Daniel Tasov ]
* Plack environment is propagated to Dancer if none specified.
[ Sawyer X ]
* Route Caching with size and path number limits: Dancer::Route::Cache.
* FIX for issue #39.
* Dancer::ModuleLoader documentation
* Cleaned Dancer::Template::Abstract docs
* Cleaner die in Dancer::Engine if can't find engine
* Added default route example in Dancer::Cookbook
Dancer 1.150
[ Alexis Sukrieh ]
* Refactored all core engines with Dancer::Engine
* Support for engine configuration via config files
* Each core template engine now uses start_tag/stop_tag from the
configuration instead of harcoding '<%' and '%>'.
* FIX for issue #34
Cookies can now be used when the application is ran under a Plack
server.
[ David Precious ]
* Lots of documentation cleaning and fixes.
* Make the session available to the views, if possible.
* Added Dancer::Cookbook to provide lots of concrete examples for
newcomers.
* Helper script `dancer' now provides a default favicon.ico in the
application public directory.
* FIX for issue #30
Added 'config' method to provide easy access to app config
[ Anirvan Chatterjee ]
* Various documentation typo fixes
[ Danijel Tasov ]
* FIX for issue #24
Dancer now depends on MIME::Types rather than using
File::MimeInfo::Simple which uses a fork().
[ Paul Driver ]
* Support for virtual location.
It's now possible to mount a Dancer app under a user-defined prefix.
[ Franck Cuny ]
* Test scripts cleanup:
+ Cleanup is performed in test scripts when necessary
(all temp files are removed at the end of the script).
+ FIX for issue #23
Test scripts that try to write logfiles set the appdir.
Dancer 1.140
* Dancer now depends on HTTP::Server::Simple::PSGI in
order to rely on a PSGI environement even when running
the app with the standalone server
(Thanks to Tatsuiko Miyagawa).
* Dancer::Request object enhancements:
+ Dancer::Request now provide an accesor to the raw body
of the request.
+ FIX for issue #13
The params helper now provides accessors to route
params, query string params and body params so the
user can chose from which source they want to access
params instead of dealing with a mixed structure.
+ Added accessors to referer and remote_address
* The Standalone server now uses the setting 'server' to
bind itself to the IP address given by the setting.
Default value is 0.0.0.0
Dancer 1.130
* Fix a memory leak that could occur between two
requests under mod_perl (Thanks to Nicolas Rennert for
the report and diagnosis).
* remove all optional modules from the core, they are now
shipped as separate CPAN distributions:
- Dancer::Template::MicroTemplate
- Dancer::Session::Cookie
- Dancer::Session::Memcached
- Dancer::Logger::LogHandler
- Dancer::Logger::Syslog
* support for the `header' keyword in Dancer's syntax.
The user is now able to alter response-headers in route
handlers.
* support for `prefix' keyword in Dancer's syntax.
A prefix can be set by the user before defining routes handlers.
All route defined then will be automatically prefixed accordingly.
Dancer 1.122
* Fix the test suite under Perl 5.8.x
* Security Fix: protection from CRLF injection in
response headers (thanks to Mark Stosberg for the report).
* Support for multi-valued params in GET/POST data (thanks to
Mark Stosberg for the report).
* Backward compatibility with old app.psgi files, don't die
when a request is initialized with a CGI::PSGI object.
Dancer 1.121
* Fix for POST data parsing (was broken in 1.120)
now Dancer depends on HTTP::Body for that.
Dancer 1.120
* ROADMAP updated
* Dancer is now compliant with Plack::Server::Apache2
* Remove the CGI.pm dependency, huge refactoring
* POD typo fixes (Naveed)
* Support for syntax-only importation (Sawyer X)
* Remove the example/ directory, useless and deprecated
* New logger engine: Log::Handler (franck cuny)
* New template engine Text::Microtemplate (franck cuny)
* Remove compilation-time warnings catching (issue #14)
Dancer 1.110
* Fix test script `t/11_logger/04_syslog.t'
* Fix test script `t/10_template/05_template_toolkit.t'
Dancer 1.100
* Support for multiple method routes at once with 'any'
* Templates engines
+ Bug fixes in Dancer::Template::Simple (Jury Gorky)
+ Refactoring of the factory
+ option for disabling the layout in the template helper.
* New session engine based on encrypted cookies (Alex Kapranof)
* More HTTP codes supported for a better REST compat (Nate Jones)
* Documentation updates
* script/dancer now requires an appname
* New Makefile.PL with better metadata (CPAN Service)
Dancer 1.000
* Support for Syslog logger (Dancer::Logger::Syslog)
* Basic template engine so Template is no more a hard deps.
* Memcache Session support (Dancer::Session::Memcache)
* YAML file-based session support (Dancer::Session::YAML)
* Lots of tests (more than 80% of the code is covered)
Dancer 0.9906
* move from File::MimeInfo to File::MimeInfo::Simple for
smooth run on Mac OSX and Win32 systems.
Dancer 0.9005
* Source code extract on error catching
* Support for configurable error handling
* New design for the starting app built with script/dancer
Dancer 0.9004
* Support for PSGI/Plack environment
* script/dancer helper script for bootstraping a new app
Dancer 0.9003
* Detect differently compilation-time warnings and runtime warnings
closes bug #48440 (Thanks to Enric Joffrion for the report, and to
Vincent Pit for the diagnosis)