Skip to content

Commit 760823f

Browse files
committed
Add CHANGELOG reference links
Convert bare (#NNN) references to linked ([#NNN]) format throughout the CHANGELOG.
1 parent d6c717e commit 760823f

1 file changed

Lines changed: 51 additions & 21 deletions

File tree

CHANGELOG.md

Lines changed: 51 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -77,49 +77,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7777
- `HTTP.base_uri` for setting a base URI that resolves relative request paths
7878
per RFC 3986. Supports chaining (`HTTP.base_uri("https://api.example.com/v1")
7979
.get("users")`), and integrates with `persistent` connections by deriving the
80-
host when omitted (#519, #512, #493)
80+
host when omitted ([#519], [#512], [#493])
8181
- `Request::Body#loggable?` and `Response::Body#loggable?` predicates, and a
8282
`binary_formatter` option for the logging feature. Binary bodies
8383
(IO/Enumerable request sources, binary-encoded request strings, and
8484
binary-encoded responses) are now formatted instead of dumped raw,
8585
preventing unreadable log output when transferring files like images or
8686
audio. Available formatters: `:stats` (default, logs byte count),
8787
`:base64` (logs base64-encoded content), or a custom `Proc`. Invalid
88-
formatter values raise `ArgumentError` (#784)
88+
formatter values raise `ArgumentError` ([#784])
8989
- `Feature#on_request` and `Feature#around_request` lifecycle hooks, called
9090
before/around each request attempt (including retries), for per-attempt side
91-
effects like instrumentation spans and circuit breakers (#826)
91+
effects like instrumentation spans and circuit breakers ([#826])
9292
- Pattern matching support (`deconstruct_keys`) for Response, Response::Status,
93-
Headers, ContentType, and URI (#642)
93+
Headers, ContentType, and URI ([#642])
9494
- Combined global and per-operation timeouts: global and per-operation timeouts
9595
are no longer mutually exclusive. Use
9696
`HTTP.timeout(global: 60, read: 30, write: 30, connect: 5)` to set both a
97-
global request timeout and individual operation limits (#773)
97+
global request timeout and individual operation limits ([#773])
9898

9999
### Fixed
100100

101101
- `HTTP::URI.form_encode` now encodes newlines as `%0A` instead of
102-
`%0D%0A` (#449)
102+
`%0D%0A` ([#449])
103103
- Thread-safety: `Headers::Normalizer` cache is now per-thread via
104104
`Thread.current`, eliminating a potential race condition when multiple
105105
threads share a normalizer instance
106106
- Instrumentation feature now correctly starts a new span for each retry
107107
attempt, fixing `NoMethodError` with `ActiveSupport::Notifications` when
108-
using `.retriable` with the instrumentation feature (#826)
108+
using `.retriable` with the instrumentation feature ([#826])
109109
- Raise `HTTP::URI::InvalidError` for malformed or schemeless URIs and
110110
`ArgumentError` for nil or empty URIs, instead of confusing
111-
`UnsupportedSchemeError` or `Addressable::URI::InvalidURIError` (#565)
111+
`UnsupportedSchemeError` or `Addressable::URI::InvalidURIError` ([#565])
112112
- Strip `Authorization` and `Cookie` headers when following redirects to a
113113
different origin (scheme, host, or port) to prevent credential leakage
114-
(#516, #770)
114+
([#516], [#770])
115115
- AutoInflate now preserves the response charset encoding instead of
116-
defaulting to `Encoding::BINARY` (#535)
116+
defaulting to `Encoding::BINARY` ([#535])
117117
- `LocalJumpError` when using instrumentation with instrumenters that
118118
unconditionally yield in `#instrument` (e.g., `ActiveSupport::Notifications`)
119-
(#673)
119+
([#673])
120120
- Logging feature no longer eagerly consumes the response body at debug level;
121121
body chunks are now logged as they are streamed, preserving
122-
`response.body.each` (#785)
122+
`response.body.each` ([#785])
123123

124124
### Removed
125125

@@ -133,7 +133,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
133133
and excluding user info from the origin string
134134
- `HTTP::URI#request_uri` is no longer delegated to `Addressable::URI`
135135
- `HTTP::URI#omit` is no longer delegated to `Addressable::URI` and now
136-
returns `HTTP::URI` instead of `Addressable::URI` (#491)
136+
returns `HTTP::URI` instead of `Addressable::URI` ([#491])
137137
- `HTTP::URI#query_values` and `HTTP::URI#query_values=` delegations to
138138
`Addressable::URI`. Query parameter merging now uses stdlib
139139
`URI.decode_www_form`/`URI.encode_www_form`
@@ -142,7 +142,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
142142
normalizer now inlines these operations directly
143143
- `HTTP::URI#join` is no longer delegated to `Addressable::URI` and now
144144
returns `HTTP::URI` instead of `Addressable::URI`. Uses stdlib `URI.join`
145-
with automatic percent-encoding of non-ASCII characters (#491)
145+
with automatic percent-encoding of non-ASCII characters ([#491])
146146
- `HTTP::URI.form_encode` no longer delegates to `Addressable::URI`. Uses
147147
stdlib `URI.encode_www_form` instead
148148

@@ -168,19 +168,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
168168
`HTTP::Options` into `HTTP::Client#perform`, eliminating the need for
169169
separate `Retriable::Client` and `Retriable::Session` classes
170170
- Improved error message when request body size cannot be determined to suggest
171-
setting `Content-Length` explicitly or using chunked `Transfer-Encoding` (#560)
171+
setting `Content-Length` explicitly or using chunked `Transfer-Encoding` ([#560])
172172
- **BREAKING** `Connection#readpartial` now raises `EOFError` instead of
173173
returning `nil` at end-of-stream, and supports an `outbuf` parameter,
174174
conforming to the `IO#readpartial` API. `Body#readpartial` and
175-
`Inflater#readpartial` also raise `EOFError` (#618)
175+
`Inflater#readpartial` also raise `EOFError` ([#618])
176176
- **BREAKING** Stricter timeout options parsing: `.timeout()` with a Hash now
177-
rejects unknown keys, non-numeric values, string keys, and empty hashes (#754)
177+
rejects unknown keys, non-numeric values, string keys, and empty hashes ([#754])
178178
- Bumped min llhttp dependency version
179-
- **BREAKING** Handle responses in the reverse order from the requests (#776)
179+
- **BREAKING** Handle responses in the reverse order from the requests ([#776])
180180
- **BREAKING** `Response#cookies` now returns `Array<HTTP::Cookie>` instead of
181181
`HTTP::CookieJar`. The `cookies` option has been removed from `Options`;
182182
`Chainable#cookies` now sets the `Cookie` header directly with no implicit
183-
merging — the last `.cookies()` call wins (#536)
183+
merging — the last `.cookies()` call wins ([#536])
184184
- Cookie jar management during redirects moved from `Redirector` to `Session`.
185185
`Redirector` is now a pure redirect-following engine with no cookie
186186
awareness; `Session#request` manages cookies across redirect hops
@@ -189,14 +189,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
189189
`HTTP::Options.new(response: :body)` continues to work, but
190190
`HTTP::Options.new({response: :body})` must be updated to
191191
`HTTP::Options.new(**options)`. Invalid option names now raise
192-
`ArgumentError` automatically (#447)
192+
`ArgumentError` automatically ([#447])
193193

194194
### Removed
195195

196196
- **BREAKING** Drop Ruby 2.x support
197197
- **BREAKING** Remove `Headers::Mixin` and the `[]`/`[]=` delegators on
198198
`Request` and `Response`. Use `request.headers["..."]` and
199-
`response.headers["..."]` instead (#537)
199+
`response.headers["..."]` instead ([#537])
200200

201+
[#223]: https://github.com/httprb/http/issues/223
202+
[#358]: https://github.com/httprb/http/issues/358
201203
[#371]: https://github.com/httprb/http/issues/371
204+
[#447]: https://github.com/httprb/http/issues/447
205+
[#448]: https://github.com/httprb/http/issues/448
206+
[#449]: https://github.com/httprb/http/issues/449
207+
[#491]: https://github.com/httprb/http/issues/491
208+
[#493]: https://github.com/httprb/http/pull/493
209+
[#512]: https://github.com/httprb/http/issues/512
210+
[#516]: https://github.com/httprb/http/issues/516
211+
[#519]: https://github.com/httprb/http/issues/519
212+
[#535]: https://github.com/httprb/http/issues/535
213+
[#536]: https://github.com/httprb/http/issues/536
214+
[#537]: https://github.com/httprb/http/issues/537
215+
[#544]: https://github.com/httprb/http/issues/544
216+
[#560]: https://github.com/httprb/http/pull/560
217+
[#565]: https://github.com/httprb/http/issues/565
218+
[#566]: https://github.com/httprb/http/issues/566
219+
[#579]: https://github.com/httprb/http/issues/579
220+
[#618]: https://github.com/httprb/http/pull/618
221+
[#642]: https://github.com/httprb/http/issues/642
222+
[#667]: https://github.com/httprb/http/issues/667
223+
[#673]: https://github.com/httprb/http/issues/673
224+
[#739]: https://github.com/httprb/http/issues/739
225+
[#754]: https://github.com/httprb/http/pull/754
226+
[#770]: https://github.com/httprb/http/issues/770
227+
[#773]: https://github.com/httprb/http/issues/773
228+
[#776]: https://github.com/httprb/http/issues/776
229+
[#784]: https://github.com/httprb/http/issues/784
230+
[#785]: https://github.com/httprb/http/issues/785
231+
[#826]: https://github.com/httprb/http/issues/826
202232
[unreleased]: https://github.com/httprb/http/compare/v5.3.0...main

0 commit comments

Comments
 (0)