This file documents the revision history for Perl extension Mojolicious.

0.999934 2010-11-01 00:00:00
        - Fixed relaxed HTTP parsing.

0.999933 2010-10-30 00:00:00
        - Fixed small connect bug in Mojo::IOLoop.
        - Fixed WebSocket handshake.

0.999932 2010-10-29 00:00:00
        - Deprecated the old plugin hook calling convention and added
          EXPERIMENTAL hook method to Mojolicious.
        - Fixed a few small connect bugs in Mojo::IOLoop.
        - Fixed typos.

0.999931 2010-10-25 00:00:00
        - Removed tag helpers label and img.
        - Renamed tag helper script to javascript and added CDATA support.
        - Renamed tag helper input to input_tag.
        - Added EXPERIMENTAL non-blocking DNS support to Mojo::IOLoop.
        - Added EXPERIMENTAL support for IPv4 and IPv6 addess checks to
        - Added stylesheet tag helper.
        - Added before and after methods to Mojo::DOM.
        - Hide command overview from prove. (omega)
        - Default to silent tests in Test::Mojo.
        - Fixed optional value support in Mojo::Cookie.
        - Fixed shortcut methods in Mojo::Headers to not be context aware.
        - Fixed url_for to not inherit captures for new endpoints.

0.999930 2010-10-18 00:00:00
        - Code name "Hot Beverage", this is a major release.
        - Removed Mojo::Server::Daemon::Prefork due to unfixable design flaws
          regarding WebSocket support, please use a PSGI server instead for
          HTTP production setups.
          For scalable WebSocket deployment we will introduce a whole new
          server in one of the next releases!
        - Deprecated old Mojo::Template block syntax and added a very pretty
          replacement. (See documentation for more)
        - Deprecated helper method in Mojolicious::Controller.
        - Deprecated all *_cb methods (and finished/receive_message) in favor
          of on_* methods.
        - Deprecated process method in Mojo::Client and added new start
        - Replaced the "mojolicious" command with "mojo", for convenience.
        - Removed Mojo::Command::Generate::App.
        - Renamed the methods name and replace_content to type and
          replace_inner in Mojo::DOM.
        - Added EXPERIMENTAL support for indented Perl lines in
        - Added EXPERIMENTAL support for --mode and --home options to all
          Mojolicious commands.
        - Added EXPERIMENTAL support for helper methods.
        - Added EXPERIMENTAL helper method to Mojolicious.
        - Added EXPERIMENTAL support for inline rendering to Mojolicious.
        - Added EXPERIMENTAL memorize helper to
          Mojolicious::Plugin::DefaultHelpers. (ptomli)
        - Added EXPERIMENTAL write, write_chunk and rendered methods to
        - Added EXPERIMENTAL support for loading of plugins by full module
        - Added EXPERIMENTAL tag helpers to Mojolicious.
        - Added EXPERIMENTAL support for radio buttons and select fields to
          Mojolicious::Plugin::TagHelpers. (kvorg)
        - Added EXPERIMENTAL is_limit_exceeded, max_line_size and
          max_message_size methods to Mojo::Message.
        - Added EXPERIMENTAL automatic relaxed parsing support for HTTP
        - Added while, until and inner_xml methods for Mojo::DOM collections.
        - Added b function to all Mojo::Template templates.
        - Added selector support to the dom method of Mojo::Message. (marcus)
        - Added x function to ojo. (DaTa)
        - Added failed request warnings to ojo. (marcus)
        - Added support for selector groups to Mojo::DOM.
        - Added more attribute selectors, pseudo classes and combinators to
        - Added support for mode specific config files to
          Mojolicious::Plugin::JsonConfig. (marcus)
        - Added reserved route name current.
        - Simplified transaction pausing by replacing it with an automatism.
        - Improved RFC3986 compliance of Mojo::Path. (janus)
        - Improved Mojo::Server::PSGI to preload applications.
        - Improved FastCGI detection for Dreamhost. (garu)
        - Improved keep alive timeout handling in Mojo::Client.
        - Improved documentation. (rhaen)
        - Improved Mojo::ByteStream performance. (mons)
        - Improved Mojo::Parameters performance. (kimoto)
        - Improved Mojo::Message::Response parser resilience.
        - Improved template class handling in MojoX::Renderer. (vti)
        - Fixed a serious design flaw in Mojo::Message and made long poll
          much easier.
        - Fixed a bug where Mojo::IOLoop connections could be closed too
        - Fixed a bug where a broken renderer could cause a fatal exception.
        - Fixed HTTPS support for CGI environments.
        - Fixed a auto rendering bug related to bridges.
        - Fixed Mojo::IOLoop Windows support.
        - Fixed Mojo::DOM class selector bug. (tempire)
        - Fixed small render bug. (skaurus)
        - Fixed a small renderer bug.
        - Fixed automatic reloading for external templates.
        - Fixed after_build_tx plugin hook callback order.
        - Fixed a small under bug in Mojolicious::Lite.
        - Fixed logging of UTF-8 errors. (und3f)
        - Fixed Mojo::DOM parser bug. (esskar)
        - Fixed TLS handshake bug in Mojo::IOLoop. (und3f)
        - Fixed a small Test::Mojo bug.
        - Fixed multiple route condition bugs. (esskar)
        - Fixed a small relative path bug in Mojo::URL.
        - Fixed pod renderer bug. (vti)
        - Fixed a multipart parser bug affecting mostly file uploads.
        - Fixed input tag helper escaping. (vti)
        - Fixed url_for WebSocket support.
        - Fixed url_for format handling.

0.999929 2010-08-17 00:00:00
        - Removed OS X resource fork files.

0.999928 2010-08-15 00:00:00
        - Fixed a security problem with CGI environment detection.
        - Fixed redirect_to without content and render_static bug.
        - Fixed nested partial rendering bug. (yko)
        - Fixed multiple small Mojo::DOM bugs. (yko)

