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.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 PerlIO::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 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