Revision history for Perl extension Plack

Take a look at http://github.com/miyagawa/Plack/issues for the planned changes before 1.0 release.

0.9973  Sat Feb 26 09:40:15 PST 2011
        - Fixed the regexp in the code check added in 0.9972 (leedo)

0.9972  Thu Feb 24 10:50:01 PST 2011
        - Fixed the Plack::Runner docs to avoid the cargo cult issue of __FILE__ eq $0
        - Added a silly check to give warnings if the idiom __FILE__ eq $0 is used in .psgi
        
0.9971  Wed Feb 23 14:02:35 PST 2011
    [INCOMPATIBLE CHANGES]
        - Localize $0 to the given .psgi path when evaluating it in Plack::Util::load_psgi()
          This fixes the unexpected values and/or crashes with Starman when your application
          uses FindBin module.

0.9970  Tue Feb 22 08:35:50 PST 2011
        - Apache2: Fixed a bug where dispatcher fails to parse first path when it begins with two or
          more slashes (clkao)

0.9969  Fri Feb 18 21:35:29 PST 2011
        - Suppress the use of unlocalized $_ in Plack::Runner (mst)
        - Plack::Handler::Net::FastCGI is now removed from Plack core dist.
          It will be released as a separate distribution on CPAN.
        - Fixed Plack::Handler::Apache2 so that it can safely call log (Andy Wardley)
        - StackTrace: Display graceful fallback errors when $SIG{__DIE__} is overridden in the application (mkanat)

0.9968  Wed Feb  9 19:07:48 PST 2011
        - Fixed Recursive middleware to rethrow unknown exceptions. #166 (reported by waba)
        - Document response_cb. #121
        - Plack::Loader to print errors if it is really a compilation error
        - Fixed the Cascade app to work with all 404 responses with the streaming interface. #171 (reported by eevee)

0.9967  Tue Jan 25 14:26:37 PST 2011
        - Fixed StackTrace to require D::ST::WithLexicals 0.08 that supports 'message' (doy)

0.9966  Tue Jan 25 12:00:25 PST 2011
        - Fixed a memory leak in SimpleLogger (vti)
        - Support %v in AccessLog (Ranguard)
        - Force set CONTENT_LENGTH in req_to_psgi when $content is given to HTTP::Request (timbunce) #150
        - Fixed a case where SCRIPT_NAME and PATH_INFO can both get empty in req_to_psgi (doy) #163

0.9965  Mon Jan 24 23:08:04 PST 2011
        - Requires Devel::StackTrace 0.11
        - Fixed a regression where StackTrace wasn't able to get the thrown exception as an error message (hachi)

0.9964  Mon Jan 24 16:29:08 PST 2011
        - Various documentation improvements (miyagawa, schwern)
        - Improved the way it eliminates Plack::Middleware::StackTrace from its own stacktrace (Jonathan Swartz)

0.9963  Mon Jan 10 16:46:33 PST 2011
        - Fixed fcgi.t for lighttpd < 1.4.23 (confound)

0.9962  Sat Jan  8 21:07:30 PST 2011
        - Same fix as 0.9961 but works around the issues with Strawberry unarchiver

0.9961  Fri Jan  7 21:54:04 PST 2011
        - Skip directory.t on win32 since the directory "stuff.." can't be created [RT:64545]

0.9960  Sat Dec 25 11:16:08 PST 2010
        - FCGI: Fixed the regression in 0.9958 where PATH_INFO gets wrong value when hosted under a
          non-root path (ambs)
        - Improved the FastCGI and Apache2 test infrastructure to test SCRIPT_NAME values

0.9959  Tue Dec 21 11:38:08 PST 2010
        - Apache2: Fixed the regression bug around LocationMatch caused by fixes in 0.9958 (cho45)

0.9958  Mon Dec 20 15:18:54 PST 2010
        - Plack::Handler::Apache[12] now handles Authorization: header automatically, no need for
          mod_rewrite workaround anymore (cho45)
        - Fixed Apache[12] and FCGI where multiple forward slashes were munged (cho45)
        - Static: Added pass_through option to pass non-existent paths to the app. Fixing the
          docs to match with the code (beanz) #154