0.999927 2010-08-15 00:00:00
        - Code name "Comet", this is a major release.
        - Added EXPERIMENTAL method defaults to Mojolicious.
        - Added EXPERIMENTAL method detour to MojoX::Dispatcher::Routes.
        - Added EXPERIMENTAL attribute partial to MojoX::Routes.
        - Added EXPERIMENTAL CSS3 selector tests to Test::Mojo.
        - Added EXPERIMENTAL method test_server to Mojo::Client.
        - Added EXPERIMENTAL oneliner module ojo.
        - Added EXPERIMENTAL support for static files in the DATA section of
          Mojolicious applications.
        - Added EXPERIMENTAL Bonjour support.
        - Added EXPERIMENTAL support for route name generation.
        - Added graceful shutdown support to Mojo::Server::Daemon.
        - Added multiple guides and improved documentation substantially.
        - Added finished callback support for HTTP transactions.
        - Added relative path support to Mojo::URL. (marcus)
        - Added simple iterator support to Mojo::DOM.
        - Added XML namespace support to Mojo::DOM.
        - Added is_xhr method to Mojo::Message::Request.
        - Added detect_proxy method to Mojo::Client. (DaTa)
        - Added say and trim methods to Mojo::ByteStream.
        - Added custom socket support to Mojo::Client.
        - Added SHA1 support to Mojo::ByteStream. (vti)
        - Added app helper.
        - Renamed attributes method in Mojo::DOM to attrs.
        - Renamed search method in Mojo::DOM to find.
        - Cleaned up tests. (memowe)
        - Cleaned up regular expressions in Mojo::DOM. (mpu)
        - Improved Mojo::Client error logging.
        - Improved Mojo::Template error messages.
        - Improved generated multipart messages to be 2 bytes shorter.
          (John Kingsley)
        - Improved conditions by allowing them to access the stash.
        - Fixed memory and file descriptor leaks in Mojo::Client.
        - Fixed Mojo::Server::Daemon::Prefork to use a random lock file by
        - Fixed Mojo::DOM to support escaped selectors.
        - Fixed Mojo::DOM parser bugs.
        - Fixed Mojo::DOM child listing bug. (evt)
        - Fixed Mojo::DOM multiline attribute bug. (tempire)
        - Fixed charset detection of the dom builder in Mojo::Message.
        - Fixed json/data rendering with layouts in MojoX::Renderer.
        - Fixed Mojo::IOLoop to not stop unexpectedly.
        - Fixed graceful shutdown in Mojo::Server::Daemon::Prefork.
        - Fixed Mojo::Server::CGI and Mojo::Server::FastCGI to be more
        - Fixed poll + tls support.
        - Fixed language switching in Mojolicious::Plugin::I18n.
        - Fixed async Mojo::Client tests.
        - Fixed HTML1 and HTML5 compatibility of Mojo::DOM.
        - Fixed a selector bug in Mojo::DOM.
        - Fixed environment detection.
        - Fixed Mojolicious application embedding.
        - Fixed a tutorial bug. (zoul)
        - Fixed tests to not use any optional modules.
        - Fixed small Mojolicious::Lite bug. (sharifulin)
        - Fixed Mojo application generator. (zakame)
        - Fixed edgy stringified return value bug in
          MojoX::Dispatcher::Routes. (DaTa)
        - Fixed route rendering bug. (koban)
        - Fixed route without namespace bug.
        - Fixed route with mixed format bug. (sharifulin)
        - Fixed small url_for bug.
        - Fixed Mojo::IOLoop to not connect to TLS hosts without checking TLS
          support first. (ashleydev)
        - Fixed multiple WebSocket bugs.
        - Fixed Test::Mojo::Server to be more portable. (afresh1)
        - Fixed url_for to not expose userinfo in absolute URLs.
        - Fixed path detection bug in generated scripts. (merlyn)
        - Fixed a small redirect bug in Mojo::Client.
        - Fixed a route callback inheritance bug.
        - Fixed a security problem in the HMAC MD5 implementation. (vti)

0.999926 2010-06-07 00:00:00
        - Added version requirement for all optional dependencies.
        - Improved documentation.
        - Fixed async client processing.
        - Fixed small renderer bug.

0.999925 2010-06-07 00:00:00
        - Updated WebSocket implementation to draft 76,
          (sadly we have no choice when the spec changes)
        - Increased Perl version requirement to 5.8.7 due to unicode bugs in
          earlier releases.
        - Switched to app->start instead of shagadelic as default way to
          start Mojolicious::Lite apps in the documentation.
        - Made tutorial examples more business friendly.
        - Added the ability to use Mojolicious::Lite apps as Mojolicious
        - Added EXPERIMENTAL XML DOM parser with CSS3 selector support.
        - Added EXPERIMENTAL tag_helper plugin to Mojolicious. (vti)
        - Added EXPERIMENTAL success method to Mojo::Transaction.
        - Added EXPERIMENTAL json method and json_class attribute to
        - Added EXPERIMENTAL idle_cb attribute to Mojo::IOLoop.
        - Added more perlish block syntax to Mojo::Template.
        - Added non-blocking TLS handshake support to Mojo::IOLoop.
        - Added proxy support to Mojo::Client.
        - Added the ability to have dispatch plugins.
        - Added "under" to Mojolicious::Lite.
        - Added file upload support to Mojo::Client. (yko)
        - Added higher precision timers to Mojo::IOLoop. (vti)
        - Improved exception handling.
        - Improved documentation.
        - Improved IIS compatibility of the CGI implementation.
        - Improved routes by making the leading slash optional and storing
          route names in the stash.
        - Converted README to markdown. (memowe)
        - Fixed connection keep alive with epoll.
        - Fixed bridge bug in MojoX::Routes::Match.
          (Oleg Zhelo, Dmitry Konstantinov)
        - Fixed argument handling of Mojo::Template blocks. (afresh1)
        - Fixed a stash localization bug. (und3f)
        - Fixed Mojo::Log to use flock to sync log file writing.
        - Fixed daemons to listen on "::" for IPv6 and "" for IPv4
          with a wildcard address.
        - Fixed lock_cb and unlock_cb exceptions to be fatal in Mojo::IOLoop,
          this makes Mojo::Server::Daemon::Prefork much more solid. (ask)
        - Fixed a bug that prevented undef values in the stash. (garu)
        - Fixed Mojo::Message::headers chaining. (markstos)
        - Fixed a bug in Mojo::JSON that prevented BOM characters in strings.
        - Fixed Mojo::JSON to not unescape broken surrogates. (chansen)
        - Fixed UTF-8 bug in Mojolicious::Plugin::JsonConfig. (vti)
        - Fixed Mojo::Parameters to accept array values. (konstantinov)
        - Fixed IRI routes in Mojolicious.
        - Fixed multiple path encoding bugs.
        - Fixed a loader bug.
        - Fixed reloading of inflated Mojolicious::Lite templates.
        - Fixed the client transaction builder. (Curt Tilmes)
        - Fixed unix domain socket support. (sharifulin)
        - Fixed a few regex bugs. (vti)
        - Fixed POD. (memowe)
        - Fixed typos. (jawnsy)

