diff --git a/CHANGES.rst b/CHANGES.rst index 2bd19de71d6..9a944423642 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -10,6 +10,455 @@ .. towncrier release notes start +3.10.6rc0 (2024-09-22) +====================== + +Bug fixes +--------- + +- Implemented binding to IPv6 addresses in the pytest server fixture. + + + *Related issues and pull requests on GitHub:* + :issue:`4650`. + + + +- Fixed StreamResponse.prepared to return True after EOF is sent -- by :user:`arthurdarcet`. + + + *Related issues and pull requests on GitHub:* + :issue:`5343`. + + + +- Fixed ``Response.text`` when body is a ``Payload`` -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`6485`. + + + +- Added support for URL credentials with empty (zero-length) username, e.g. ``https://:password@host`` -- by :user:`shuckc` + + + *Related issues and pull requests on GitHub:* + :issue:`6494`. + + + +- Fixed handling of some file-like objects (e.g. ``tarfile.extractfile()``) which raise ``AttributeError`` instead of ``OSError`` when ``fileno`` fails for streaming payload data -- by :user:`ReallyReivax`. + + + *Related issues and pull requests on GitHub:* + :issue:`6732`. + + + +- Stopped logging exceptions from ``web.run_app()`` that would be raised regardless -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`6807`. + + + +- Changed ``make_mocked_request()`` to use empty payload by default -- by :user:`rahulnht`. + + + *Related issues and pull requests on GitHub:* + :issue:`7167`. + + + +- Used more precise type for ``ClientResponseError.headers``, fixing some type errors when using them -- by :user:`Dreamorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8768`. + + + +- Fixed Python parser chunked handling with multiple Transfer-Encoding values -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8823`. + + + +- Changed behavior when returning an invalid response to send a 500 response -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8845`. + + + +- Stopped adding a default Content-Type header when response has no content -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8858`. + + + +- Fixed an unclosed transport ``ResourceWarning`` on web handlers -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8875`. + + + +- Fixed error handling after 100-continue so server sends 500 response instead of disconnecting -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8876`. + + + +- Fixed response reading from closed session to throw an error immediately instead of timing out -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8878`. + + + +- Fixed web router not matching pre-encoded URLs (requires yarl 1.9.6+) -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8898`. + + + +- Fixed ``CancelledError`` from one cleanup context stopping other contexts from completing -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8908`. + + + +- Fixed ``Site.name`` when host is an empty string -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8929`. + + + +- Fixed resolve_host() 'Task was destroyed but is pending' errors -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8967`. + + + +- Fixed changing scheme/host in ``Response.clone()`` for absolute URLs -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8990`. + + + +- Fixed client incorrectly reusing a connection when the previous message had not been fully sent -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8992`. + + + +- Fixed an error when trying to add a route for multiple methods with a path containing a regex pattern -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8998`. + + + +- Updated Python parser to reject messages after a close message, matching C parser behaviour -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`9018`. + + + +- Fixed creation of ``SSLContext`` inside of :py:class:`aiohttp.TCPConnector` with multiple event loops in different threads -- by :user:`bdraco`. + + + *Related issues and pull requests on GitHub:* + :issue:`9029`. + + + +- Fixed (on Python 3.11+) some edge cases where a task cancellation may get incorrectly suppressed -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`9030`. + + + +- Fixed the incorrect use of flags for ``getnameinfo()`` in the Resolver --by :user:`GitNMLee` + + Link-Local IPv6 addresses can now be handled by the Resolver correctly. + + + *Related issues and pull requests on GitHub:* + :issue:`9032`. + + + +- Fixed exception information getting lost on ``HttpProcessingError`` -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`9052`. + + + +- Fixed ``If-None-Match`` not using weak comparison -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`9063`. + + + +- Fixed compressed requests failing when no body was provided -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`9108`. + + + +- Added :exc:`aiohttp.ClientConnectionResetError`. Client code that previously threw :exc:`ConnectionResetError` + will now throw this -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`9137`. + + + +- Fixed race condition that could cause server to close connection incorrectly at keepalive timeout -- by :user:`Dreamosorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`9140`. + + + +- Fixed badly encoded charset crashing when getting response text instead of falling back to charset detector. + + + *Related issues and pull requests on GitHub:* + :issue:`9160`. + + + +- Rejected `\n` in `reason` values to avoid sending broken HTTP messages -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`9167`. + + + +- Changed :py:meth:`ClientResponse.raise_for_status() ` to only release the connection when invoked outside an ``async with`` context -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`9239`. + + + + +Features +-------- + +- Improved type on ``params`` to match the underlying type allowed by ``yarl`` -- by :user:`lpetre`. + + + *Related issues and pull requests on GitHub:* + :issue:`8564`. + + + + +Removals and backward incompatible breaking changes +--------------------------------------------------- + +- Improved middleware performance -- by :user:`bdraco`. + + The ``set_current_app`` method was removed from ``UrlMappingMatchInfo`` because it is no longer used, and it was unlikely external caller would ever use it. + + + *Related issues and pull requests on GitHub:* + :issue:`9200`. + + + + +Improved documentation +---------------------- + +- Clarified that ``GracefulExit`` needs to be handled in ``AppRunner`` and ``ServerRunner`` when using ``handle_signals=True``. -- by :user:`Daste745` + + + *Related issues and pull requests on GitHub:* + :issue:`4414`. + + + +- Clarified that auth parameter in ClientSession will persist and be included with any request to any origin, even during redirects to different origins. -- by :user:`MaximZemskov`. + + + *Related issues and pull requests on GitHub:* + :issue:`6764`. + + + +- Clarified which timeout exceptions happen on which timeouts -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8968`. + + + +- Updated ``ClientSession`` parameters to match current code -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`8991`. + + + + +Packaging updates and notes for downstreams +------------------------------------------- + +- Fixed ``test_client_session_timeout_zero`` to not require internet access -- by :user:`Dreamsorcerer`. + + + *Related issues and pull requests on GitHub:* + :issue:`9004`. + + + + +Miscellaneous internal changes +------------------------------ + +- Improved performance of making requests when there are no auto headers to skip -- by :user:`bdraco`. + + + *Related issues and pull requests on GitHub:* + :issue:`8847`. + + + +- Exported ``aiohttp.TraceRequestHeadersSentParams`` -- by :user:`Hadock-is-ok`. + + + *Related issues and pull requests on GitHub:* + :issue:`8947`. + + + +- Avoided tracing overhead in the http writer when there are no active traces -- by user:`bdraco`. + + + *Related issues and pull requests on GitHub:* + :issue:`9031`. + + + +- Improved performance of reify Cython implementation -- by :user:`bdraco`. + + + *Related issues and pull requests on GitHub:* + :issue:`9054`. + + + +- Use :meth:`URL.extend_query() ` to extend query params (requires yarl 1.11.0+) -- by :user:`bdraco`. + + If yarl is older than 1.11.0, the previous slower hand rolled version will be used. + + + *Related issues and pull requests on GitHub:* + :issue:`9068`. + + + +- Improved performance of checking if a host is an IP Address -- by :user:`bdraco`. + + + *Related issues and pull requests on GitHub:* + :issue:`9095`. + + + +- Significantly improved performance of middlewares -- by :user:`bdraco`. + + The construction of the middleware wrappers is now cached and is built once per handler instead of on every request. + + + *Related issues and pull requests on GitHub:* + :issue:`9158`, :issue:`9170`. + + + +- Improved performance of web requests -- by :user:`bdraco`. + + + *Related issues and pull requests on GitHub:* + :issue:`9168`, :issue:`9169`, :issue:`9172`, :issue:`9174`, :issue:`9175`, :issue:`9241`. + + + +- Improved performance of starting web requests when there is no response prepare hook -- by :user:`bdraco`. + + + *Related issues and pull requests on GitHub:* + :issue:`9173`. + + + +- Significantly improved performance of expiring cookies -- by :user:`bdraco`. + + Expiring cookies has been redesigned to use :mod:`heapq` instead of a linear search, to better scale. + + + *Related issues and pull requests on GitHub:* + :issue:`9203`. + + + +- Significantly sped up filtering cookies -- by :user:`bdraco`. + + + *Related issues and pull requests on GitHub:* + :issue:`9204`. + + + + +---- + + 3.10.5 (2024-08-19) ========================= diff --git a/aiohttp/__init__.py b/aiohttp/__init__.py index 63367052646..111ce98440c 100644 --- a/aiohttp/__init__.py +++ b/aiohttp/__init__.py @@ -1,4 +1,4 @@ -__version__ = "3.10.6.dev0" +__version__ = "3.10.6rc0" from typing import TYPE_CHECKING, Tuple