0.9957  Thu Dec 16 11:27:29 PST 2010
        - Fixed warnings in Plack::Request cookie parsing (typester)
        - removed MethodOverride middleware. Now it is a standalone distribution on CPAN (theory)

0.9956  Thu Dec  9 19:32:46 PST 2010
        - FastCGI: Fixed an empty PATH_INFO with mod_fastcgi (and possibly others)
        - FastCGI: Improved the automatic detection of the case when invoked from web server. #141
          (reported by LeoNerd)
        - plackup: Document that -e 'enable ...' doesn't assume app.psgi when there's no argument. #106 (clkao)
        - Plack::App::FCGIDispatcher: Remove the Status: header #123 (reported by Htbaa)
        - Apache2: Work around issues where SCRIPT_NAME gets wrong when LocationMatch is used. #136
          (reported by atiking)

0.9955  Thu Dec  9 18:02:50 PST 2010
        - More fixes to a possible directory traversal

0.9954  Thu Dec  9 17:45:59 PST 2010
        - Fixed a directory traversal bug in Plack::App::File etc. RT:63020

0.9953  Fri Dec  3 14:50:09 PST 2010
        - Include the original error message in the StackTrace text output on console.
          This requires Devel::StackTrace 1.23 and Devel::StackTrace::WithLexicals 0.08 (optional)
        - Fixed AccessLog middleware to handle multiple dashes in %{} (Jiro)

0.9952  Thu Dec  2 14:03:48 PST 2010
        - Fixed the potential deadlocks in WrapCGI's read/write pipe (typester)
        - Improved documentations on plackup -e
        - Fixed a potential DoS vulnerability in HTTP::Server::PSGI (kazuho)
        - Allows setting names of FCGI process with proc_title option (rafl)

0.9951  Mon Oct 25 13:50:33 PDT 2010
        - Added Feersum to the benchmark script (stash)
        - Lint: fixed the body handle check to see if the file has getline() method (tokuhirom)
        - StackTrace: store the stacktrace in $env->{'plack.stacktrace.text'} and $env->{'plack.stacktrace.html'} (theory)
        - Added ->mount method to the Plack::Builder OO interface (franckcuny)
        - HTTPExceptions: Don't set an invalid Content-Length when the exception is not an object (ask)
        - ErrorDocument: Fixed wrong Content-Length header be set (ask)

0.9950  Thu Sep 30 14:11:33 PDT 2010
        - Fixed typos in middleware docs (miyagawa, theory, tokuhirom)
        - App::Directory: fixed URL generation escape bug (chiba)
        - Middleware::JSONP: support callback parameter name (franck)

0.9949  Tue Sep 14 11:59:36 PDT 2010
        - Fixed FCGI handler docs
        - Auth::Basic: Pass $env to the callback so .htpasswd based auth can be implemented with PATH_INFO (doy)

0.9948  Thu Sep  9 16:01:53 PDT 2010
        - Fixed a bug introduced in 0.9947 where $req->upload loses the temporary files when
          Plack::Request object is instantiated multiple times. It could happen if one of the
          pre-processing middleware uses Plack::Request and then again in the application or
          frameworks.

0.9947  Thu Sep  9 02:26:14 PDT 2010
        - Plack::Loader: Fixed a typo in ENV that prevents warnings messages in development
        - Added flymake temporary file in Restarter (hirose31)
        - Plack::Request: Fixed a bug that HTTP::Body temporary files were not cleaned up (plu)
        - Middleware::AccessLog: Fixed a bug where %{key}i ignores the value '0' (nekoya)

0.9946  Sat Aug 28 22:32:16 PDT 2010
        - Fixes UUV warnings in Apache2 handler RT:60472
        - Fixed various test failures due to dependencies

0.9945  Thu Aug 19 16:24:30 PDT 2010
        - Support executing (non-perl) CGI scripts in CGIBin and WrapCGI
        - Fixed tests for win32

