From 45b2c2c5773f0ee0d35fce8ff5716c78e91d9135 Mon Sep 17 00:00:00 2001 From: Sam Bull Date: Sat, 18 Nov 2023 01:41:10 +0000 Subject: [PATCH] Release v3.9.0 (#7843) --- CHANGES.rst | 228 +++++++++++++++++--------------------------- aiohttp/__init__.py | 2 +- 2 files changed, 91 insertions(+), 139 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 16aa5e78aa8..fcfd111b8a4 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -10,138 +10,8 @@ .. towncrier release notes start -3.9.0rc0 (2023-11-14) -===================== - -Features --------- - -- Performance: Skipped filtering ``CookieJar`` when the jar is empty or all cookies have expired. - - `#7819 `_ - -- Performance: Only check origin if insecure scheme and there are origins to treat as secure, in ``CookieJar.filter_cookies()``. - - `#7821 `_ - -- Performance: Used timestamp instead of ``datetime`` to achieve faster cookie expiration in ``CookieJar``. - - `#7824 `_ - - - -Bugfixes --------- - -- Fixed an issue where the client could go into an infinite loop. -- by :user:`Dreamsorcerer` - - `#7815 `_ - -- Added HTTP method validation. - - `#6533 `_ - -- Fixed arbitrary sequence types being allowed to inject values via version parameter. -- by :user:`Dreamsorcerer` - - `#7835 `_ - -- Performance: Fixed increase in latency with small messages from websocket compression changes. - - `#7797 `_ - - - ----- - - -3.9.0b1 (2023-11-03) -==================== - -Features --------- - -- Added ``WebSocketResponse.get_extra_info()`` to access a protocol transport's extra info. - - `#7078 `_ - -- Allow ``link`` argument to be set to None/empty in HTTP 451 exception. - - `#7689 `_ - -- Added ``shutdown_timeout`` parameter to ``BaseRunner``, while - deprecating ``shutdown_timeout`` parameter from ``BaseSite``. -- by :user:`Dreamsorcerer` - - `#7718 `_ - - - -Bugfixes --------- - -- Fixed keep-alive connections stopping a graceful shutdown. -- by :user:`Dreamsorcerer` - - `#7718 `_ - -- Fixed ``ClientWebSocketResponse.close_code`` being erroneously set to ``None`` when there are concurrent async tasks receiving data and closing the connection. - - `#7306 `_ - -- Changed ``AppKey`` warning to ``web.NotAppKeyWarning`` and stop it being displayed by default. -- by :user:`Dreamsorcerer` - - `#7677 `_ - -- Fix issue with insufficient HTTP method and version validation. - - `#7700 `_ - -- Add check to validate that absolute URIs have schemes. - - `#7712 `_ - -- Fix unhandled exception when Python HTTP parser encounters unpaired Unicode surrogates. - - `#7715 `_ - -- Update parser to disallow invalid characters in header field names and stop accepting LF as a request line separator. - - `#7719 `_ - -- Fix py http parser not treating 204/304/1xx as an empty body - - `#7755 `_ - -- Ensure empty body response for 1xx/204/304 per RFC 9112 sec 6.3 - - `#7756 `_ - -- Fixed an issue when a client request is closed before completing a chunked payload -- by :user:`Dreamsorcerer` - - `#7764 `_ - -- Edge Case Handling for ResponseParser for missing reason value - - `#7776 `_ - -- Fixed a rare `RuntimeError: await wasn't used with future` exception -- by :user:`stalkerg` - - `#7785 `_ - - - -Improved Documentation ----------------------- - -- Fix, update, and improve client exceptions documentation. - - `#7733 `_ - - - ----- - - -3.9.0b0 (2023-10-07) -==================== +3.9.0 (2023-11-18) +================== Features -------- @@ -179,7 +49,7 @@ Features `#5219 `_ -- Added ``client_max_size`` to ``BaseRequest.clone()`` to allow overriding the request body size -- :user:`anesabml`. +- Added ``client_max_size`` to ``BaseRequest.clone()`` to allow overriding the request body size. -- :user:`anesabml`. `#5704 `_ @@ -196,11 +66,24 @@ Features `#6839 `_ +- Performance: Skipped filtering ``CookieJar`` when the jar is empty or all cookies have expired. + + `#7819 `_ + +- Performance: Only check origin if insecure scheme and there are origins to treat as secure, in ``CookieJar.filter_cookies()``. + + `#7821 `_ + +- Performance: Used timestamp instead of ``datetime`` to achieve faster cookie expiration in ``CookieJar``. + + `#7824 `_ + - Added support for passing a custom server name parameter to HTTPS connection. `#7114 `_ -- Added support for using Basic Auth credentials from :file:`.netrc` file when making HTTP requests with the :py:class:`~aiohttp.ClientSession` ``trust_env`` argument is set to ``True`` -- by :user:`yuvipanda`. +- Added support for using Basic Auth credentials from :file:`.netrc` file when making HTTP requests with the + :py:class:`~aiohttp.ClientSession` ``trust_env`` argument is set to ``True``. -- by :user:`yuvipanda`. `#7131 `_ @@ -208,7 +91,7 @@ Features `#7240 `_ -- Added typing information to ``RawResponseMessage`` -- by :user:`Gobot1234` +- Added typing information to ``RawResponseMessage``. -- by :user:`Gobot1234` `#7365 `_ @@ -220,6 +103,14 @@ Features `#7611 `_ +- Added ``WebSocketResponse.get_extra_info()`` to access a protocol transport's extra info. + + `#7078 `_ + +- Allow ``link`` argument to be set to None/empty in HTTP 451 exception. + + `#7689 `_ + Bugfixes @@ -231,11 +122,11 @@ Bugfixes `#3636 `_ -- Fixed client timeout not working when incoming data is always available without waiting -- by :user:`Dreamsorcerer`. +- Fixed client timeout not working when incoming data is always available without waiting. -- by :user:`Dreamsorcerer`. `#5854 `_ -- Fixed ``readuntil`` to work with a delimiter of more than one character +- Fixed ``readuntil`` to work with a delimiter of more than one character. `#6701 `_ @@ -271,6 +162,58 @@ Bugfixes `#7616 `_ +- Fixed a rare ``RuntimeError: await wasn't used with future`` exception. -- by :user:`stalkerg` + + `#7785 `_ + +- Fixed issue with insufficient HTTP method and version validation. + + `#7700 `_ + +- Added check to validate that absolute URIs have schemes. + + `#7712 `_ + +- Fixed unhandled exception when Python HTTP parser encounters unpaired Unicode surrogates. + + `#7715 `_ + +- Updated parser to disallow invalid characters in header field names and stop accepting LF as a request line separator. + + `#7719 `_ + +- Fixed Python HTTP parser not treating 204/304/1xx as an empty body. + + `#7755 `_ + +- Ensure empty body response for 1xx/204/304 per RFC 9112 sec 6.3. + + `#7756 `_ + +- Fixed an issue when a client request is closed before completing a chunked payload. -- by :user:`Dreamsorcerer` + + `#7764 `_ + +- Edge Case Handling for ResponseParser for missing reason value. + + `#7776 `_ + +- Fixed ``ClientWebSocketResponse.close_code`` being erroneously set to ``None`` when there are concurrent async tasks receiving data and closing the connection. + + `#7306 `_ + +- Added HTTP method validation. + + `#6533 `_ + +- Fixed arbitrary sequence types being allowed to inject values via version parameter. -- by :user:`Dreamsorcerer` + + `#7835 `_ + +- Performance: Fixed increase in latency with small messages from websocket compression changes. + + `#7797 `_ + Improved Documentation @@ -304,11 +247,20 @@ Improved Documentation `#7334 `_ +- Fix, update, and improve client exceptions documentation. + + `#7733 `_ + Deprecations and Removals ------------------------- +- Added ``shutdown_timeout`` parameter to ``BaseRunner``, while + deprecating ``shutdown_timeout`` parameter from ``BaseSite``. -- by :user:`Dreamsorcerer` + + `#7718 `_ + - Dropped Python 3.6 support. `#6378 `_ @@ -342,7 +294,7 @@ Misc `#6903 `_ -- Fixed annotation of ``ssl`` parameter to disallow ``True``. -- by :user:`Dreamsorcerer` +- Fixed annotation of ``ssl`` parameter to disallow ``True``. -- by :user:`Dreamsorcerer`. `#7335 `_ diff --git a/aiohttp/__init__.py b/aiohttp/__init__.py index b679b25e506..538ce0a1038 100644 --- a/aiohttp/__init__.py +++ b/aiohttp/__init__.py @@ -1,4 +1,4 @@ -__version__ = "3.9.0rc0" +__version__ = "3.9.0" from typing import TYPE_CHECKING, Tuple