0.999924 2010-03-08 00:00:00
        - Added default TLS cert and key to Mojo::IOLoop to make HTTPS
          testing easier, so "mojo daemon --listen https://*:3000" now just
        - Added request limit support to the daemons.
        - Added basic authorization and proxy authorization support to
          Mojo::Message::Request. (esskar)
        - Added tick callback to Mojo::IOLoop to make mixing multiple event
          loops trivial.
        - Added the ability to pass arguments to Mojo::Template blocks.
        - Added layout support for partial rendering, in addition all render
          arguments are now localized.
        - Added more routes tests. (doubi)
        - Cleaned up documentation.
        - Cleaned up tests.
        - Relaxed Mojo::Server::CGI read timeout.
        - Fixed ioloop timers to actually work and added tests.
        - Fixed PSGI environment auto detection and removed .psgi file
          generator since it has become obsolete.
        - Fixed Mojolicious sessions to remove the session cookie immediately
          if it's not needed anymore. (ask)
        - Fixed routes method condition to consider GET and HEAD equal.
        - Fixed test requiring Perl 5.10.
        - Fixed a loader bug. (mvuets)
        - Fixed layout and extends scope in MojoX::Renderer. (korshak)
        - Fixed daemons to create listen sockets before changing user and
          group. (xantus)

0.999923 2010-03-07 00:00:00
        - Made Mojo::Client sync by default with optional async support, this
          massively improves usability!
              my $tx = $client->get('');
              print $client->get('')->res->body;
              my $tx = $client->post_form('', {q => 'mojo'});
        - Made plugins much more configurable.
        - Improved PSGI support and added "psgi" command.
        - Added automatic environment detection for Plack based servers,
          there is no technical way to detect all PSGI compliant servers yet
          That means "plackup" and "plackup script/myapp" should
          just work.
        - Added session and flash helpers.
        - Added finished callback to WebSocket client and server.
        - Added referrer method to Mojo::Headers. (esskar)
        - Added finish_cb callback to Mojo::Message.
        - Added render_data method to Mojolicious::Controller.
        - Added formdata tests for multiple browsers. (koban)
        - Changed Mojolicious default secret to a slightly more secure value.
        - Allow parser errors to be handled by frameworks.
        - Removed bundled RFCs.
        - Fixed multiple Mojo::Template parser bugs.
        - Fixed epl rendering bug.
        - Fixed multipart form encoding and decoding.
        - Fixed IRI handling. (sharifulin)
        - Fixed mixed IRI/IDNA handling.
        - Fixed tmpdir detection.
        - Fixed typos.

0.999922 2010-02-11 00:00:00
        - Added session support.
        - Added signed cookie support.
        - Added I18N support. (vti, memowe)
        - Added template detection again, you can now just mix multiple
          template engines and the renderer will automatically pick the right
          So you don't have to use the "handler" argument anymore, even
          though it's still available and overrides auto detection.
        - Added Flash Policy Server example. (xantus)
        - Added more reference docs.
        - Added .gitignore generator command. (marcus)
        - Added automatic CGI/FastCGI environment detection to
        - Renamed Mojolicious::Book to Mojolicious::Guides.
        - Removed hot deployment support for Windows because of
          incompatibilities between Active Perl and Strawberry Perl.
        - Made process id and lock file defaults more userfriendly in
        - Updated for Perl 5.12, not using the bytes pragma anymore.
        - Fixed a bug where WebSocket servers could not directly start
          sending messages.
        - Fixed connection id handling in Mojo::Client.
        - Fixed multiple epoll bugs.
        - Fixed Mojo::IOLoop connection check.
        - Fixed identification headers.
        - Fixed a bug where exception pages would be rendered multiple times.
        - Fixed reverse proxy support. (vti)
        - Fixed error state in Mojo::Stateful. (vti)
        - Fixed seek bug. (lee7)
        - Fixed a PSGI header bug. (lee7)
        - Fixed typos.

0.999921 2010-02-11 00:00:00
        - Fixed a small kqueue bug.