0.9944  Sun Aug  8 23:35:52 PDT 2010
        - Fixed Restarter for Starlet where SIGTERM doesn't quit the process (chiba)

0.9943  Fri Jul 30 13:24:15 PDT 2010
        - Updated Apache* handler so it could duck type on Loader (jnap)
        - Added --access-log to plackup (grantm)
        - Added support for streaming stdio in Net::FastCGI handler (chansen)

0.9942  Fri Jul 23 23:42:43 PDT 2010
        - Allow passing FCGI manager object to Handler::FCGI (confound)
        - Call FCGI::Request::Finish() before pm_post_dispatch (confound)
        - Moved response_cb() to Plack::Util (confound)
        - re-enable WithLexicals now that PadWalker segfaults with 5.12 is fixed #98

0.9941  Thu Jul  8 18:17:30 PDT 2010
        - Makes Lint not warn about ASCII-only strings with UTF8 flag because they're safe

0.9940  Fri Jul  2 23:37:51 PDT 2010
        - Fixed META.yml

0.9939  Fri Jul  2 17:56:10 PDT 2010
        - Improved middleware documentation (miyagawa, leedo, bobtfish)
        - Added a test about Transfer-Encoding with Content-Length: 0 (chiba)
        - Fixed NullLogger middleware (haarg)
        - Fixed Plack::Util inline object's can() (haarg)
        - Middleware::HTTPException now honors ->location method of the exception (frodwith)
        - Middleware::AccessLog: Fixes %D to be microsec so it's compatible to Apache #119 (cho45)
        - Fixed Plack::Request->uri when PATH_INFO conatins URI reserved characters #118 (leedo)

