All Versions
Latest Version
Avg Release Cycle
56 days
Latest Release
172 days ago

Changelog History
Page 1

  • v1.26.8 Changes

    January 07, 2022
    • ➕ Added extra message to urllib3.exceptions.ProxyError when urllib3 detects that a proxy is configured to use HTTPS but the proxy itself appears to only use HTTP.
    • ➕ Added a mention of the size of the connection pool when discarding a connection due to the pool being full.
    • ➕ Added explicit support for Python 3.11.
    • 0️⃣ Deprecated the Retry.MAX_BACKOFF class property in favor of Retry.DEFAULT_MAX_BACKOFF to better match the rest of the default parameter names. Retry.MAX_BACKOFF is removed in v2.0.
    • 📦 Changed location of the vendored ssl.match_hostname function from urllib3.packages.ssl_match_hostname to urllib3.util.ssl_match_hostname to ensure Python 3.10+ compatibility after being repackaged by downstream distributors.
    • 🛠 Fixed absolute imports, all imports are now relative.
  • v1.26.7 Changes

    September 22, 2021
    • 🛠 Fixed a bug with HTTPS hostname verification involving IP addresses and lack of SNI. (Issue #2400)
    • 🛠 Fixed a bug where IPv6 braces weren't stripped during certificate hostname matching. (Issue #2240)
  • v1.26.6 Changes

    June 25, 2021
    • 🗄 Deprecated the urllib3.contrib.ntlmpool module. urllib3 is not able to support it properly due to reasons listed in this issue <>_. If you are a user of this module please leave a comment.
    • 🔄 Changed HTTPConnection.request_chunked() to not erroneously emit multiple Transfer-Encoding headers in the case that one is already specified.
    • 👍 Fixed typo in deprecation message to recommend Retry.DEFAULT_ALLOWED_METHODS.
  • v1.26.5 Changes

    May 26, 2021
    • 🛠 Fixed deprecation warnings emitted in Python 3.10.
    • ⚡️ Updated vendored six library to 1.16.0.
    • 👌 Improved performance of URL parser when splitting the authority component.
  • v1.26.4 Changes

    March 15, 2021
    • 🔄 Changed behavior of the default SSLContext when connecting to HTTPS proxy during HTTPS requests. The default SSLContext now sets check_hostname=True.
  • v1.26.3 Changes

    January 26, 2021
    • 🛠 Fixed bytes and string comparison issue with headers (Pull #2141)

    • 🔄 Changed ProxySchemeUnknown error message to be more actionable if the user supplies a proxy URL without a scheme. (Pull #2107)

  • v1.26.2 Changes

    November 12, 2020

    👍 ⚠️ IMPORTANT: urllib3 v2.0 will drop support for Python 2 : Read more in the v2.0 Roadmap

    • Fixed an issue where wrap_socket and CERT_REQUIRED wouldn't be imported properly on Python 2.7.8 and earlier (Pull #2052)
  • v1.26.1 Changes

    November 11, 2020

    👍 ⚠️ IMPORTANT: urllib3 v2.0 will drop support for Python 2 : Read more in the v2.0 Roadmap

    • 🛠 Fixed an issue where two User-Agent headers would be sent if a User-Agent header key is passed as bytes (Pull #2047)
  • v1.26.0 Changes

    November 10, 2020

    👍 ⚠️ IMPORTANT: urllib3 v2.0 will drop support for Python 2 : Read more in the v2.0 Roadmap

    ➕ Added support for HTTPS proxies contacting HTTPS servers (Pull #1923, Pull #1806)

    🗄 Deprecated negotiating TLSv1 and TLSv1.1 by default. Users that
    🗄 still wish to use TLS earlier than 1.2 without a deprecation warning
    🔖 should opt-in explicitly by setting ssl_version=ssl.PROTOCOL_TLSv1_1 (Pull #2002)
    🗄 Starting in urllib3 v2.0: Connections that receive a DeprecationWarning will fail

    0️⃣ and Retry(method_whitelist=...) in favor of Retry.DEFAULT_ALLOWED_METHODS,
    Retry.DEFAULT_REMOVE_HEADERS_ON_REDIRECT, and Retry(allowed_methods=...)
    🚚 (Pull #2000) Starting in urllib3 v2.0: Deprecated options will be removed

    ➕ Added default User-Agent header to every request (Pull #1750)

    ➕ Added urllib3.util.SKIP_HEADER for skipping User-Agent, Accept-Encoding,
    and Host headers from being automatically emitted with requests (Pull #2018)

    Collapse transfer-encoding: chunked request data and framing into
    the same socket.send() call (Pull #1906)

    0️⃣ Send http/1.1 ALPN identifier with every TLS handshake by default (Pull #1894)

    Properly terminate SecureTransport connections when CA verification fails (Pull #1977)

    ⚠ Don't emit an SNIMissingWarning when passing server_hostname=None
    to SecureTransport (Pull #1903)

    Disabled requesting TLSv1.2 session tickets as they weren't being used by urllib3 (Pull #1970)

    Suppress BrokenPipeError when writing request body after the server
    has closed the socket (Pull #1524)

    Wrap ssl.SSLError that can be raised from reading a socket (e.g. "bad MAC")
    into an urllib3.exceptions.SSLError (Pull #1939)

  • v1.25.11 Changes

    October 19, 2020

    🛠 Fix retry backoff time parsed from Retry-After header when given in the HTTP date format. The HTTP date was parsed as the local timezone rather than accounting for the timezone in the HTTP date (typically UTC) (#1932, #1935, #1938, #1949)

    🛠 Fix issue where an error would be raised when the SSLKEYLOGFILE environment variable was set to the empty string. Now SSLContext.keylog_file is not set in this situation (#2016)