Rack v2.1.0 Release Notes

Release Date: 2020-01-10 // over 4 years ago
  • ➕ Added

    • ➕ Add support for SameSite=None cookie value. (@hennikul)
    • ➕ Add trailer headers. (@eileencodes)
    • ➕ Add MIME Types for video streaming. (@styd)
    • ➕ Add MIME Type for WASM. (@buildrtech)
    • ➕ Add Early Hints(103) to status codes. (@egtra)
    • ➕ Add Too Early(425) to status codes. ([@y-yagi]((https://github.com/y-yagi)))
    • ➕ Add Bandwidth Limit Exceeded(509) to status codes. (@CJKinni)
    • ➕ Add method for custom ip_filter. (@svcastaneda)
    • ➕ Add boot-time profiling capabilities to rackup. (@tenderlove)
    • ➕ Add multi mapping support for X-Accel-Mappings header. (@yoshuki)
    • ➕ Add sync: false option to Rack::Deflater. (Eric Wong)
    • ➕ Add Builder#freeze_app to freeze application and all middleware instances. (@jeremyevans)
    • ➕ Add API to extract cookies from Rack::MockResponse. (@petercline)

    🔄 Changed

    • Don't propagate nil values from middleware. (@ioquatix)
    • Lazily initialize the response body and only buffer it if required. (@ioquatix)
    • 🛠 Fix deflater zlib buffer errors on empty body part. (@felixbuenemann)
    • Set X-Accel-Redirect to percent-encoded path. (@diskkid)
    • ✂ Remove unnecessary buffer growing when parsing multipart. (@tainoe)
    • Expand the root path in Rack::Static upon initialization. (@rosenfeld)
    • 👉 Make ShowExceptions work with binary data. (@axyjo)
    • 📜 Use buffer string when parsing multipart requests. (@janko-m)
    • 👌 Support optional UTF-8 Byte Order Mark (BOM) in config.ru. (@mikegee)
    • 🖐 Handle X-Forwarded-For with optional port. (@dpritchett)
    • 👉 Use Time#httpdate format for Expires, as proposed by RFC 7231. (@nanaya)
    • 👉 Make Utils.status_code raise an error when the status symbol is invalid instead of 500. (@adambutler)
    • Rename Request::SCHEME_WHITELIST to Request::ALLOWED_SCHEMES.
    • 📜 Make Multipart::Parser.get_filename accept files with + in their name. (@lucaskanashiro)
    • ➕ Add Falcon to the default handler fallbacks. (@ioquatix)
    • Update codebase to avoid string mutations in preparation for frozen_string_literals. (@pat)
    • 🔄 Change MockRequest#env_for to rely on the input optionally responding to #size instead of #length. (@janko)
    • 🗄 Rename Rack::File -> Rack::Files and add deprecation notice. (@postmodern).
    • Prefer Base64 “strict encoding” for Base64 cookies. (@ioquatix)

    ✂ Removed

    • 💥 BREAKING CHANGE: Remove to_ary from Response (@tenderlove)
    • 🗄 Deprecate Rack::Session::Memcache in favor of Rack::Session::Dalli from dalli gem (@fatkodima)

    🛠 Fixed

    📚 Documentation

    • 📚 Update broken example in Session::Abstract::ID documentation. (tonytonyjan)
    • ➕ Add Padrino to the list of frameworks implementing Rack. (@wikimatze)
    • ✂ Remove Mongrel from the suggested server options in the help output. (@tricknotes)
    • Replace HISTORY.md and NEWS.md with CHANGELOG.md. (@twitnithegirl)
    • ⚡️ CHANGELOG updates. (@drenmi, @p8)