diff --git a/CHANGES.rst b/CHANGES.rst index 1dd34019404..5844b560409 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -10,36 +10,12 @@ .. towncrier release notes start -3.11.0rc2 (2024-11-12) -====================== +3.10.11 (2024-11-13) +==================== Bug fixes --------- -- Raise :exc:`aiohttp.ServerFingerprintMismatch` exception on client-side if request through http proxy with mismatching server fingerprint digest: `aiohttp.ClientSession(headers=headers, connector=TCPConnector(ssl=aiohttp.Fingerprint(mismatch_digest), trust_env=True).request(...)` -- by :user:`gangj`. - - - *Related issues and pull requests on GitHub:* - :issue:`6652`. - - - -- Modified websocket :meth:`aiohttp.ClientWebSocketResponse.receive_str`, :py:meth:`aiohttp.ClientWebSocketResponse.receive_bytes`, :py:meth:`aiohttp.web.WebSocketResponse.receive_str` & :py:meth:`aiohttp.web.WebSocketResponse.receive_bytes` methods to raise new :py:exc:`aiohttp.WSMessageTypeError` exception, instead of generic :py:exc:`TypeError`, when websocket messages of incorrect types are received -- by :user:`ara-25`. - - - *Related issues and pull requests on GitHub:* - :issue:`6800`. - - - -- Made ``TestClient.app`` a ``Generic`` so type checkers will know the correct type (avoiding unneeded ``client.app is not None`` checks) -- by :user:`Dreamsorcerer`. - - - *Related issues and pull requests on GitHub:* - :issue:`8977`. - - - - Authentication provided by a redirect now takes precedence over provided ``auth`` when making requests with the client -- by :user:`PLPeeters`. @@ -66,16 +42,6 @@ Bug fixes -- Fixed the keep-alive connection pool to be FIFO instead of LIFO -- by :user:`bdraco`. - - Keep-alive connections are more likely to be reused before they disconnect. - - - *Related issues and pull requests on GitHub:* - :issue:`9672`. - - - - Fixed the WebSocket flow control calculation undercounting with multi-byte data -- by :user:`bdraco`. @@ -84,119 +50,19 @@ Bug fixes - -Features --------- - -- Added ``strategy`` parameter to :meth:`aiohttp.web.StreamResponse.enable_compression` - The value of this parameter is passed to the :func:`zlib.compressobj` function, allowing people - to use a more sufficient compression algorithm for their data served by :mod:`aiohttp.web` - -- by :user:`shootkin` - - - *Related issues and pull requests on GitHub:* - :issue:`6257`. - - - -- Added ``server_hostname`` parameter to ``ws_connect``. - - - *Related issues and pull requests on GitHub:* - :issue:`7941`. - - - -- Exported :py:class:`~aiohttp.ClientWSTimeout` to top-level namespace -- by :user:`Dreamsorcerer`. - - - *Related issues and pull requests on GitHub:* - :issue:`8612`. - - - -- Added ``secure``/``httponly``/``samesite`` parameters to ``.del_cookie()`` -- by :user:`Dreamsorcerer`. - - - *Related issues and pull requests on GitHub:* - :issue:`8956`. - - - -- Updated :py:class:`~aiohttp.ClientSession`'s auth logic to include default auth only if the request URL's origin matches _base_url; otherwise, the auth will not be included -- by :user:`MaximZemskov` - - - *Related issues and pull requests on GitHub:* - :issue:`8966`, :issue:`9466`. - - - -- Added ``proxy`` and ``proxy_auth`` parameters to :py:class:`~aiohttp.ClientSession` -- by :user:`meshya`. - - - *Related issues and pull requests on GitHub:* - :issue:`9207`. - - - -- Added ``default_to_multipart`` parameter to ``FormData``. - - - *Related issues and pull requests on GitHub:* - :issue:`9335`. - - - -- Added :py:meth:`~aiohttp.ClientWebSocketResponse.send_frame` and :py:meth:`~aiohttp.web.WebSocketResponse.send_frame` for WebSockets -- by :user:`bdraco`. +- Fixed incorrect parsing of chunk extensions with the pure Python parser -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* - :issue:`9348`. + :issue:`9851`. -- Updated :py:class:`~aiohttp.ClientSession` to support paths in ``base_url`` parameter. - ``base_url`` paths must end with a ``/`` -- by :user:`Cycloctane`. +- Fixed system routes polluting the middleware cache -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* - :issue:`9530`. - - - -- Improved performance of reading WebSocket messages with a Cython implementation -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9543`, :issue:`9554`, :issue:`9556`, :issue:`9558`, :issue:`9636`, :issue:`9649`, :issue:`9781`. - - - -- Added ``writer_limit`` to the :py:class:`~aiohttp.web.WebSocketResponse` to be able to adjust the limit before the writer forces the buffer to be drained -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9572`. - - - -- Added an :attr:`~aiohttp.abc.AbstractAccessLogger.enabled` property to :class:`aiohttp.abc.AbstractAccessLogger` to dynamically check if logging is enabled -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9822`. - - - - -Deprecations (removal in next major release) --------------------------------------------- - -- Deprecate obsolete `timeout: float` and `receive_timeout: Optional[float]` in :py:meth:`~aiohttp.ClientSession.ws_connect`. Change default websocket receive timeout from `None` to `10.0`. - - - *Related issues and pull requests on GitHub:* - :issue:`3945`. + :issue:`9852`. @@ -204,38 +70,6 @@ Deprecations (removal in next major release) Removals and backward incompatible breaking changes --------------------------------------------------- -- Dropped support for Python 3.8 -- by :user:`Dreamsorcerer`. - - - *Related issues and pull requests on GitHub:* - :issue:`8797`. - - - -- Increased minimum yarl version to 1.17.0 -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`8909`, :issue:`9079`, :issue:`9305`, :issue:`9574`. - - - -- Removed the ``is_ipv6_address`` and ``is_ip4_address`` helpers are they are no longer used -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9344`. - - - -- Changed ``ClientRequest.connection_key`` to be a `NamedTuple` to improve client performance -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9365`. - - - - Improved performance of the connector when a connection can be reused -- by :user:`bdraco`. If ``BaseConnector.connect`` has been subclassed and replaced with custom logic, the ``ceil_timeout`` must be added. @@ -246,113 +80,10 @@ Removals and backward incompatible breaking changes -- ``FlowControlDataQueue`` has been replaced with the ``WebSocketDataQueue`` -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9685`. - - - -- Changed ``ClientRequest.request_info`` to be a `NamedTuple` to improve client performance -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9692`. - - - - -Packaging updates and notes for downstreams -------------------------------------------- - -- Switched to using the :mod:`propcache ` package for property caching - -- by :user:`bdraco`. - - The :mod:`propcache ` package is derived from the property caching - code in :mod:`yarl` and has been broken out to avoid maintaining it for multiple - projects. - - - *Related issues and pull requests on GitHub:* - :issue:`9394`. - - - -- Separated ``aiohttp.http_websocket`` into multiple files to make it easier to maintain -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9542`, :issue:`9552`. - - - - -Contributor-facing changes --------------------------- - -- Changed diagram images generator from ``blockdiag`` to ``GraphViz``. - Generating documentation now requires the GraphViz executable to be included in $PATH or sphinx build configuration. - - - *Related issues and pull requests on GitHub:* - :issue:`9359`. - - - Miscellaneous internal changes ------------------------------ -- Added flake8 settings to avoid some forms of implicit concatenation. -- by :user:`booniepepper`. - - - *Related issues and pull requests on GitHub:* - :issue:`7731`. - - - -- Enabled keep-alive support on proxies (which was originally disabled several years ago) -- by :user:`Dreamsorcerer`. - - - *Related issues and pull requests on GitHub:* - :issue:`8920`. - - - -- Changed web entry point to not listen on TCP when only a Unix path is passed -- by :user:`Dreamsorcerer`. - - - *Related issues and pull requests on GitHub:* - :issue:`9033`. - - - -- Disabled automatic retries of failed requests in :class:`aiohttp.test_utils.TestClient`'s client session - (which could potentially hide errors in tests) -- by :user:`ShubhAgarwal-dev`. - - - *Related issues and pull requests on GitHub:* - :issue:`9141`. - - - -- Changed web ``keepalive_timeout`` default to around an hour in order to reduce race conditions on reverse proxies -- by :user:`Dreamsorcerer`. - - - *Related issues and pull requests on GitHub:* - :issue:`9285`. - - - -- Reduced memory required for stream objects created during the client request lifecycle -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9407`. - - - - Improved performance of the client request lifecycle when there are no cookies -- by :user:`bdraco`. @@ -377,30 +108,6 @@ Miscellaneous internal changes -- Improved performance of the internal ``DataQueue`` -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9659`. - - - -- Improved performance of calling ``receive`` for WebSockets for the most common message types -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9679`. - - - -- Replace internal helper methods ``method_must_be_empty_body`` and ``status_code_must_be_empty_body`` with simple `set` lookups -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9722`. - - - - Passing ``enable_cleanup_closed`` to :py:class:`aiohttp.TCPConnector` is now ignored on Python 3.12.7+ and 3.13.1+ since the underlying bug that caused asyncio to leak SSL connections has been fixed upstream -- by :user:`bdraco`. @@ -409,40 +116,9 @@ Miscellaneous internal changes -- Improved performance of :py:class:`aiohttp.BaseConnector` when there is no ``limit_per_host`` -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9756`. - - - -- Improved performance of sending HTTP requests when there is no body -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9757`. - - - -- Improved performance of the ``WebsocketWriter`` when the protocol is not paused -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9796`. - - - -- Implemented zero copy writes for ``StreamWriter`` -- by :user:`bdraco`. - - - *Related issues and pull requests on GitHub:* - :issue:`9839`. - - +---- ----- 3.10.10 (2024-10-10) diff --git a/CHANGES/9436.bugfix.rst b/CHANGES/9436.bugfix.rst deleted file mode 100644 index 7bd7fbcfe28..00000000000 --- a/CHANGES/9436.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Authentication provided by a redirect now takes precedence over provided ``auth`` when making requests with the client -- by :user:`PLPeeters`. diff --git a/CHANGES/9470.misc.rst b/CHANGES/9470.misc.rst deleted file mode 100644 index c363a0f8cfe..00000000000 --- a/CHANGES/9470.misc.rst +++ /dev/null @@ -1 +0,0 @@ -Improved performance of the client request lifecycle when there are no cookies -- by :user:`bdraco`. diff --git a/CHANGES/9485.misc.rst b/CHANGES/9485.misc.rst deleted file mode 100644 index bb0978abd46..00000000000 --- a/CHANGES/9485.misc.rst +++ /dev/null @@ -1 +0,0 @@ -Improved performance of sending client requests when the writer can finish synchronously -- by :user:`bdraco`. diff --git a/CHANGES/9506.bugfix.rst b/CHANGES/9506.bugfix.rst deleted file mode 100644 index 05ad6a59375..00000000000 --- a/CHANGES/9506.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed :py:meth:`WebSocketResponse.close() ` to discard non-close messages within its timeout window after sending close -- by :user:`lenard-mosys`. diff --git a/CHANGES/9600.breaking.rst b/CHANGES/9600.breaking.rst deleted file mode 100644 index 5997344e4cd..00000000000 --- a/CHANGES/9600.breaking.rst +++ /dev/null @@ -1,3 +0,0 @@ -Improved performance of the connector when a connection can be reused -- by :user:`bdraco`. - -If ``BaseConnector.connect`` has been subclassed and replaced with custom logic, the ``ceil_timeout`` must be added. diff --git a/CHANGES/9603.misc.rst b/CHANGES/9603.misc.rst deleted file mode 100644 index 8a27657cdb9..00000000000 --- a/CHANGES/9603.misc.rst +++ /dev/null @@ -1 +0,0 @@ -Improved performance of serializing HTTP headers -- by :user:`bdraco`. diff --git a/CHANGES/9670.bugfix.rst b/CHANGES/9670.bugfix.rst deleted file mode 120000 index b0411a405a0..00000000000 --- a/CHANGES/9670.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -9671.bugfix.rst \ No newline at end of file diff --git a/CHANGES/9671.bugfix.rst b/CHANGES/9671.bugfix.rst deleted file mode 100644 index d2ca2e8ccb5..00000000000 --- a/CHANGES/9671.bugfix.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed a deadlock that could occur while attempting to get a new connection slot after a timeout -- by :user:`bdraco`. - -The connector was not cancellation-safe. diff --git a/CHANGES/9686.bugfix.rst b/CHANGES/9686.bugfix.rst deleted file mode 100644 index 397fb75ba77..00000000000 --- a/CHANGES/9686.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed the WebSocket flow control calculation undercounting with multi-byte data -- by :user:`bdraco`. diff --git a/CHANGES/9726.misc.rst b/CHANGES/9726.misc.rst deleted file mode 100644 index 460c48b7995..00000000000 --- a/CHANGES/9726.misc.rst +++ /dev/null @@ -1 +0,0 @@ -Passing ``enable_cleanup_closed`` to :py:class:`aiohttp.TCPConnector` is now ignored on Python 3.12.7+ and 3.13.1+ since the underlying bug that caused asyncio to leak SSL connections has been fixed upstream -- by :user:`bdraco`. diff --git a/CHANGES/9736.misc.rst b/CHANGES/9736.misc.rst deleted file mode 120000 index 98c0ac8ac1d..00000000000 --- a/CHANGES/9736.misc.rst +++ /dev/null @@ -1 +0,0 @@ -9726.misc.rst \ No newline at end of file diff --git a/CHANGES/9851.bugfix.rst b/CHANGES/9851.bugfix.rst deleted file mode 100644 index 02541a92dd4..00000000000 --- a/CHANGES/9851.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed incorrect parsing of chunk extensions with the pure Python parser -- by :user:`bdraco`. diff --git a/CHANGES/9852.bugfix.rst b/CHANGES/9852.bugfix.rst deleted file mode 100644 index b459d08478b..00000000000 --- a/CHANGES/9852.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed system routes polluting the middleware cache -- by :user:`bdraco`.