0.999920 2010-02-11 00:00:00
        - Code name "Snowman", this is a major release, which means
          deprecation policies apply.
          (See also "perldoc Mojolicious::Book::CodingGuidelines")
        - Renamed distribution from Mojo to Mojolicious.
        - Deprecated $VERSION in Mojo, new $VERSION lives in Mojolicious.
          Make sure to update your modules depending on Mojo to depend on
          Mojolicious in the future.
        - Deprecated Mojo::Transaction::Single, make sure to update all old
          code to use Mojo::Transaction::HTTP instead.
        - MOJO_RELOAD=1 now works with Mojolicious::Lite, have fun!
        - Allow reloading to be triggered once by a USR1 or WINCH (win32)
        - Added --reload flag to all server bindings as an alternative to
        - Added WebSocket support.
        - Added IPv6 support.
        - Added SSL/TLS support.
        - Added IDNA support.
        - Added UNIX domain socket support to daemons.
        - Added transparent kqueue and epoll support to daemons and client.
        - Added support for listening to multiple locations to the daemons.
              mojo daemon --listen
              mojo daemon --listen,file:///tmp/my.sock
              mojo daemon --listen http://*:3000,http://*:3001,http://*:3002
              mojo daemon --listen http://[::1]:3000
              mojo daemon --listen https://*:443:/x/server.crt:/x/server.key
        - Added routes captures to params in Mojolicious.
        - Added native PSGI support.
        - Added the ability to have multiple Mojolicious::Lite apps at once.
          (Mojolicious::Lite is not a singleton anymore!)
        - Added charset plugin to Mojolicious. (charsbar)
        - Added simple reverse proxy support with tests.
        - Added simpler way to define default controller and action for a
        - Added simple way to define default controller or action for a
          route. (mvuets)
        - Added multipart post support to Test::Mojo. (yuki-kimoto)
        - Added env attribute to Mojo::Message::Request.
        - Added range support to MojoX::Dispatcher::Static. (xantus)
        - Added version command.
        - Added after_build_tx plugin hook.
        - Added timer support to Mojo::IOLoop.
        - Added the ability to run multiple parallel ioloops that block each
        - Added default_template_class attribute to MojoX::Renderer.
        - Added render_static method to Mojolicious::Controller.
        - Added support for embedded Mojolicious applications.
        - Added json_config plugin to Mojolicious. (vti)
        - Added the ability to reload the application and (graceful) restart
          all children to the prefork daemon.
        - Added to_hash and from_hash methods to Mojo::Headers. (vti)
        - Added post_form method to Mojo::Client.
        - Added find_route method to MojoX::Routes.
        - Added buffer size limits to the message parser.
        - Added child_status method to Mojo::Server::Daemon::Prefork. (und3f)
        - Added header_condition plugin to Mojolicious. (xantus)
        - Added finish method to Mojolicious::Controller.
        - Added WebSocket support to Mojolicious and Mojolicious::Lite.
        - Added message body support to Mojo::Client api. (tempire)
        - Added stash helper.
        - Added POD renderer plugin to Mojolicious. (vti)
        - Added inflate command to Mojolicious. (vti, korshak)
        - Added singleton support to Mojo::Client.
        - Started working on the Mojolicious book.
        - Started adding reference documentation. (marcus)
        - Improved HTTP 1.1 state machine.
        - Improved exception handling in Mojo::Client, Mojo::Server::Daemon
          and Mojo::IOLoop.
        - Disabled Nagle's algorithm in Mojo::IOLoop.
        - Changed the testing framework to always run real world tests with
          daemon and TCP connections.
        - Changed exceptions to stay out of your way as much as possible.
        - Made all Mojolicious after_* plugin hooks run in reverse order.
        - Made param decoding more defensive and allow malformed data to pass
          through for debugging.
        - Made Mojo::IOLoop very hard to kill.
        - Reduced Mojolicious log output outside of development mode.
        - Polished Mojo::Client api.
        - Fixed connect error handling in Mojo::Client.
        - Fixed double encoding of JSON data with charset plugin.
        - Fixed prefork daemon signal handling.
        - Fixed backslash encoding bug in Mojo::JSON.
        - Fixed memory leaks in Mojolicious plugins. (sharifulin)
        - Fixed memory leaks in .ep templates. (vti)
        - Fixed makefile and app generators.
        - Fixed a case where an ending tag would be interpreted as a line
          start in Mojo::Template.
        - Fixed multipart charset handling and added the ability to disable
          param decoding.
        - Fixed format detection bug. (marcus)
        - Fixed named url_for and added tests. (marcus)
        - Fixed decamelize of multiple uppercase characters.
        - Fixed plugins and commands to work with multiple namespaces and
        - Fixed multiple process calls in Mojo::Client.
        - Fixed a routes parser bug.
        - Fixed a bug that caused waypoint actions to run twice.
        - Fixed a bug where to_abs and to_rel could not be called multiple
          times on a Mojo::URL object. (vti)
        - Fixed development mode log level. (ka2u)
        - Fixed query string support in Mojo::URL. (vti)
        - Fixed rendering without template name.
        - Fixed large file upload bug. (vti, sharifulin)
        - Fixed a small inconsistency between relaxed and wildcared

0.999914 2009-11-24 00:00:00
        - Added the Mojolicious plugin system.
        - Added helper method to Mojolicious::Controller.
        - Added encoding support to post_form_ok in Test::Mojo.
        - Made cookies easier to set.
        - Fixed body_contains in Mojo::Content::Single. (yuki-kimoto)
        - Fixed utf8 output in STDERR log. (vti)

0.999913 2009-11-24 00:00:00
        - Added automatic content decoding to content helpers in Test::Mojo.
        - Added json test helper to Test::Mojo.
        - Added the ability to reset a test session in Test::Mojo.
        - Fixed Mojolicious::Renderer to always default to rendering a 404
        - Fixed a cookiejar bug and added tests. (yuki-kimoto)

0.999912 2009-11-24 00:00:00
        - Improved ioloop performance. (gbarr)

0.999911 2009-11-14 00:00:00
        - Added template inheritance to Mojolicious.
        - Added block and capturing support to Mojo::Template.
        - Added trimming support to Mojo::Template.
        - Added new testing framework for Mojo and Mojolicious applications.
        - Added redirect support to Mojo::Client. (acajou)
        - Added cookie jar to Mojo::Client. (acajou)
        - Excluded Mojo::ByteStream objects from auto escaping.
        - Updated Mojolicious::Lite tutorial.
        - Fixed a case where routes captures got false positives.
        - Fixed literal name handling in Mojo::JSON. (rsp)
        - Fixed unicode detection in Mojo::JSON. (rsp)
        - Fixed multiple small bugs in Mojo::JSON. (rsp)
        - Fixed Mojolicious default app tests. (yuki-kimoto)
        - Fixed Mojo::Server::FCGI compatibility.

0.999910 2009-11-14 00:00:00
        - Fixed url_for without endpoint bug.
        - Fixed BOM handling in Mojo::JSON. (rsp)
        - Fixed named redirect_to with arguments.
        - Improved Mojo::Exception. (yuki-kimoto)

0.999909 2009-11-11 00:00:00
        - Cleaned up tutorial.
        - FIxed renderer exception bug. (yuki-kimoto)

