Releases: jawah/urllib3.future
Releases · jawah/urllib3.future
Version 2.12.911
Version 2.12.910
2.12.910 (2024-01-28)
- Fixed a rare issue where the closing of the WebSocket extension would lead to a
RecursionError
.
This happen when the WebSocket state machine ends in a broken state.
Version 2.12.909
2.12.909 (2024-01-20)
- Fixed compatibility with upstream urllib3 when third party program invoke deprecated
HTTPResponse.getheader
or
HTTPResponse.getheaders
. Those methods were planned to be removed in 2.1 (they still have a pending deprecation
that mention 2.1 target in the 2.3 version). As such we immediately restore the methods. (#203) - Implemented our copy of
HTTPResponse.read1
heavily simplified as we do already supportHTTPResponse.read(-1)
.
Also mirrored inAsyncHTTPResponse.read1
. - Automatically grab
qh3
for X86/i686 based processors (e.g. win32). - Fixed the aggressive exception in our native websocket implementation when a server responded positively to an upgrade
request without the required http header. Instead ofRuntimeError
, now raisesProtocolError
.
Version 2.12.908
2.12.908 (2024-01-13)
- Fixed silencing the deprecation warning coming from python_socks about the "_socket" parameter.
Version 2.12.907
2.12.907 (2024-01-12)
- Fixed our thread safety protection against the experimental free-threaded Python build.
As expected, the absence of GIL challenged our implementation ofTrafficPolice
and
took it to its knees. We reviewed the in-depth logic and improved it for maximum resilience
and performance. We backported some improvements inAsyncTrafficPolice
when applicable. - Improved error message whenever the pool capacity have been exhausted.
- Fixed background discrete watcher that never reached some connections in the pool.
- Bumped allowed upper bound for
python-socks
to 2.6.1 (we will have to manually increase the upper bound
each minor/patch version due to our complex integration that invoke private classes/APIs)
Version 2.12.906
2.12.906 (2024-01-03)
- Improved our logic around caching a ssl_context in a concurrent environment.
Version 2.12.905
2.12.905 (2024-12-29)
- Fixed error due to an internal change in python-socks 2.6
- Pinned python-socks upper bound to 2.5.3 pending further improvement into our integration.
Version 2.12.904
2.12.904 (2024-12-22)
- Fixed an issue when trying to force load Websocket over HTTP/2 or HTTP/3.
- Ensured WebSocket via HTTP/2 with improved CI pipeline featuring haproxy as the reverse proxy.
- Fixed
RuntimeError
when forcing HTTP/3 by disabling both HTTP/1, and HTTP/2 and the remote is unable to negotiate HTTP/3.
This issue occurred because of our automatic downgrade procedure introduced in our 2.10.x series. The downgrade ends in panic
due to unavailable lower protocols. This only improve the UX by not downgrading and letting the original error out.
See jawah/niquests#189 for original user report. - Fixed negotiated extensions for WebSocket being ignored (e.g. per-deflate message).
- Backported
HTTPResponse.shutdown()
and nullified it. The fix they attempt to ship only concern
them, we are already safe (based on issue reproduction). See urllib3#2868 - Backported
proxy_is_tunneling
property toHTTPConnection
andHTTPSConnection
.
See urllib3#3459 - Backported
HTTPSConnection.is_verified
to False when using a forwarding proxy.
See urllib3#3283 - Backported pickling support to
NewConnectionError
andNameResolutionError
.
See urllib3#3480
Version 2.12.903
2.12.903 (2024-12-09)
- Minor improvements on our algorithm that manage multiplexed connection.
A) We ensured that when a remote peer sent a Goaway frame, we keep the connection alive just long enough that you may
retrieve all remaining data/response pending.
B) HTTP/3 max stream limit was not calculated properly (and in real time) thus causing undesirable additional latency in rare cases.
C) Implementis_saturated
forConnectionPool
to get a hint on whether all allocatable stream are busy. - Removed unused code from older version of urllib3-future
HTTPProtocolFactory.has(...)
andResolverFactory.has(...)
. - Fixed using "very-specific" scheme for supported web extension like
ws+wsproto://...
for ws=plain websocket and wsproto=implementation. - Reworking the test suite to revamp our coverage target toward 100%.
Version 2.12.902
2.12.902 (2024-12-06)
- Fixed a rare issue where Happy-Eyeballs algorithm would not respect timeout for a plain HTTP connection where all available endpoints are unreachable.
- Fixed an issue where a HTTP/2 idle connection would be considered "used/saturated" instead of "idle" when remote expressed wish to goaway.
This issue can lead to atraffic_police.OverwhelmedTraffic
in synchronous context and indefinite hang in asynchronous after awhile. - Increased default keepalive window to 1h by default for HTTP/2, and HTTP/3.