Skip to content

Releases: jawah/urllib3.future

Version 2.12.911

06 Feb 15:06
f3a19bd
Compare
Choose a tag to compare

2.12.911 (2024-02-05)

  • Support for IDNA encode via qh3 utils. This allows you to use international domain names without the
    idna package. Thus avoiding an extra dependency. This is made possible from qh3>=1.4.

Version 2.12.910

28 Jan 16:54
ba52618
Compare
Choose a tag to compare

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

21 Jan 09:43
cf62791
Compare
Choose a tag to compare

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 support HTTPResponse.read(-1).
    Also mirrored in AsyncHTTPResponse.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 of RuntimeError, now raises ProtocolError.

Version 2.12.908

13 Jan 06:35
67f8a3d
Compare
Choose a tag to compare

2.12.908 (2024-01-13)

  • Fixed silencing the deprecation warning coming from python_socks about the "_socket" parameter.

Version 2.12.907

12 Jan 10:27
53bd5ed
Compare
Choose a tag to compare

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 of TrafficPolice and
    took it to its knees. We reviewed the in-depth logic and improved it for maximum resilience
    and performance. We backported some improvements in AsyncTrafficPolice 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

03 Jan 15:25
9df514b
Compare
Choose a tag to compare

2.12.906 (2024-01-03)

  • Improved our logic around caching a ssl_context in a concurrent environment.

Version 2.12.905

29 Dec 05:58
9cdb54c
Compare
Choose a tag to compare

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

22 Dec 10:28
dd8795d
Compare
Choose a tag to compare

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 to HTTPConnection and HTTPSConnection.
    See urllib3#3459
  • Backported HTTPSConnection.is_verified to False when using a forwarding proxy.
    See urllib3#3283
  • Backported pickling support to NewConnectionError and NameResolutionError.
    See urllib3#3480

Version 2.12.903

09 Dec 15:49
62f853d
Compare
Choose a tag to compare

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) Implement is_saturated for ConnectionPool to get a hint on whether all allocatable stream are busy.
  • Removed unused code from older version of urllib3-future HTTPProtocolFactory.has(...) and ResolverFactory.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

06 Dec 08:10
02a4d1e
Compare
Choose a tag to compare

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 a traffic_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.