0.999908 2009-11-11 00:00:00
        - Fixed bridges/ladders and added tests.

0.999907 2009-11-11 00:00:00
        - Fixed another connection close bug in ioloop.
        - Fixed relaxed placeholder format handling in

0.999906 2009-11-11 00:00:00
        - Fixed connection close bug in ioloop.

0.999905 2009-11-11 00:00:00
        - Fixed routes bug that prevented the root from having formats.

0.999904 2009-11-10 00:00:00
        - Cleaned up examples.

0.999903 2009-11-10 00:00:00
        - Added ladders to Mojolicious::Lite, they are like bridges but lite.
        - Added encoding support to renderer. (likhatskiy)
        - Added dumper helper.
        - Made tmpdir in Mojo::Asset::File configurable.

0.999902 2009-11-01 00:00:00
        - Added include helper.
        - Optimized buffering a bit.
        - Fixed a case where multiple clients would taint the shared ioloop.
        - Fixed a case where non existing actions were considered a server
          error. (Andre Vieth)
        - Fixed typos.

0.999901 2009-09-01 00:00:00
        - Added new Mojo::Client, because the old one had bugs that prevented
          proper scaling and could not be fixed otherwise.
          Note that this change is not backwards compatible, the decision to
          make it so close to the 1.0 release was not easy but the bugs were
          simply too serious.
        - Added native JSON support.
        - Added more designer friendly .ep templates to Mojolicious.
          The default template format for your application can be controlled
          with the default_handler attribute of the mojolicious renderer.
              Mojolicious (in the startup method):
        - Added helper support for .ep templates.
        - Added callback tests. (melo)
        - Added support for MOJO_CHUNK_SIZE=1. (melo)
        - Added not_found.html.* templates.
        - Added input streaming support to Mojo::Content.
        - Added client, param, pause, redirect_to and resume to
        - Renamed Mojo::Manual to Mojolicious::Book.
        - Updated Mojolicious lite_app generator to use .ep templates.
        - Fixed many bugs in the HTTP 1.1 state machine and added the ability
          to pause transactions.
        - Fixed param to be compatible.
        - Fixed a few cases where exceptions and not found events would
          result in empty pages.
        - Fixed layouts with partial templates.
        - Fixed encoding of non utf8 form data.
        - Fixed body callbacks to get automatic buffering.
        - Fixed a case where Mojo::Server::Daemon and Mojo::Client were too
          defensive and made them in turn 20 times faster.
        - Fixed keep alive problem in Mojo::Transaction::Pipeline.
        - Fixed and simplified Mojo::Parameters. (gbarr)
        - Fixed xml_escape to use character semantics. (vti)
        - Fixed utf8 handling of routes captures. (vti)
        - Fixed body helper in Mojo::Message and added tests. (vti)
        - Fixed padding byte handling in Mojo::Server::FastCGI.
          (Jaroslav Muhin)
        - Fixed a few small parser bugs in MojoX::Routes and added tests.
        - Fixed Mojo::Asset::File and added tests. (Yuki Kimoto)
        - Fixed generated scripts. (Yuki Kimoto)
        - Fixed CHLD signal handler for prefork children. (sharifulin)
        - Fixed typo.

0.991251 2009-08-18 00:00:00
        - Fixed continue timeout handling in Mojo::Transaction::Simple.
        - Fixed undefined value in If-Modified-Since check in
        - Fixed MojoX::Routes::Pattern::match. (trendels)
        - Fixed default_handler in MojoX::Renderer. (sharifulin)
        - Fixed HTML5 tags. (xantus)
        - Fixed special Apache CGI environment cases.
        - Fixed Mojo::Log to work with older versions of Perl.
        - Fixed typo.

0.991250 2009-08-18 00:00:00
        - This release contains many substantial changes that are not
          backwards compatible, but good news is that it's also the last
          major feature breaking release before 1.0. ;)
          Older releases of Mojo did contain additional Mojo::Script::* and
          Mojolicious::Script::* modules that are obsolete now and might
          break this version if they are still present on your system.
          Because of this we highly suggest that you
          DELETE ALL MODULES IN THE "Mojo", "MojoX" AND "Mojolicious"
        - Mojo::Script has been renamed to Mojo::Command, this change is not
          backwards compatible!
          You will have to regenerate application scripts or replace
          "Mojo(licious)::Script" with "Mojo(licious)::Command" manually.
        - Removed unused features from Mojo::Base and simplified API, this
          change is not backwards compatible!
              __PACKAGE__->attr('foo', default => 'bar');
              __PACKAGE__->attr(foo => 'bar');
        - Merged eplite and epl, this change is not backwards compatible, you
          will have to rename all your eplite templates to epl.
        - Simplified MojoX::Renderer, this change is not backwards
          Handler can no longer be detected, that means "default_handler" or
          the "handler" argument are required.
          The template argument can no longer contain format or handler.
              $self->render(template => 'foo.html.epl')
              $self->render('foo', format => 'html', handler => 'epl')
          The following forms are available now.
              $self->render(controller => 'foo', action => 'bar');
              $self->render({controller => 'foo', action => 'bar'});
              $self->render(text => 'Hello!');
              $self->render(template => 'index');
              $self->render(template => 'foo/index');
                  template => 'index',
                  format   => 'html',
                  handler  => 'epl'
              $self->render(handler => 'something');
              $self->render('foo/bar', format => 'html');
              $self->render('foo/bar', {format => 'html'});
          For renderers the stash will no longer get an updated template,
          instead a new argument will be passed along.
              {template => 'foo/bar', format => 'html', handler => 'epl'}
        - Simplified context and controller in Mojolicious, this change is
          not backwards compatible!
          If you've been using a custom context object you'll now have to use
          a custom controller base class.
          The new controller_class attribute can now be used to set the
          default controller in Mojolicious.
          There is also no $c argument anymore actions get called with, since
          everything is in $self now.
        - Refactored and renamed Mojo::Transaction and Mojo::Pipeline, this
          change is not backwards compatible!
              Mojo::Transaction -> Mojo::Transaction::Single
              Mojo::Pipeline -> Mojo::Transaction::Pipeline
        - Refactored and renamed Mojo::File and Mojo::File::Memory, this
          change is not backwards compatible!
              Mojo::File -> Mojo::Asset::File
              Mojo::File::Memory -> Mojo::Asset::Memory
        - Refactored and renamed Mojo::Content, this change is not backwards
              Mojo::Content -> Mojo::Content::Single
        - Added conditions to MojoX::Routes.
        - Added routes script to Mojolicious.
        - Simplified Mojo::Base.
        - Simplified exceptions.
        - Changed Mojo::Log to default to utf8 when writing to a file.
        - Cleaned up Mojo::Date.
        - Cleaned up Mojo::Transaction.
        - Made build_tx a callback named build_tx_cb in Mojo.
        - Made the exception template a bit more fault tolerant.
        - Made controller base class configurable in
        - Removed address, password and user methods from Mojo::URL.
        - Fixed Microsoft IIS CGI and FastCGI environment support.
        - Fixed prefix handling in MojoX::Dispatcher::Static.
        - Fixed max_age in Mojo::Cookie.
        - Fixed cloning of urls with base in Mojo::URL.
        - Fixed parsing of multiple headers and cookies with same name.
        - Fixed pipeline support in Mojo::Client. (acajou)
        - Fixed utf8 handling in Mojo::Parameters. (vti)
        - Fixed Mojo::Scripts to only allow word characters in script names.
        - Fixed security problem in MojoX::Dispatcher::Static. (trendels)

