The list of changes in this release is long, and should serve as a warning to me to
make releases more often, as it cuts down on typing. Thanks to everyone who made
PRs, checked PRs, merged PRs, and... renewed PRs. Special thanks to Andrew Konchin
(@andrykonchin) who is responsible for over half the changes in this monster release,
and who has come on board as a maintainer.
This release removes the Rack::Runtime and Rack::Config middleware.
This may seem like a foolhardy thing to do in a minor release, but rack
itself ships with functionally identical versions. Compatibility
has been maintained by having require "rack/contrib/<thing>" still work, but
that should be changed to require "rack/<thing>" instead.
-
A
#closemethod was added to the body that is returned byRack::Signals. -
A stub
CHANGELOG.md, pointing to the canonical source of release notes, has
been added. -
Thread safety issues in
Rack::Access,Rack::CommonCookies, andRack::Deflect
have been fixed. Additionally, the need for a thread-safe external cache object in
Rack::LazyConditionalGethas been documented. -
A SPEC violation in
Rack::CSSHTTPRequesthas been fixed. -
Case-sensitive header problems in a whole bunch of middlewares have been fixed.
-
Rack::JSONBodyParsernow only rescuesJSON::ParserErrorif it is raised within
the middleware's own code. Exceptions raised by the application itself will now
be left alone to be handled elsewhere. -
All string literals are now frozen.
-
Residual ye olde Ruby compatibility checks were removed from
Rack::Backstage,
Rack::MailExceptionsandRack::NestedParams. -
The length calculation in
Rack::JSONPhas been made simpler.