rack/rack (rack)
### [`v3.1.3`](https://togithub.com/rack/rack/compare/v3.1.2...v3.1.3)
[Compare Source](https://togithub.com/rack/rack/compare/v3.1.2...v3.1.3)
### [`v3.1.2`](https://togithub.com/rack/rack/blob/HEAD/CHANGELOG.md#312---2024-06-11)
[Compare Source](https://togithub.com/rack/rack/compare/v3.1.1...v3.1.2)
- `Rack::Response` will take in to consideration chunked encoding responses ([#2204](https://togithub.com/rack/rack/pull/2204), \[[@tenderlove](https://togithub.com/tenderlove)])
### [`v3.1.1`](https://togithub.com/rack/rack/blob/HEAD/CHANGELOG.md#311---2024-06-11)
[Compare Source](https://togithub.com/rack/rack/compare/v3.1.0...v3.1.1)
- Oops! I shouldn't have shipped that
### [`v3.1.0`](https://togithub.com/rack/rack/blob/HEAD/CHANGELOG.md#310---2024-06-11)
Rack v3.1 is primarily a maintenance release that removes features deprecated in Rack v3.0. Alongside these removals, there are several improvements to the Rack SPEC, mainly focused on enhancing input and output handling. These changes aim to make Rack more efficient and align better with the requirements of server implementations and relevant HTTP specifications.
##### SPEC Changes
- `rack.input` is now optional. ([#1997](https://togithub.com/rack/rack/pull/1997), [#2018](https://togithub.com/rack/rack/pull/2018), \[[@ioquatix](https://togithub.com/ioquatix)])
- `PATH_INFO` is now validated according to the HTTP/1.1 specification. ([#2117](https://togithub.com/rack/rack/pull/2117), [#2181](https://togithub.com/rack/rack/pull/2181), \[[@ioquatix](https://togithub.com/ioquatix)])
- `OPTIONS *` is now accepted. ([#2114](https://togithub.com/rack/rack/pull/2114), [@doriantaylor](https://togithub.com/doriantaylor))
- Introduce optional `rack.protocol` request and response header for handling connection upgrades. ([#1954](https://togithub.com/rack/rack/pull/1954), \[[@ioquatix](https://togithub.com/ioquatix)])
##### Added
- Introduce `Rack::Multipart::MissingInputError` for improved handling of missing input in `#parse_multipart`. ([#2018](https://togithub.com/rack/rack/pull/2018), \[[@ioquatix](https://togithub.com/ioquatix)])
- Introduce `module Rack::BadRequest` which is included in multipart and query parser errors. ([#2019](https://togithub.com/rack/rack/pull/2019), \[[@ioquatix](https://togithub.com/ioquatix)])
- Add `.mjs` MIME type ([#2057](https://togithub.com/rack/rack/pull/2057), [@axilleas](https://togithub.com/axilleas))
- `set_cookie_header` utility now supports the `partitioned` cookie attribute. This is required by Chrome in some embedded contexts. ([#2131](https://togithub.com/rack/rack/pull/2131), [@flavio-b](https://togithub.com/flavio-b))
- Introduce `rack.early_hints` for sending `103 Early Hints` informational responses. ([#1831](https://togithub.com/rack/rack/pull/1831), [@casperisfine](https://togithub.com/casperisfine), \[[@jeremyevans](https://togithub.com/jeremyevans)])
##### Changed
- MIME type for JavaScript files (`.js`) changed from `application/javascript` to `text/javascript` ([`1bd0f15`](https://togithub.com/rack/rack/commit/1bd0f1597d8f4a90d47115f3e156a8ce7870c9c8), \[[@ioquatix](https://togithub.com/ioquatix)])
- Update MIME types associated to `.ttf`, `.woff`, `.woff2` and `.otf` extensions to use mondern `font/*` types. ([#2065](https://togithub.com/rack/rack/pull/2065), \[[@davidstosik](https://togithub.com/davidstosik)])
- `Rack::Utils.escape_html` is now delegated to `CGI.escapeHTML`. `'` is escaped to `#39;` instead of `#x27;`. (decimal vs hexadecimal) ([#2099](https://togithub.com/rack/rack/pull/2099), [@JunichiIto](https://togithub.com/JunichiIto))
- Clarify use of `@buffered` and only update `content-length` when `Rack::Response#finish` is invoked. ([#2149](https://togithub.com/rack/rack/pull/2149), \[[@ioquatix](https://togithub.com/ioquatix)])
##### Deprecated
- Deprecate automatic cache invalidation in `Request#{GET,POST}` ([#2073](https://togithub.com/rack/rack/pull/2073), \[[@jeremyevans](https://togithub.com/jeremyevans)])
- Only cookie keys that are not valid according to the HTTP specifications are escaped. We are planning to deprecate this behaviour, so now a deprecation message will be emitted in this case. In the future, invalid cookie keys may not be accepted. ([#2191](https://togithub.com/rack/rack/pull/2191), \[[@ioquatix](https://togithub.com/ioquatix)])
- `Rack::Logger` is deprecated. ([#2197](https://togithub.com/rack/rack/pull/2197), \[[@ioquatix](https://togithub.com/ioquatix)])
- Add fallback lookup and deprecation warning for obsolete status symbols. ([#2137](https://togithub.com/rack/rack/pull/2137), [@wtn](https://togithub.com/wtn))
##### Removed
- Remove deprecated `Rack::Auth::Digest` with no replacement. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)])
- Remove deprecated `Rack::Cascade::NotFound` with no replacement. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)])
- Remove deprecated `Rack::Chunked` with no replacement. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)])
- Remove deprecated `Rack::File`, use `Rack::Files` instead. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)])
- Remove deprecated `Rack::QueryParser` `key_space_limit` parameter with no replacement. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)])
- Remove deprecated `Rack::Response#header`, use `Rack::Response#headers` instead. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)])
- Remove deprecated cookie methods from `Rack::Utils`: `add_cookie_to_header`, `make_delete_cookie_header`, `add_remove_cookie_to_header`. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)])
- Remove deprecated `Rack::Utils::HeaderHash`. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)])
- Remove deprecated `Rack::VERSION`, `Rack::VERSION_STRING`, `Rack.version`, use `Rack.release` instead. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)])
- Remove non-standard status codes 306, 509, & 510 and update descriptions for 413, 422, & 451. ([#2137](https://togithub.com/rack/rack/pull/2137), [@wtn](https://togithub.com/wtn))
- Remove any dependency on `transfer-encoding: chunked`. ([#2195](https://togithub.com/rack/rack/pull/2195), \[[@ioquatix](https://togithub.com/ioquatix)])
##### Fixed
- In `Rack::Files`, ignore the `Range` header if served file is 0 bytes. ([#2159](https://togithub.com/rack/rack/pull/2159), \[[@zarqman](https://togithub.com/zarqman)])
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
'3.0.11'
->'3.1.3'
Release Notes
rack/rack (rack)
### [`v3.1.3`](https://togithub.com/rack/rack/compare/v3.1.2...v3.1.3) [Compare Source](https://togithub.com/rack/rack/compare/v3.1.2...v3.1.3) ### [`v3.1.2`](https://togithub.com/rack/rack/blob/HEAD/CHANGELOG.md#312---2024-06-11) [Compare Source](https://togithub.com/rack/rack/compare/v3.1.1...v3.1.2) - `Rack::Response` will take in to consideration chunked encoding responses ([#2204](https://togithub.com/rack/rack/pull/2204), \[[@tenderlove](https://togithub.com/tenderlove)]) ### [`v3.1.1`](https://togithub.com/rack/rack/blob/HEAD/CHANGELOG.md#311---2024-06-11) [Compare Source](https://togithub.com/rack/rack/compare/v3.1.0...v3.1.1) - Oops! I shouldn't have shipped that ### [`v3.1.0`](https://togithub.com/rack/rack/blob/HEAD/CHANGELOG.md#310---2024-06-11) Rack v3.1 is primarily a maintenance release that removes features deprecated in Rack v3.0. Alongside these removals, there are several improvements to the Rack SPEC, mainly focused on enhancing input and output handling. These changes aim to make Rack more efficient and align better with the requirements of server implementations and relevant HTTP specifications. ##### SPEC Changes - `rack.input` is now optional. ([#1997](https://togithub.com/rack/rack/pull/1997), [#2018](https://togithub.com/rack/rack/pull/2018), \[[@ioquatix](https://togithub.com/ioquatix)]) - `PATH_INFO` is now validated according to the HTTP/1.1 specification. ([#2117](https://togithub.com/rack/rack/pull/2117), [#2181](https://togithub.com/rack/rack/pull/2181), \[[@ioquatix](https://togithub.com/ioquatix)]) - `OPTIONS *` is now accepted. ([#2114](https://togithub.com/rack/rack/pull/2114), [@doriantaylor](https://togithub.com/doriantaylor)) - Introduce optional `rack.protocol` request and response header for handling connection upgrades. ([#1954](https://togithub.com/rack/rack/pull/1954), \[[@ioquatix](https://togithub.com/ioquatix)]) ##### Added - Introduce `Rack::Multipart::MissingInputError` for improved handling of missing input in `#parse_multipart`. ([#2018](https://togithub.com/rack/rack/pull/2018), \[[@ioquatix](https://togithub.com/ioquatix)]) - Introduce `module Rack::BadRequest` which is included in multipart and query parser errors. ([#2019](https://togithub.com/rack/rack/pull/2019), \[[@ioquatix](https://togithub.com/ioquatix)]) - Add `.mjs` MIME type ([#2057](https://togithub.com/rack/rack/pull/2057), [@axilleas](https://togithub.com/axilleas)) - `set_cookie_header` utility now supports the `partitioned` cookie attribute. This is required by Chrome in some embedded contexts. ([#2131](https://togithub.com/rack/rack/pull/2131), [@flavio-b](https://togithub.com/flavio-b)) - Introduce `rack.early_hints` for sending `103 Early Hints` informational responses. ([#1831](https://togithub.com/rack/rack/pull/1831), [@casperisfine](https://togithub.com/casperisfine), \[[@jeremyevans](https://togithub.com/jeremyevans)]) ##### Changed - MIME type for JavaScript files (`.js`) changed from `application/javascript` to `text/javascript` ([`1bd0f15`](https://togithub.com/rack/rack/commit/1bd0f1597d8f4a90d47115f3e156a8ce7870c9c8), \[[@ioquatix](https://togithub.com/ioquatix)]) - Update MIME types associated to `.ttf`, `.woff`, `.woff2` and `.otf` extensions to use mondern `font/*` types. ([#2065](https://togithub.com/rack/rack/pull/2065), \[[@davidstosik](https://togithub.com/davidstosik)]) - `Rack::Utils.escape_html` is now delegated to `CGI.escapeHTML`. `'` is escaped to `#39;` instead of `#x27;`. (decimal vs hexadecimal) ([#2099](https://togithub.com/rack/rack/pull/2099), [@JunichiIto](https://togithub.com/JunichiIto)) - Clarify use of `@buffered` and only update `content-length` when `Rack::Response#finish` is invoked. ([#2149](https://togithub.com/rack/rack/pull/2149), \[[@ioquatix](https://togithub.com/ioquatix)]) ##### Deprecated - Deprecate automatic cache invalidation in `Request#{GET,POST}` ([#2073](https://togithub.com/rack/rack/pull/2073), \[[@jeremyevans](https://togithub.com/jeremyevans)]) - Only cookie keys that are not valid according to the HTTP specifications are escaped. We are planning to deprecate this behaviour, so now a deprecation message will be emitted in this case. In the future, invalid cookie keys may not be accepted. ([#2191](https://togithub.com/rack/rack/pull/2191), \[[@ioquatix](https://togithub.com/ioquatix)]) - `Rack::Logger` is deprecated. ([#2197](https://togithub.com/rack/rack/pull/2197), \[[@ioquatix](https://togithub.com/ioquatix)]) - Add fallback lookup and deprecation warning for obsolete status symbols. ([#2137](https://togithub.com/rack/rack/pull/2137), [@wtn](https://togithub.com/wtn)) ##### Removed - Remove deprecated `Rack::Auth::Digest` with no replacement. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)]) - Remove deprecated `Rack::Cascade::NotFound` with no replacement. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)]) - Remove deprecated `Rack::Chunked` with no replacement. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)]) - Remove deprecated `Rack::File`, use `Rack::Files` instead. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)]) - Remove deprecated `Rack::QueryParser` `key_space_limit` parameter with no replacement. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)]) - Remove deprecated `Rack::Response#header`, use `Rack::Response#headers` instead. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)]) - Remove deprecated cookie methods from `Rack::Utils`: `add_cookie_to_header`, `make_delete_cookie_header`, `add_remove_cookie_to_header`. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)]) - Remove deprecated `Rack::Utils::HeaderHash`. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)]) - Remove deprecated `Rack::VERSION`, `Rack::VERSION_STRING`, `Rack.version`, use `Rack.release` instead. ([#1966](https://togithub.com/rack/rack/pull/1966), \[[@ioquatix](https://togithub.com/ioquatix)]) - Remove non-standard status codes 306, 509, & 510 and update descriptions for 413, 422, & 451. ([#2137](https://togithub.com/rack/rack/pull/2137), [@wtn](https://togithub.com/wtn)) - Remove any dependency on `transfer-encoding: chunked`. ([#2195](https://togithub.com/rack/rack/pull/2195), \[[@ioquatix](https://togithub.com/ioquatix)]) ##### Fixed - In `Rack::Files`, ignore the `Range` header if served file is 0 bytes. ([#2159](https://togithub.com/rack/rack/pull/2159), \[[@zarqman](https://togithub.com/zarqman)])Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.