0.991246 2009-08-01 00:00:00
        - Fixed typo.

0.991245 2009-07-31 00:00:00
        - Added spin_app to Mojo::Client and simplified API.
        - Added port support to Mojo::Cookie.
        - Made chunk size configurable with MOJO_CHUNK_SIZE environment variable.
        - Simplified script system startup.
        - Cleaned up server tests.
        - Fixed win32 bug where eplite templates would not be detected right.

0.991244 2009-07-30 00:00:00
        - Fixed package.

0.991243 2009-07-28 00:00:00
        - Made eplite ignore everything after __END__.
        - Made proxy support more portable.
        - Simplified progress callbacks.
        - Cleaned up internal Mojo APIs.
        - Added local host bin address support to Mojo::Server::Daemon.
        - Fixed layouts on win32 and made templates portable, "/" is now the
          separator on all platforms. (charsbar)
        - Fixed dependency on Getopt::Long 2.38. (kevinold)
        - Fixed Perl 5.8.1 prereqs. (alias)

0.991242 2009-07-27 00:00:00
        - Cleaned up the whole script system, this change is mostly backwards
          compatible except for a few cases.
              "daemon $port" now becomes "daemon -p $port"
              "mojolicious mojo $script" becomes "mojolicious $script"
        - Added HTML escape expression marks "<%==" and "%==" to
        - Added more Mojolicious::Lite examples and reformatted them into a
        - Fixed a bridge bug in MojoX::Dispatcher and added tests.

0.991241 2009-07-20 00:00:00
        - Mojolicious::Lite has been introduced as a new entry level web
          framework example.
        - Mojo::Message::Response will now default to response code 200,
          this change is not backwards compatible.
          In Mojolicious you should use ->render(text => 'Hello!') instead of
          ->res->body('Hello!') now.
        - Changed routes syntax again, this change is not entirely backwards
          compatible but will only affect you if you are using the relaxed
          and wildcard variations.
              "/((foo))" becomes "/(.foo)"
              "/(((foo)))" becomes "/(*foo)"
        - Updated Mojolicious to support ->render(text => 'Hello World!').
        - Updated Mojo::Script::get_data to use "@@ $name" instead of
        - Updated our routes implementation to support HTTP request methods.
        - Updated Mojo::Home to fallback to FindBin for detection.
        - Made Mojolicious much more fault tolerant.
        - Fixed PATH_INFO handling of the CGI environment parser in
        - Added url_for and render_partial to Mojolicious::Controller.
        - Added namespace support to Mojo::Template.
        - Added eplite handler to Mojolicious::Renderer.
        - Added generator for lite apps.
        - Added tests.
        - Allow log level override via environment variable in Mojo::Log.
        - Code cleanup.

0.991240 2009-07-19 00:00:00
        - Turned Mojolicious layout rendering inside out for better exception
          handling and to make layouts configurable from templates.
        - Added debug helpers to Mojo::Server::FastCGI.
        - Fixed detection bug in Mojo::Home.
        - Fixed generator bug in Mojo::Script.
        - Fixed Windows related parser bug in Mojo::Loader::Exception.
        - Cleaned up code.

0.991239 2009-07-16 00:00:00
        - Renamed bin directory to script, old apps should not break but you
          are still encouraged to rename the directory yourself.
        - Simplified Mojo::Template, this will only affect you if you are
          using Mojo::Template directly.
        - Added setuid/setgid support to Mojo::Server::Daemon and
          Mojo::Server::Daemon::Prefork. (James Duncan)
        - Updated Mojo::Server::FastCGI and Mojo::Server::Daemon::Prefork to
          use the application logger.
        - Fixed import problem in Mojo::Server::Daemon::Prefork. (James Duncan)
        - Fixed warning in template.t.

0.991238 2009-07-16 00:00:00
        - Fixed all shebang lines.

0.991237 2009-07-15 00:00:00
        - Renamed process_local to process_app in Mojo::Client, this change
          is not backward compatible and you might have to change some of
          your tests.
        - Simplified MojoX::Renderer.
        - Simplified Mojo::Loader.
        - Simplified Mojo::ByteStream.
        - Simplified exceptions.
        - Updated all modules to use IO::Poll instead of IO::Select.
        - Updated exception handling in Mojolicious to work with exceptions
          in epl templates.
        - Updated Mojo and Mojolicious to log to STDERR if log directory
          isn't writable.
        - Updated Mojo and Mojolicious to work without boilerplate and a
          single file.
        - Added html_encode and html_decode methods to Mojo::ByteStream.
        - Improved 100 Continue handling and added more tests. (acajou)
        - Improved Mojo::Template exception handling.
        - Cleaned up exception code.
        - Fixed possible infinite loop in Mojo::Server::FastCGI.
        - Fixed typos.

