Starting with tag:
[TAG 0.2
Christian Neukirchen <chneukirchen@gmail.com>**20070516150700] [Credit Luc Heinrich
Christian Neukirchen <chneukirchen@gmail.com>**20070516173422] 
[Better running of lighttpd for testing
Christian Neukirchen <chneukirchen@gmail.com>**20070517120637] 
[Make Rack::Response possibly close the body
Christian Neukirchen <chneukirchen@gmail.com>**20070531163615
 Proposed by Jonathan Buch
] 
[Make Rack::File serve files with URL encoded filenames
Christoffer Sawicki <christoffer.sawicki@gmail.com>**20070614203451] 
[Add LiteSpeed handler
Christian Neukirchen <chneukirchen@gmail.com>**20070712090234
 Courtesy of Adrian Madrid <aemadrid@gmail.com>
] 
[pool.rb - local session storage hash pool  w/ tests
Scytrin dai Kinthra <scytrin@gmail.com>**20070811172831] 
[Mention PUT as allowed request method in the spec
Christian Neukirchen <chneukirchen@gmail.com>**20070912091554] 
[Fix Cookie dates accordingly to RFC 2109
Christian Neukirchen <chneukirchen@gmail.com>**20071009143528] 
[Make Rack::Builder#to_app nondestructive
Christian Neukirchen <chneukirchen@gmail.com>**20071115161032] 
[Fix warning
Christian Neukirchen <chneukirchen@gmail.com>**20071115161151] 
[Update AUTHORS and thanks
Christian Neukirchen <chneukirchen@gmail.com>**20071115162027] 
[Fix SCRIPT_NAME in nested URLMaps
Christian Neukirchen <chneukirchen@gmail.com>**20071115162136] 
[lib/rack/auth/openid.rb: openid login authenticator
Scytrin dai Kinthra <scytrin@gmail.com>**20070817070944] 
[lib/rack/handler/fastcgi.rb - :Port and :File options for opening sockets
Scytrin dai Kinthra <scytrin@gmail.com>**20070822041702] 
[Addition of credits, #for to allow app context change, and addition of a #key accessor
Scytrin dai Kinthra <scytrin@gmail.com>**20070828231413] 
[addition of Last-Modified http header to Rack::File
Scytrin dai Kinthra <scytrin@gmail.com>**20070830132821] 
[addition of js -> text/javascript to file types
Scytrin dai Kinthra <scytrin@gmail.com>**20070830133007] 
[Errors now method calls rather than constants.
Scytrin dai Kinthra <scytrin@gmail.com>**20071118044229] 
[Addition of Rack::Utils::Context
Scytrin dai Kinthra <scytrin@gmail.com>**20071118044507
 Allows the use of a rack app in different contexts using a proc.
] 
[Cleanup of code, errant error call
Scytrin dai Kinthra <scytrin@gmail.com>**20071118045037] 
[Addition of request to provide a default return url
Scytrin dai Kinthra <scytrin@gmail.com>**20071118045320] 
[Addition of post-run block for extensibility
Scytrin dai Kinthra <scytrin@gmail.com>**20071118045433] 
[Inclusion of the openid result for the post-run block
Scytrin dai Kinthra <scytrin@gmail.com>**20071118045756] 
[session/pool.rb - Updated to use Rack::Utils::Context
Scytrin dai Kinthra <scytrin@gmail.com>**20071118050812] 
[lib/rack.rb - Addition of new Session::Pool and Memcache
Scytrin dai Kinthra <scytrin@gmail.com>**20071118074510] 
[lib/rack.rb - Addition of Auth::OpenID
Scytrin dai Kinthra <scytrin@gmail.com>**20071118074650] 
[lib/rack/auth/openid.rb - removal of rubygems require
Scytrin dai Kinthra <scytrin@gmail.com>**20071118184539] 
[Minor tweaks in blink's code
Christian Neukirchen <chneukirchen@gmail.com>**20071118192053] 
[Reformat and representation of mapping selection routine.
Scytrin dai Kinthra <scytrin@gmail.com>**20070828230207] 
[lib/rack/urlmap.rb - Restyle of host matching from 'and' and 'or' to && and ||
Scytrin dai Kinthra <scytrin@gmail.com>**20071118191611] 
[Small fix for the new FastCGI options
Christian Neukirchen <chneukirchen@gmail.com>**20071118195145] 
[lib/rack/auth/openid.rb - removal of block functionality
Scytrin dai Kinthra <scytrin@gmail.com>**20071118195435
 The block argumentn functionality was causing a few complications and
 was removed in favour of storing the openid status object in the
 environment. A wrapping proc oor rack app can now achieve the same
 functionality as the block could, in a cleaner manner.
] 
[lib/rack/auth/openid.rb - updates to reflect rack styling
Scytrin dai Kinthra <scytrin@gmail.com>**20071118200329] 
[lib/rack/auth/openid.rb - typo!
Scytrin dai Kinthra <scytrin@gmail.com>**20071118200908] 
[Make Rack::Lint actually check what the spec says.
Christian Neukirchen <chneukirchen@gmail.com>**20071209164837] 
[Remove uses of base64 for Ruby 1.9 support
Christian Neukirchen <chneukirchen@gmail.com>**20071231183408] 
[Remove Rack::Adapter::Rails autoload
Christian Neukirchen <chneukirchen@gmail.com>**20080110152954] 
[Conform to RFC 2109 regarding multiple values for same cookie
Aman Gupta <aman@ramaze.net>**20080121022706] 
[Fix syntax for toggle() in ShowExceptions
m.fellinger@gamil.com**20080122042354] 
[Add SCGI handler, by Jeremy Evans
Christian Neukirchen <chneukirchen@gmail.com>**20080125083628] 
[HTTP status 201 can contain a body
Christian Neukirchen <chneukirchen@gmail.com>**20080203170059] 
[Update lint to not check for 201 status headers
Christian Neukirchen <chneukirchen@gmail.com>**20080203171400] 
[Don't create invalid header lines when only deleting a cookie
Christian Neukirchen <chneukirchen@gmail.com>**20080218211807
 Reported by Andreas Zehnder
] 
[Let Rack::Builder#use accept blocks
Christian Neukirchen <chneukirchen@gmail.com>**20080224175153
 Contributed by Corey Jewett.
] 
[Fix cookie parsing
Christian Neukirchen <chneukirchen@gmail.com>**20080224184600] 
[Fix test cases that used 201 as a status where Content-Type is not allowed
Christian Neukirchen <chneukirchen@gmail.com>**20080224184815] 
[Don't use autoloads in the test suite
Christian Neukirchen <chneukirchen@gmail.com>**20080224193706] 
[Update README and docs
Christian Neukirchen <chneukirchen@gmail.com>**20080226122832] 
[TAG 0.3
Christian Neukirchen <chneukirchen@gmail.com>**20080226122947] 
[Changed urlmap.rb's uri check to successive conditionals rather than one big one
Scytrin dai Kinthra <scytrin@gmail.com>**20080310151814] 
[Addition of #add, #<<, and #include? to Cascade, allowing iterative addition of apps
Scytrin dai Kinthra <scytrin@gmail.com>**20080311063124] 
[Alteration of Mongrel.run for Mongrel based routing
Scytrin dai Kinthra <scytrin@gmail.com>**20080311075137
 
 With the passing of the :map option Mongrel.run will handle the passing of a
 Hash or URLMap rather than a standard rack app. The mapping provided by the
 passed object will be used to register uris with the mongrel instance.
 
 Hashes should only have absolute paths for keys and apps for values.
 
 URLMaps will be filtered if the :Host options is specified, or the mapping's
 host is set.
] 
[pool.rb - removal of blocks for #context
Scytrin dai Kinthra <scytrin@gmail.com>**20080311111155
 Before you could pass a block to Pool#context that would be passed the env
 before performing a call on the passed app. This has been removed in deference
 to the practice setting up the block as the passed app, which should
 subsequently call the intended app.
 Seems more in accordance with Rack's prescribed behaviour.
 
] 
[pool.rb - moved inline hash to DEFAULT_OPTIONS
Scytrin dai Kinthra <scytrin@gmail.com>**20080311112557] 
[pool.rb - exported generation of a new session id
Scytrin dai Kinthra <scytrin@gmail.com>**20080311112941] 
[pool.rb - altered session metadata storage and session commit point
Scytrin dai Kinthra <scytrin@gmail.com>**20080311115216] 
[pool.rb - exported session to pool commit
Scytrin dai Kinthra <scytrin@gmail.com>**20080311115633] 
[pool.rb - exported assignment of session id cookie
Scytrin dai Kinthra <scytrin@gmail.com>**20080311115920] 
[pool.rb - cleanup and portability revisions
Scytrin dai Kinthra <scytrin@gmail.com>**20080311120229] 
[Fix that Request assumes form-data even when Content-Type says otherwise
r@tomayko.com**20080315135144
 
 Fixes cases where accessing Request#params causes the body to be read and
 processed as form-data improperly. For example, consider the following
 request:
 
     PUT /foo/bar?baz=bizzle HTTP/1.1
     Content-Type: text/plain
 
     This is not form-data.
 
 When Rack::Request gets ahold of the corresponding environment, and the
 application attempts to access the "baz" query string param, the body is read
 and interpreted as form-data. If the body is an IOish object, this causes the
 offset to be forwarded to the end of file.
 
 The patch prevents the Request#POST method from going into the body unless the
 media type is application/x-www-form-urlencoded, multipart/form-data, or not
 specified.
 
 While here, added a few unrelated helper methods to Request that I've found
 particularly useful in Rack apps: #content_length, #head?, and #content_charset.
 
 Tests and doc included for all changes.
] 
[Require time in rack/file.rb
Christian Neukirchen <chneukirchen@gmail.com>**20080317105627
 Reported by Stephen Bannasch.
] 
[pool.rb - faster session id generation from apeiros
Scytrin dai Kinthra <scytrin@gmail.com>**20080314235733] 
[pool.rb - moved cookie building back to #commit_session
Scytrin dai Kinthra <scytrin@gmail.com>**20080316045910] 
[pool.rb - addition of thread safety
Scytrin dai Kinthra <scytrin@gmail.com>**20080316082126] 
[pool.rb - cleanup and THANKS
Scytrin dai Kinthra <scytrin@gmail.com>**20080316082307] 
[pool.rb - saner metadata storage
Scytrin dai Kinthra <scytrin@gmail.com>**20080316082616] 
[pool.rb - setup of expiry not using defined?, from apeiros
Scytrin dai Kinthra <scytrin@gmail.com>**20080316083308] 
[pool.rb - documentation revision, addition of @mutex accessor
Scytrin dai Kinthra <scytrin@gmail.com>**20080316090152] 
[pool.rb - documentation update and collision warnings
Scytrin dai Kinthra <scytrin@gmail.com>**20080316115510] 
[utils.rb - Utils::Context - addition of introspection methods
Scytrin dai Kinthra <scytrin@gmail.com>**20080316132351] 
[pool.rb - addition of session freshness check and upkeep routines
Scytrin dai Kinthra <scytrin@gmail.com>**20080316143019] 
[updated and addition to tests for pool.rb for expiration and thread safety
Scytrin dai Kinthra <scytrin@gmail.com>**20080316143145
 Running the freshness tests sleeps for 4 seconds to allow a session's
 expiration point to pass.
] 
[pool.rb, id.rb - creation of abstract id based session handler
Scytrin dai Kinthra <scytrin@gmail.com>**20080317091232
 Allows simpler implementation of various storage based sessioning.
 More stringent type checks in id.rb
] 
[pool.rb - explicit require for thread stdlib
Scytrin dai Kinthra <scytrin@gmail.com>**20080317111945] 
[urlmap.rb - alteration of path selection routines, with updated tests
Scytrin dai Kinthra <scytrin@gmail.com>**20080317152607
 Previous implementation would append an extra '/' if PATH_NAME would otherwise
 be empty.
] 
[Don't lose empty headers in HeaderHash
Christian Neukirchen <chneukirchen@gmail.com>**20080317155100] 
[URLMap tweaks and more tests
Christian Neukirchen <chneukirchen@gmail.com>**20080317155122] 
[pool.rb - cleanup of session merging and threading collision checks
Scytrin dai Kinthra <scytrin@gmail.com>**20080317155913] 
[urlmap.rb - update test in allowance of non-destructive HeaderHash
Scytrin dai Kinthra <scytrin@gmail.com>**20080317160353] 
[Changes to get lighttpd setup and running when rake fulltest is run; also added some doc to the readme about running tests
stephen.bannasch@gmail.com**20080317232818] 
[Small README tweak
Christian Neukirchen <chneukirchen@gmail.com>**20080318105455] 
[Make fulltest chmod the executables
Christian Neukirchen <chneukirchen@gmail.com>**20080318105534] 
[Update Rakefile
Christian Neukirchen <chneukirchen@gmail.com>**20080318105724] 
[Update History
Christian Neukirchen <chneukirchen@gmail.com>**20080318105948] 
[openid.rb - documentation and check on using ruby-openid 1.x.x
Scytrin dai Kinthra <scytrin@gmail.com>**20080318040422] 
[Rack::Reloader is not loaded in rackup development mode anymore
Christian Neukirchen <chneukirchen@gmail.com>**20080320160636] 
[memcache.rb - memcached based session management
Scytrin dai Kinthra <scytrin@gmail.com>**20080319114332] 
[Run Rack::Session::Memcache tests in fulltest only
Christian Neukirchen <chneukirchen@gmail.com>**20080320161154] 
[abstract/id.rb - Added check on correctness of response.
Scytrin dai Kinthra <scytrin@gmail.com>**20080325111509] 
[memcache.rb - Fixed immortal key bug, updated tests
Scytrin dai Kinthra <scytrin@gmail.com>**20080329043246
 Old multithread behaviour was to merge sessions, which would never delete
 keys, even if deleted in the current session.
] 
[Bug fix for Tempfile POST bodies under Ruby 1.8
Adam Harper <adam@harper.nu>**20080327110953
 
 The Tempfile class in Ruby 1.8 doesn't implement the == method correctly.
 This causes Rack::Requests to re-parse the input (when the input is a
 Tempfile) each time the POST method is called, this in turn raises an
 EOFError because the input has already been read.
 
 One example of when this happens is when handling large POST requests
 (e.g. file uploads) under Mongrel.
 
 This issue only effects Ruby 1.8 (tested against 1.8.6).  Ruby 1.9 does
 not suffer from this issue (presumably due to changes in the Delegate
 implementation.)
] 
[handle EOFError exception in Request#params
ryan@wonko.com**20080410202632] 
[Open multipart tempfiles in binary mode
Christian Neukirchen <chneukirchen@gmail.com>**20080418101254] 
[spec_rack_utils.rb - Added another test for parse_query
Christoffer Sawicki <christoffer.sawicki@gmail.com>**20080502210443] 
[utils.rb - Cleaned up parse_query
Christoffer Sawicki <christoffer.sawicki@gmail.com>**20080502205339] 
[utils.rb, spec_rack_utils.rb - Added build_query, the inverse of parse_query
Christoffer Sawicki <christoffer.sawicki@gmail.com>**20080502210537] 
[Merge josh/daemonize
Christian Neukirchen <chneukirchen@gmail.com>**20080510151027] 
[Merge 'josh/rack-mirror'
Christian Neukirchen <chneukirchen@gmail.com>**20080518150512] 
[Merge walf443/rack-mirror
Christian Neukirchen <chneukirchen@gmail.com>**20080524122210] 
[Allow handlers to register themselves with Rack::Handler.
Christian Neukirchen <chneukirchen@gmail.com>**20080524155410] 
[Add Rack.release for the version of the release.
Christian Neukirchen <chneukirchen@gmail.com>**20080525143240] 
[Convert Rakefile to use Git
Christian Neukirchen <chneukirchen@gmail.com>**20080525143330] 
[utils.rb - addition of recontexting from a Context
Scytrin dai Kinthra <scytrin@gmail.com>**20080329195858] 
[directory.rb - serves html index for nonfile paths
Scytrin dai Kinthra <scytrin@gmail.com>**20080425235542
   Rack::File similar processing of paths. On directory lookups it will serve
 a html index of it's contents. Entries begining with '.' are not presented.
   On lookups that result in a file, it will pass an unmodified env to the
 provided app. If an app is not provided, a Rack::File with the same root is
 used.
] 
[session/abstract/id.rb - removal of gratuitous debug output
Scytrin dai Kinthra <scytrin@gmail.com>**20080426213715]