0.9938  Sun May 23 17:13:05 PDT 2010
        - ErrorDocument: Added Content-Length to error responses (hachi)
        - Improved docs about conditional middleware loading
        - XSendfile: Updated (undocumented) environment key to switch frontend
        - Auth::Basic: Added notes about how to use it with Apache (mod_perl and CGI) [RT #57436]

0.9937  Fri May 14 23:11:27 PDT 2010
        - Fixed -I broken in 0.9936 (juster) #114

0.9936  Fri May 14 15:58:02 PDT 2010
        - Remove 'use lib "lib"' from plackup
        - Remove HTTP_CONTENT_* environment variables in FastCGI handlers to deal with buggy web servers.
          (Justin Davis)

0.9935  Wed May  5 15:17:06 PDT 2010
        - Set an empty PATH_INFO if CGI environment doesn't set so (hachi) #109
        - Fixed a possible weird combination of SCRIPT_NAME and PATH_INFO in CGI handlers
        - localize PATH_INFO and SCRIPT_NAME in App::File and subclasses #100
        - updated COPYRIGHT notice for Debian
        - Middleware::StackTrace now displays text trace to psgi.errors like Rack::ShowExceptions
          (castaway, theorbtwo)
        - Middleware::StackTrace: Fixed the text stack trace format to be more readable

0.9934  Tue May  4 15:47:33 PDT 2010
        - Added a test in CGIBin where binmode ":utf8" causes bad content-length #110
        - Doc fix for the deprecated servers
        - Initialize Module::Refresh (hiratara)
        - Added mime_type to ErorrDocument (kakuno)

0.9933  Tue Apr 27 14:32:23 PDT 2010
        - refactored the app.psgi loading error handling
        - Enable type checking of the app in Lint->wrap
        - allow plackup -e'...'
        - Disable FCGI::Client/Net::FastCGI test by default

0.9932  Mon Apr 19 15:23:55 JST 2010
        - Enable Lint middleware by default in the development env
        - Lint middleware now validates $app on startup
        - Fixed documentations on middleware and handlers

0.9931  Fri Apr 16 23:52:27 PDT 2010
        - replace kyoto.jpg test image file with smaller baybridge.jpg to strip down the tarball size
          from 2.5MB to 212KB.

0.9930  Tue Apr 13 20:18:06 PDT 2010
        - Added Plack::Handler::Net::FastCGI (chansen)
        - Made Test::TCP a hard dependency since Plack::Test needs it
        - Added Delayed loader for Starlet and Starman (clkao)
        - Hide logger middleware from log4perl's caller stack (haarg)

0.9929  Wed Mar 31 00:33:10 PDT 2010
        - Middleware::JSONP: Simplified code and does not support IO response body type
        - fcgi.t: skip tests with lighttpd < 1.4.17 per CPAN Testers #7040400

0.9928  Mon Mar 29 17:02:42 PDT 2010
        - log_dispatch.t: require Log::Dispatch::Array

0.9927  Mon Mar 29 12:43:44 PDT 2010
        - require newer Log::Dispatch (confound)
        - StackTrace: Encode exceptions in utf-8 in case they include wide characters #95 (tokuhirom)
        - StackTrace: Depends on a new Devel::StackTrace::AsHTML that escapes wide characters
        - StackTrace: Display stacktrace only if the thrown exception is a direct error #91 (frodwith)
        - StackTrace: Added 'force' option to force stacktrace in 500 errors
        - Avoid warnings when response_cb filter returns undef in ARRAY response body #92 (hiratara)
        - URLMap: Ignore port number if it matches with SERVER_PORT #90 (omega)
        - URLMap: Enable debug print with PLACK_URLMAP_DEBUG=1 #94
        - JSONP: Fixed possible infinite-loop when using with IO response body (hiratara)
        - Fixed the compatiblity issues with FastCGI docs and tests with lighttpd 1.4.26 (tadam)
        - LighttpdScriptNameFix: Added 'script_name' option (tadam)

0.9926  Sun Mar 28 14:37:03 PDT 2010
        - Added -v|--version option to plackup and the ability for Plack::Runner users to override

0.9925  Sat Mar 27 19:03:57 PDT 2010
        - Make this a non-devel release

0.99_24 Sat Mar 27 13:31:51 PDT 2010
        - Disable Devel::StackTrace::WithLexicals for now until PadWalker RT #55242 is fixed

0.99_23 Sat Mar 27 01:02:24 PDT 2010
        - Dropped keep-alive code from HTTP::Server::PSGI now that Starlet clones the code
        - Special case --disable-* and --enable-* command line options in plackup and Plack::Runner

0.99_22 Thu Mar 25 19:48:08 PDT 2010
        - INCOMPATIBLE: removed --max-workers option from the default standalone server.
          Now it gives you warnings and falls back to the single process mode.

0.99_21 Thu Mar 25 15:05:53 PDT 2010
        - INCOMPATIBLE: removed a workaround for lighttpd SCRIPT_NAME bug in FCGI handler
          See http://github.com/miyagawa/Plack/issues#issue/68 for details.
        - HTTPException now logs standard exceptions to psgi.errors
        - micro optimization for Plack::Request content() method

0.9920  Thu Mar 18 23:48:06 PDT 2010
        - Fixed URL path prefix matching in URLMap (hiratara)
        - Fixed Plack::Request->content on GET with FastCGI servers (sunnavy)
        - Added new middleware Middleware::Head
        - Fixed localization bug in Plack-Util/load.t

0.9919  Wed Mar 17 22:50:09 PDT 2010
        - Properly rethrow .psgi compilation errors

0.9918  Wed Mar 17 22:35:00 PDT 2010
        - Load .psgi file in an unique package rather than Plack::Util to avoid
          namespace pollution gh-88

0.9917  Wed Mar 17 15:33:43 PDT 2010
        - Added Plack::Handler::Apache2::Registry (hiratara)
        - Set default PLACK_ENV in Plack::Util::load_psgi

0.9916  Fri Mar 12 12:52:39 JST 2010
        - Added support for a new (renamed) web server Corona
        - Document enable coderef in Plack::Middleware (clkao)
        - Middleware::StackTrace: Send plain text errors to clients that probably do
          not understand HTML like curl

0.9915  Mon Mar  8 18:22:33 JST 2010
        - Fixed a dumb bug in Plack::Handler::Apache2, broken in 0.9914 (hiratara)
        - Added a warning if you misuse mount()

0.9914  Wed Mar  3 16:02:38 PST 2010
        - Fixed psgix.io and nested closure for perl 5.8 (hiratara)
        - Added an inheritance friendly Apache2 interface (frodwith)
        - HTTP::Server::PSGI: Close client connection in the first run (hirose31)
        - Fixed Loader/auto.t to reset env var (gugod)

0.9913  Thu Feb 25 19:14:40 PST 2010
        - Revive psgix.io in HTTP::Server::PSGI (hiratara)
        - Fix packaging issue

0.9912  Thu Feb 25 01:28:21 PST 2010
        - Fixed the possible source of memory leak in middleware + streamer + HTTP::Server::PSGI
          with perl 5.8.x (hiratara)

0.9911  Tue Feb 23 01:55:04 PST 2010
        - Removed psgix.io extension to fix streaming choke issue on HTTP::Server::PSGI (tomyhero)

0.9910  Mon Feb 22 19:03:17 PST 2010
        - This is the first non-dev release since 0.99. Read all the change logs below.
        - Support streaming in JSONP (hiratara)
        - Fixed various handler docs (markstos)
        - Added Starman and Twiggy to benchmark script
        - INCOMPATIBLE: Loader now prefers Twiggy when AnyEvent is loaded
        - Implemented (experimental) psgix.io and psgix.input.buffered extensions
        - Fixed Plack::Request POST parser to use psgix.input.buffered for better performance
        - Added PLACK_ENV environment support in plackup #63
        - Added HTTPExceptions middleware
        - Added Recursive middleware

0.99_05 Wed Feb 10 12:46:05 PST 2010
        - Changed the Loader command line options to -L from -l
        - Runner now folds --host, --port and --socket to --listen and vice verca
        - Added -D and --daemonize to plackup/Runner standard options
        - Fixed FCGI handler to work with the new --listen and --daemonize option
        - Fixed a bug in static.t where it chdir's before loading modules
        - Renamed Writer to BufferedStreaming middleware and added docs
        - Support streaming apps in Shotgun loader
        - Falls back to Standalone handler when auto-detected backend is not available (hiratara)
        - Support chunked-input in HTTP::Request->to_psgi
        - Make the Reloader work with preforked server (chiba)
        - Added 'Auto' backend in TempBuffer
        - Added Nomo backend to the benchmark script
        - Updated HTTP::Server::PSGI to support experimental psgix.input.buffered
        - Plack::Request now honors psgix.input.buffered to see psgi.input is seekable
        - Renamed Standalone handler to HTTP::Server::PSGI for consistency while keeping
          'Standalone' as a nickname

0.99_04 Fri Feb  5 23:10:48 PST 2010
        - Updated Test suite for multiple request headers to relax a bit for AE::HTTPD
        - Added a test for large POST body which revealed FCGI::Client bug
        - Added a handler for HTTP::Server::Simple::PSGI
        - Depend on a decent version of URI (tomyhero)
        - Reworked Loader API so the default loader can autodetect the backend again
        - run_app now doesn't use Try::Tiny but use plain eval {}

0.99_03 Wed Feb  3 16:09:14 PST 2010
        - Use 0 as a default address in the server_ready hook in Plack::Runner
        - Document Plack::Handler naming scheme
        - Fixed how Plack::Server::Standalone saves args
        - Supported streaming interface in Cascade and URLMap
        - mentions awesome WSGI Paste in Plack documentation
        - Removed URI caching in Plack::Request since it's fast enough
        - Fixed packaging issue due to Module::Install::Share bug (rafl)
        - Support 'file' option in App::File and its subclasses
        - Fixed SCRIPT_NAME and PATH_INFO in App::CGIBin
        - Fixed App::Directory and ::File not to use Path::Class and its canonicalization.
          It's now 300% faster!

0.99_02 Sat Jan 30 22:10:45 PST 2010
        - Fixed Plack::TempBuffer to work with 5.8 and 5.11.3
        - Do not use <$input> in FCGIDispatcher
        - Skip fcgi_client.t unless explicitly stated (clkao)
        - clarify and drop some CPAN dependencies (andk)

0.99_01 Fri Jan 29 14:02:04 PST 2010
  Incompatible Changes
        - Rename Standalone servers to HTTP::Server::PSGI
        - Rename Plack::Server adapters to Plack::Handler. These changes should be transparnt
          since we have a compatible code to work with the older names as well.
        - Dropped sendfile(2) AIO support from Standalone server
        - Plack::Request and Response are now in core, deprecating many methods.
          Read `perldoc Plack::Request` and its INCOMPATIBILITIES section

  New Features
        - New middleware: WrapCGI to convert a single CGI script into a PSGI applciation
        - Support psgix.logger and psgix.session in Plack::Request
        - New logger middleware: NullLogger, SimpleLogger, Log4perl and LogDispatch
        - Refactored Loader classes and added a new Shotgun loader (like rack's Shotgun)
        - Added -l option to plackup which specifies the Loader backend
        - New middleware: Refresh reloads modules in %INC in every N seconds
        - Wraps -e code with 'builder { }' by default. You can also use with *.psgi to add middleware
          components without editing the file!

  Bug Fixes and Improvements
        - Do not call ->canonical in HTTP::Message::PSGI to keep the URI encoded params in Plack::Test
          tests (rafl, t0m)
        - Fixed a bug in stupid corner case in HTTP::Message::PSGI where passed URI has UTF-8 encoded
          strings *and* URI escaped UTF-8 bytes. (chmrr)
        - Depend on new HTTP::Request::AsCGI that has better REQUEST_URI
        - Plack::Runner/plackup does not autoload AccessLog in CGI mode anymore
        - Added server_ready hook to PSGI servers so you can disable them in tests etc. (clkao, rafl)
        - Escape user-supplied values in AccessLog to avoid control sequence injection (tokuhirom, kazuho)
        - Support -foo (single dash) style option in Plack::Runner and plackup
        - Relax the runtime.t check since it still fails on low-res time environments
        - Now depends on Digest::MD5, HTTP::Body and Hash::MultiValue
        - Revert the 'require' in load_psgi to do 'do'
        - Delay load unnecessary modules in Plack::Runner
        - Fixed psgi.multiprocess value on HTTP::Server::PSGI
        - PSGI/1.1 support in Lint

0.9031 Mon Jan 11 11:29:04 PST 2010
        - Fixed Plack::App::Directory directory listing by switching to Plack::MIME (tokuhirom)
          This has been broken since 0.9025
        - Fixed body filtering middleware such as Plack::Middleware::Deflater (hiratara)
          This has been broken since 0.9026

0.9030 Sat Jan  9 13:13:17 PST 2010
        - Support streaming interface in HTTP::Message::PSGI, Lint and Plack::Test (rafl)
        - plackup -e doesn't enable strict and warnings by default, like perl
        - Improved Middleware::Auth::Basic performance and error check

0.9029 Thu Jan  7 19:09:17 PST 2010
        - Fixed runtime.t to relax test condition to avoid failures on Win32 (xaicron)
        - Fixed a bug in FCGI engine where it creates a bogus response when running under a
          buffered I/O with lighttpd. (fcharlier, typester)
        - FCGI and CGI server now autoflushes STDOUT to do non-buffering output
        - Fixed a Plack::MIME bug where extensions like .mp3 fails

0.9028 Tue Jan  5 18:42:07 PST 2010
        - Fixed a long standing bug where errors are not printed correctly when the
          application dies. (tokuhirom)
        - Fixed FCGIClient passing bogus psgi.* environment values to the backend
        - Implemented psgi.streaming in all blocking servers (miyagawa, rafl)

0.9027 Sun Jan  3 16:33:23 PST 2010
        - Added new middleware Runtime that adds X-Runtime header
        - Delay load Pod::Usage in Plack::Runner and plackup

0.9026 Fri Jan  1 10:35:26 JST 2010
        - Auth::Basic now accepts an object that duck types to ->authenticate (e.g. Authen::Simple)
        - Reworked how response_cb body callback works, so Content-Length will be updated correctly

0.9025 Sat Dec 26 10:11:59 JST 2009
        - Server::Standalone::* should now display the correct Server: value
        - Fixed a bug in AccessLog::Timed where %D and %T do not work
        - Fixed a bug in AccessLog::Timed to work with filehandles
        - Removed a dependency to MIME::Types and include Plack::MIME
        - Refactored plackup into Plack::Runner
        - Fixed a failing test under stupid Win32 filesystem
        - Fixed ConditionalGET to work with delayed response

0.9024 Sat Dec 19 12:25:52 PST 2009
        - Overwhauled how -r and -R works in plackup. Looks at .psgi and lib/ under that by default.

0.9023 Thu Dec 17 13:16:38 PST 2009
        - Document the use of Plack:: namespace
        - Use safer Unicode characters in tests to silence warnings #66
        - Plack::Util::load_psgi now takes a class name as well. Added notes about the security of its use
        - Set default host in MockHTTP and keep them if explicitly set (nihen)

0.9022 Sun Dec 13 10:53:01 PST 2009
        - Added more assertions to Middleware::Lint
        - Added a new test to test big HTTP header, which reveals the FCGI::Client bug (zrail, tokuhirom)
        - plackup -e now automatically loads Plack::Builder
        - Fixed fcgi tests (tokuhirom)
        - Fixed Test::MockHTTP to make 500 response when the app died
        - Fixed a memory leak in StackTrace when WithLexicals is used (chiba, Sartak)
        - Fixed Middleware::ConditionalGET to deal with stupid IE headers (chiba)
        - Fixed lots of typos (Sartak)

0.9021 Tue Dec  8 14:29:08 PST 2009
        - Doc patches to Plack about CONTRIBUTING (stevan)
        - Remove Class::Accessor::Fast and added Plack::Util::Accessor (stevan)
        - Added Plack::Component the common base class for both App:: and Middleware (stevan)
        - Plack::Test test_psgi now accepts $app, $client in positional args
        - Plack::Test client callback can now omit host names like $cb->(GET "/")

0.9020 Mon Dec  7 10:38:37 GMT 2009
        - Fixed a test (psgibin.t) failure in case sensitive filesystem
        - Fixed a warning in Plack::Util::header_set

0.9019 Sun Dec  6 05:56:30 GMT 2009
        - Fixed a bug in Plack::Util::header_set when to clear multiple headers (chiba)
        - Added Plack::App::CGIBin that runs cgi-bin scripts as a PSGI application
        - Added Plack::App::PSGIBin that loads .psgi files from local filesystem

0.9018 Thu Dec  3 00:48:04 PST 2009
        - Allow Plack::Middleware->new to accept plain hashes
        - Added Plack::App::Cascade to create a compound apps that cascade requests
        - Added POE backend to benchmarks/ab.pl
        - Implemented Plack::Server::Apache[12]->preload to preload apps in <Perl> or startup file

0.9017 Sun Nov 29 17:33:36 JST 2009
        - Fixed more tests that fail on Win32 (charsbar)

0.9016 Sun Nov 29 16:39:40 JST 2009
        - removed Middleware::Deflater from the dist.
        - Fixed Standalone so as not to use Time::HiRes::Alarm on Win32 systems (charsbar, kazuho)
        - Fixed App::File to set file path using forward slashes on Win32 (charsbar) #49

0.9015 Thu Nov 26 17:31:33 JST 2009
        - Fixed a bug in URLMap where $env is shallow copied and some middleware don't work
        - Added -e and -M to plackup
        - plackup -r with args (directories to watch) is deprecated. Use -R instead
        - plackup foo.psgi now DWIMs. -a (--app) continues to work
        - Optimizaitons to Middleware and docs to explicitly call to_app because overloading happens
          every request and is inefficient.
        - The abilitiy to auto-select server backends for POE/AnyEvent/Coro is restored. Doesn't work with -r though. #50
        - Display server package name in the Standalone/Prefork startup
        - Fixed a bug in Plack::Test::MockHTTP where $res doesn't return the request (teejay)
        - Fixed a bug in URLMap where requests to / fails in some cases (chiba)

0.9014 Fri Nov 20 21:51:47 PST 2009
        - Updated docs for Standalone keep-alive options
        - Added Auth::Basic middleware
        - Fixed dependencies and MakeMaker issues in the archive

0.9013 Wed Nov 18 18:26:31 PST 2009
        - Disable keep-alive in Standalone by default (kazuho, frew)
        - Fixed a bug in Standalone where 'timeout' property is ignored in the first request (kazuho)
        - Fixed a documentation bug in Middleware::Conditional (confound, scook)
       
0.9012 Tue Nov 17 13:38:38 PST 2009
        - Added Middleware::Conditional and enable_if DSL for dynamic builder (scook)

0.9011 Thu Nov 12 03:53:28 PST 2009
        - Added Apache1 support (Aaron Trevena)

0.9010 Wed Nov 11 23:18:37 PST 2009
        - You can now omit Plack::Middleware:: in Builder DSL's enable()

0.9009 Sat Nov  7 20:43:17 PST 2009
        - Fixed dependencies for tests

0.9008 Tue Oct 27 14:15:28 PDT 2009
        - Removed optional deps from Makefile.PL and moved them to Task::Plack (mst)
        - Make some middleware deps as required to make it simple, for now

0.9007 Sat Oct 24 17:41:33 PDT 2009
        - Fixed Server::CGI to really inline fuctions to avoid warnings
        - Fixed Middleware::AccessLog to let %{..}t strftime log format work (beppu)
        - Fixed a flush bug in gzip encoding in Middleware::Deflater
        - Fixed a bug in Middleware::AccessLog so POSIX strftime always works in English (fayland)
        - Added Middleware::ContentMD5 (Fayland)
        - Fixed plackup -r to actually reload the application code (robinsmidsrod)

0.9006 Fri Oct 23 01:21:13 PDT 2009
        - Support streaming interface in most middlewares
        - Added Middleware::Deflater (not recommended to use: see POD)
        - Document FCGI configuration in Server::FCGI pod (dhoss)
        - Inline Plack::Util functions in Server::CGI to speed up (mst)

0.9005 Wed Oct 21 20:53:19 PDT 2009
        - Switch to Filesys::Notify::Simple to watch directory to trim down deps
        - Made some dependencies optional since they're actually optional

0.9004 Tue Oct 20 22:57:48 PDT 2009
        - Fixed File::ShareDir dependency (mst)
        - App::File and Middleware::Static now auto follows symlinks (chiba)
        - Implemented plackup -r as Plack::Loader::Reloadable (nothingmuch)
        - Removed poll_cb from Writer middleware
        - Added plackup common command line options: -o for --host and -p for --port 

0.9003 Sun Oct 18 19:16:26 PDT 2009
        - Added POE to Plack::Loader autoload
        - Implemented callback style streaming in selected middlewares
        - Bump up HTTP::Parser::XS to fix memory leaks
        - Added Middleware::Chunked
        - Added Middleware::JSONP
        - Added twitter-stream.psgi example to do streaming server push
        - Fixed Middleware::StackTrace to DWIM in framework generated 500 errors
        - Fixed Restarter to do what doc says

0.9002 Wed Oct 14 11:26:28 PDT 2009
        - Added a workaround in Server::Apache2 when Location and SCRIPT_NAME don't match
        - Use Try::Tiny and parent for smaller memory footprint and better error handling

0.9001 Tue Oct 13 00:55:34 PDT 2009
        - Downgrade EUMM in inc/

0.9000 Tue Oct 13 00:14:01 PDT 2009
        - original version