0.991236 2009-07-05 00:00:00
        - Simplified Mojo::Home.
        - Moved executable detection to Test::Mojo::Server.
        - Improved Mojo::Loader::Exception.
        - Moved persistent_error.t tests to app.t.
        - Cleaned up code.
        - Fixed at_least_version. (yuki-kimoto)

0.991235 2009-07-05 00:00:00
        - Removed prepare/finalize methods from Mojolicious.
        - Fixed typos.

0.991234 2009-07-03 00:00:00
        - Added name and value filters to Mojo::Headers. (acajou)
        - Added clean multiline value handling to Mojo::Headers.
        - Added prepare/finalize methods to Mojolicious.
        - Added some additional mime types to MojoX::Types.
        - Renamed method add_line to add in Mojo::Headers.
        - Updated generator scripts to play nice with MM->parse_version.

0.991233 2009-07-01 00:00:00
        - Rewrote Mojo::Client::process_local to use the new state machine.
        - Added Server and X-Powered-By headers.
        - Fixed external server tests.
        - Fixed Mojo::Date handling of negative epoch values.

0.991232 2009-06-29 00:00:00
        - Fixed tarball.

0.991231 2009-06-29 00:00:00
        - Rewrote MojoX::Renderer, it is not backward compatible and
          templates need to be renamed in the following 3 part format
        - Added exception support to MojoX::Dispatcher::Routes, this change
          is not backward compatible and "dispatch" calls now return
          exception objects for errors and false otherwise.
        - Changed routes syntax, this change is not backward compatible and
          you need to change all your existing routes.
            "/:foo" becomes "/(foo)"
            "/^foo" becomes "/((foo))"
            "/*foo" becomes "/(((foo)))"
        - Added full HTTP 1.1 pipelining support to all Mojo layers.
        - Added layout support to MojoX::Renderer.
        - Made render call optional.
        - Added format support to MojoX::Routes.
        - Added Mojo::Loader::Exception.
        - Added wildcard symbol support to MojoX::Routes and rewrote many
          routes internals.
        - Added Makefile.PL generator.
        - Added HttpOnly support to Mojo::Cookie. (burak)
        - Support more CGI implementations.
        - Added support for namespaces only dispatching in
        - Added encoding support to Mojo::Template and made "utf8" the
        - Added HEAD support to Mojo::Server::Daemon. (acajou)
        - Added new relaxed placeholder to MojoX::Routes::Pattern.
        - Added Mojo::Template::Exception.
        - Added HEAD support to the Mojo::Transaction state machine and
          related modules. (acajou)
        - Added safe_post option to Mojo::Pipeline. (acajou)
        - Made chained => 1 the default in Mojo::Base.
        - Fixed compiler bug in Mojo::Template that prevented more advanced
          control structures, you might have to add additional semicolons to
          some of your templates.
        - Fixed Mojo::Date to not crash on invalid dates. (vti)
        - Fixed chunked support in Mojo::Server::Daemon and Mojo::Client.
        - Fixed tokenizer in MojoX::Routes::Pattern to support "0" values.
          (Anatoly Sharifulin)
        - Fixed parsing of "0" in Mojo::Path. (charsbar)
        - Fix server tests on win32. (charsbar)
        - Fixed leading whitespace problem in the request parser. (acajou)
        - Fixed broken pipe problem in Mojo::Server::CGI. (vti)
        - Added more diagnostics options to Mojo::HelloWorld. (uwe)
        - Fixed empty cookie parsing. (vti)
        - Fixed a case where child processes migth hang in
          Mojo::Server::Daemon::Prefork. (gbarr)
        - Fixed a bug in MojoX::Dispatcher::Routes where the renderer would
          be called with an empty stack. (melo)
        - Fixed a escaping problem in Mojo::Parameters. (vti)
        - Updated Mojo::URL to be more template friendly.
        - Improved Solaris compatibility.

0.9002  2009-02-16 00:00:00
        - Added local_address(), local_port(), remote_address() and
          remote_port() to Mojo::Transaction.
        - Improved tests.
        - Fixed some typos.

0.9001  2009-01-28 00:00:00
        - Added proper home detection to Mojo itself. (charsbar)
        - Fixed a bug where errors got cached in the routes dispatcher.
        - Updated error handling in MojoX::Dispatcher::Static.
        - Fixed Mojo::Message::Request::cookies() to always return a
        - Fixed url_for to support references. (vti)
        - Fixed unescaping of captures. (vti)
        - Fixed typos. (uwe)

0.9     2008-12-01 00:00:00
        - Added modes to Mojolicious.
        - Added Mojo::Log and log support for Mojo/Mojolicious.
        - Changed MojoX::Renderer and Mojo::Template api to make catching
          errors easier, we now use a scalar ref for results like most
          template engines.
        - Added MojoX::Context.
        - Added multi level controller class support to Mojolicious.
        - MojoX::Dispatcher::Routes should be able to fail.
        - Added diagnostics functions to Mojo::HelloWorld.
        - Made the env parser Apache compatible.
        - Made Mojo::Server::FastCGI Apache compatible.
        - Added namespace, class and method captures to
        - Made url_for work for rebased applications.
        - Added ctx, render, req, res and stash methods to Mojolicious
        - Changed cookie, param and upload in Mojo::Parameters to return a
        - Added support for templateless renderers to MojoX::Renderer.
        - Added blacklist to MojoX::Dispatcher::Routes.
        - Fixed Mojo::Date bugs. (vti)
        - Fixed / routes matching too much.
        - New Windows workaround in Mojo::Client and Mojo::Server::Daemon.
        - Cleaned up Mojo::Transaction. (Ask Bjoern Hansen)
        - Added .perltidyrc. (Ask Bjoern Hansen)
        - Allow chains to be broken with return values in
        - The stack in MojoX::Routes resets now.
        - Renamed default_handler to default_format in MojoX::Renderer.
        - Disallow actions beginning with _ in MojoX::Dispatcher::Routes.
        - Preload application in servers. (Graham Barr)
        - Renamed is_version to at_least_version. (Mark Stosberg)
        - Added documentation. (Ch Lamprecht)
        - Added param tests. (Mark Stosberg)
        - Added documentation for Mojo::Log. (Mark Stosberg)
        - Add test for MojoX::Renderer. (Mark Stosberg)
        - When testing, allow servers a few seconds to stop. (Leon Brocard)
        - Fixed typos.

