[ruby-talk:444332] [ANN] httpx 0.24.6 released

httpx 0.24.6 has been released.

NOTE: If nothing significant happens, this will be the last release before
v1 is released (which should happen during next week).

HTTPX.get("https://gitlab.com/honeyryderchuck/httpx
<https://gitlab.com/honeyryderchuck/httpx>")

HTTPX is an HTTP client library for the Ruby programming language.

Among its features, it supports:

* HTTP/2 and HTTP/1.x protocol versions
* Concurrent requests by default
* Simple and chainable API
* Proxy Support (HTTP(S), CONNECT tunnel, Socks4/4a/5)
* Simple Timeout System
* Lightweight by default (require what you need)

And also:

* Compression (gzip, deflate, brotli)
* Streaming Requests
* Authentication (Basic Auth, Digest Auth, AWS Sigv4)
* Expect 100-continue
* Multipart Requests
* Cookies
* HTTP/2 Server Push
* H2C Upgrade
* Automatic follow redirects
* International Domain Names
* GRPC
* Circuit breaker
* WebDAV
* Datadog integration
* Faraday integration
* Webmock integration
* Sentry integration

Here are the updates since the last release:

# 0.24.6

## Bugfixes

* fix Session class assertions not prepared for class overrides, which
could break some plugins which override the Session class on load (such as
`datadog` or `webmock` adapters).

# 0.24.5

## Bugfixes

* fix for SSL handshake post connection SAN check using IPv6 address.
* fix bug in DoH impl when the request returned no answer.

# 0.24.4

## Improvements

* `digest_authentication` plugin now supports passing HA1hashed with
password HA1s (common to store in htdigest files for example) when setting
the`:hashed` kwarg to `true` in the `.digest_auth` call.
  * ex: `http.digest_auth(user, get_hashed_passwd_from_htdigest(user),
hashed: true)`
* TLS session resumption is now supported
  * whenever possible, `httpx` sessions will recycle used connections so
that, in the case of TLS connections, the first session will keep being
reused, thereby diminishing the overhead of subsequent TLS handshakes on
the same host.
  * TLS sessions are only reused in the scope of the same `httpx` session,
unless the `:persistent` plugin is used, in which case, the persisted
`httpx` session will always try to resume TLS sessions.

## Bugfixes

* When explicitly using IP addresses in the URL host, TLS handshake will
now verify if the IP address is included in the certificate.
  * IP address will keep not being used for SNI, as per RFC 6066, section 3.
  * ex: `http.get("https://10.12.0.12/get&quot;\)`
  * if you want the prior behavior, set `HTTPX.with(ssl: {verify_hostname:
false})`
* Turn TLS hostname verification on for `jruby` (it's turned off by
default).
  * if you want the prior behavior, set `HTTPX.with(ssl: {verify_hostname:
false})`

# 0.24.3

## Improvements

* faraday adapter: reraise httpx timeout errors as faraday errors.
* faraday adapter: support `:bind` option, which expects a host and port to
connect to.

## Bugfixes

* faraday adapter: fix `#close` implementation using the wrong ivar.
* faraday adapter: fix usage of `requestt_timeout` translation of faraday
timeouts into httpx timeouts.
* faraday adapter: `ssl: { verify: false }` was being ignored, and
certification verification was still proceeding.

# 0.24.2

## Improvements

* besides an array, `:resolver_options` can now receive a hash for
`:nameserver`, which **must** be indexed by IP family (`Socket::AF_INET6`
or `Socket::AF_INET`); each group of nameservers will be used for emitting
DNS queries of that iP family.
* `:authentication` plugin: Added `#bearer_auth` helper, which receives a
token, and sets it as `"Bearer $TOKEN` in the `"authorization"` header.
* `faraday` adapter: now implements `#build_connection` and `#close`, will
now interact with `faraday` native timeouts (`:read`, `:write` and
`:connect`).

## Bugfixes

* fixed native resolver bug when queries involving intermediate alias would
be kept after the original query and mess with re-queries.

# 0.24.1

## Improvements

* datadog adapter: support `:service_name` configuration option.
* datadog adapter: set `:distributed_tracing` to `true` by default.
* `:proxy` plugin: when the proxy uri uses an unsupported scheme (i.e.:
"scp://125.24.2.1"), a more user friendly error is raised (instead of the
previous broken stacktrace).

## Bugfixes

* datadog adapter: fix tracing enable call, which was wrongly calling
`super`.
+ `:proxy` plugin: fix for bug which was turning off plugins overriding
`HTTPX::Connection#send` (such as the datadog adapter).