0.8009  2008-11-07 00:00:00
        - Cleaned up Mojo::Message callbacks and added tests.
        - Fixed escaping in Mojo::URL.
        - Fixed query string support and escaping in Mojo::Parameters.
        - Optimized randomness in Mojo::Client. (Leon Brocard)
        - Randomized handle order in Mojo::Client
        - Mojo::Client now prefers writes over reads.
        - Added copy_to and move_to to Mojo::File.
        - Made the daemons about 20% faster.
        - Cleaned up Mojo::File. (Leon Brocard)
        - Fallback to default renderer in MojoX::Renderer.
          (Ask Bjoern Hansen)
        - Made Mojo::Base instantiation a little bit faster.
        - Added documentation to Mojo::Base. (Marcus Ramberg)
        - Moved the home attribute from Mojolicious to Mojo.
        - Fixed MojoX::Renderer to pass options through to the handler.
          (Ask Bjoern Hansen)
        - Fixed Mojo::Server::FastCGI according to the spec.
        - Dispatchers now return true or false.
        - Added documentation to Mojo::Home. (Mark Stosberg)
        - Added documentation to Mojo::Buffer. (Mark Stosberg)
        - Removed replace from Mojo::Buffer. (Mark Stosberg)
        - Added buffer tests. (Mark Stosberg)

0.8008  2008-11-07 00:00:00
        - Fixed multipart parsing for short requests.
        - Fixed content file storage to specific file.
        - Fixed lower case appclasses.

0.8007  2008-11-07 00:00:00
        - Cleaned up the api some more.
        - Added param to Mojo::Message.
        - Added server.t. (Mark Stosberg)
        - Added documentation. (Mark Stosberg)
        - Cleaned up Mojo::File api.
        - Fixed infinite loop in Mojo::File. (Leon Brocard)

0.8006  2008-11-06 00:00:00
        - Simplified api by removing aliases, this will help with subclassing
          annoyances but might break some existing code if you are using long
          versions of formerly aliased attributes.
        - Fixed application/x-www-form-urlencoded.
        - Fixed support for query strings.
        - Fixed multi query parameter support.
        - Added a context class to the Mojolicious generator.
        - Cleaned up Mojo::Server api. (Mark Stosberg)
        - Increased Mojo::Template performance. (Pedro Melo)
        - Added documentation. (Mark Stosberg)
        - Fixed typos. (Marcus Ramberg)

0.8.5   2008-11-04 00:00:00
        - Fixed version. (Andreas Koenig)
        - Fixed typos.

0.8.4   2008-11-04 00:00:00
        - Improved caching in Mojo::Message.
        - Added upload and cookie method to Mojo::Message.
        - Changed uploads behavior in Mojo::Message to bring it in line with
        - Added documentation. (Mark Stosberg)

0.8.3   2008-11-03 00:00:00
        - Removed filter from Mojo::Base and added warnings.
        - Added caching to uploads in Mojo::Message. (Mark Stosberg)
        - Fixed typos. (Robert Hicks)
        - Added documentation.

0.8.2   2008-11-01 00:00:00
        - Removed OS X resource fork files.

0.8.1   2008-11-01 00:00:00
        - Made daemon.t developer only.
        - Fixed typos.

0.8     2008-10-21 00:00:00
        - Fixed Mojo::Server::Daemon windows support.
        - Generated applications now have individually named executables.
        - Cleaned up Mojo::Home.
        - Changed Mojolicious default application templates to something more
        - Mojo::Base accessors don't take multiple arguments anymore,
          this results in a 25% speed increase.
        - Added MOJO_MAX_MEMORY_SIZE environment variable.
        - Added prepare_parser and prepare_builder callbacks to
        - Added done and is_done to Mojo::Stateful.
        - Fixed many win32 related bugs.
        - Fixed keep alive related bugs in daemon and client. (Pedro Melo)
        - Allow default in Mojo::Base to have false values. (Pedro Melo)
        - Fixed chmod_rel_file in Mojo::Script. (Shu Cho).
        - Mojo::Base attributes can't start with a digit. (Shu Cho).
        - Fixed Content-Length header for empty messages.
        - Removed warning from
        - Renamed gate to bridge in MojoX::Routes.
        - Added waypoint() to MojoX::Routes.
        - Added named url_for to MojoX::Routes and Mojolicious.
        - Added Mojolicious documentation. (vti)
        - Fixed documentation links.
        - Fixed some typos.

0.7     2008-10-11 00:00:00
        - Added the Mojolicious Web Framework example.
        - Added upload and GET/POST parameter helpers to Mojo::Message.
        - Hooks for upload progress and stuff added.
        - Refactored transfer encoding code into Mojo::Filter and
        - Added callbacks for start line and header generators.
        - Added workaround for missing IO::Seekable support in older
          versions of File::Temp (Perl 5.8).
        - script/ got renamed to bin/mojo.
        - Mojo::Cache got renamed to Mojo::File because there will be a cache
          module named MojoX::Cache, and that could cause confusion later on.
        - Fixed many escaping related bugs around Mojo::URL.
        - Fixed 100-Continue support in Mojo::Server::Daemon and Mojo::Client.
        - Countless small bugs fixed and tests added.

0.6     2008-09-24 00:00:00
        - Many more bugfixes.

0.5     2008-09-24 00:00:00
        - Many small bugfixes.

0.4     2008-09-24 00:00:00
        - Moved everything into the Mojo namespace.

0.3     2008-09-24 00:00:00
        - Fixed documentation.

0.2     2008-09-24 00:00:00
        - First release.