Skip to content

Commit 4adb061

Browse files
committed
Merge branch '3.11'
2 parents b7d0d8a + c311912 commit 4adb061

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+359
-63
lines changed

CHANGES.rst

+359
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,365 @@
1010

1111
.. towncrier release notes start
1212
13+
3.11.0 (2024-11-13)
14+
===================
15+
16+
Bug fixes
17+
---------
18+
19+
- 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`.
20+
21+
22+
*Related issues and pull requests on GitHub:*
23+
:issue:`6652`.
24+
25+
26+
27+
- 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`.
28+
29+
30+
*Related issues and pull requests on GitHub:*
31+
:issue:`6800`.
32+
33+
34+
35+
- Made ``TestClient.app`` a ``Generic`` so type checkers will know the correct type (avoiding unneeded ``client.app is not None`` checks) -- by :user:`Dreamsorcerer`.
36+
37+
38+
*Related issues and pull requests on GitHub:*
39+
:issue:`8977`.
40+
41+
42+
43+
- Fixed the keep-alive connection pool to be FIFO instead of LIFO -- by :user:`bdraco`.
44+
45+
Keep-alive connections are more likely to be reused before they disconnect.
46+
47+
48+
*Related issues and pull requests on GitHub:*
49+
:issue:`9672`.
50+
51+
52+
53+
54+
Features
55+
--------
56+
57+
- Added ``strategy`` parameter to :meth:`aiohttp.web.StreamResponse.enable_compression`
58+
The value of this parameter is passed to the :func:`zlib.compressobj` function, allowing people
59+
to use a more sufficient compression algorithm for their data served by :mod:`aiohttp.web`
60+
-- by :user:`shootkin`
61+
62+
63+
*Related issues and pull requests on GitHub:*
64+
:issue:`6257`.
65+
66+
67+
68+
- Added ``server_hostname`` parameter to ``ws_connect``.
69+
70+
71+
*Related issues and pull requests on GitHub:*
72+
:issue:`7941`.
73+
74+
75+
76+
- Exported :py:class:`~aiohttp.ClientWSTimeout` to top-level namespace -- by :user:`Dreamsorcerer`.
77+
78+
79+
*Related issues and pull requests on GitHub:*
80+
:issue:`8612`.
81+
82+
83+
84+
- Added ``secure``/``httponly``/``samesite`` parameters to ``.del_cookie()`` -- by :user:`Dreamsorcerer`.
85+
86+
87+
*Related issues and pull requests on GitHub:*
88+
:issue:`8956`.
89+
90+
91+
92+
- 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`
93+
94+
95+
*Related issues and pull requests on GitHub:*
96+
:issue:`8966`, :issue:`9466`.
97+
98+
99+
100+
- Added ``proxy`` and ``proxy_auth`` parameters to :py:class:`~aiohttp.ClientSession` -- by :user:`meshya`.
101+
102+
103+
*Related issues and pull requests on GitHub:*
104+
:issue:`9207`.
105+
106+
107+
108+
- Added ``default_to_multipart`` parameter to ``FormData``.
109+
110+
111+
*Related issues and pull requests on GitHub:*
112+
:issue:`9335`.
113+
114+
115+
116+
- Added :py:meth:`~aiohttp.ClientWebSocketResponse.send_frame` and :py:meth:`~aiohttp.web.WebSocketResponse.send_frame` for WebSockets -- by :user:`bdraco`.
117+
118+
119+
*Related issues and pull requests on GitHub:*
120+
:issue:`9348`.
121+
122+
123+
124+
- Updated :py:class:`~aiohttp.ClientSession` to support paths in ``base_url`` parameter.
125+
``base_url`` paths must end with a ``/`` -- by :user:`Cycloctane`.
126+
127+
128+
*Related issues and pull requests on GitHub:*
129+
:issue:`9530`.
130+
131+
132+
133+
- Improved performance of reading WebSocket messages with a Cython implementation -- by :user:`bdraco`.
134+
135+
136+
*Related issues and pull requests on GitHub:*
137+
:issue:`9543`, :issue:`9554`, :issue:`9556`, :issue:`9558`, :issue:`9636`, :issue:`9649`, :issue:`9781`.
138+
139+
140+
141+
- 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`.
142+
143+
144+
*Related issues and pull requests on GitHub:*
145+
:issue:`9572`.
146+
147+
148+
149+
- Added an :attr:`~aiohttp.abc.AbstractAccessLogger.enabled` property to :class:`aiohttp.abc.AbstractAccessLogger` to dynamically check if logging is enabled -- by :user:`bdraco`.
150+
151+
152+
*Related issues and pull requests on GitHub:*
153+
:issue:`9822`.
154+
155+
156+
157+
158+
Deprecations (removal in next major release)
159+
--------------------------------------------
160+
161+
- 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`.
162+
163+
164+
*Related issues and pull requests on GitHub:*
165+
:issue:`3945`.
166+
167+
168+
169+
170+
Removals and backward incompatible breaking changes
171+
---------------------------------------------------
172+
173+
- Dropped support for Python 3.8 -- by :user:`Dreamsorcerer`.
174+
175+
176+
*Related issues and pull requests on GitHub:*
177+
:issue:`8797`.
178+
179+
180+
181+
- Increased minimum yarl version to 1.17.0 -- by :user:`bdraco`.
182+
183+
184+
*Related issues and pull requests on GitHub:*
185+
:issue:`8909`, :issue:`9079`, :issue:`9305`, :issue:`9574`.
186+
187+
188+
189+
- Removed the ``is_ipv6_address`` and ``is_ip4_address`` helpers are they are no longer used -- by :user:`bdraco`.
190+
191+
192+
*Related issues and pull requests on GitHub:*
193+
:issue:`9344`.
194+
195+
196+
197+
- Changed ``ClientRequest.connection_key`` to be a `NamedTuple` to improve client performance -- by :user:`bdraco`.
198+
199+
200+
*Related issues and pull requests on GitHub:*
201+
:issue:`9365`.
202+
203+
204+
205+
- ``FlowControlDataQueue`` has been replaced with the ``WebSocketDataQueue`` -- by :user:`bdraco`.
206+
207+
208+
*Related issues and pull requests on GitHub:*
209+
:issue:`9685`.
210+
211+
212+
213+
- Changed ``ClientRequest.request_info`` to be a `NamedTuple` to improve client performance -- by :user:`bdraco`.
214+
215+
216+
*Related issues and pull requests on GitHub:*
217+
:issue:`9692`.
218+
219+
220+
221+
222+
Packaging updates and notes for downstreams
223+
-------------------------------------------
224+
225+
- Switched to using the :mod:`propcache <propcache.api>` package for property caching
226+
-- by :user:`bdraco`.
227+
228+
The :mod:`propcache <propcache.api>` package is derived from the property caching
229+
code in :mod:`yarl` and has been broken out to avoid maintaining it for multiple
230+
projects.
231+
232+
233+
*Related issues and pull requests on GitHub:*
234+
:issue:`9394`.
235+
236+
237+
238+
- Separated ``aiohttp.http_websocket`` into multiple files to make it easier to maintain -- by :user:`bdraco`.
239+
240+
241+
*Related issues and pull requests on GitHub:*
242+
:issue:`9542`, :issue:`9552`.
243+
244+
245+
246+
247+
Contributor-facing changes
248+
--------------------------
249+
250+
- Changed diagram images generator from ``blockdiag`` to ``GraphViz``.
251+
Generating documentation now requires the GraphViz executable to be included in $PATH or sphinx build configuration.
252+
253+
254+
*Related issues and pull requests on GitHub:*
255+
:issue:`9359`.
256+
257+
258+
259+
260+
Miscellaneous internal changes
261+
------------------------------
262+
263+
- Added flake8 settings to avoid some forms of implicit concatenation. -- by :user:`booniepepper`.
264+
265+
266+
*Related issues and pull requests on GitHub:*
267+
:issue:`7731`.
268+
269+
270+
271+
- Enabled keep-alive support on proxies (which was originally disabled several years ago) -- by :user:`Dreamsorcerer`.
272+
273+
274+
*Related issues and pull requests on GitHub:*
275+
:issue:`8920`.
276+
277+
278+
279+
- Changed web entry point to not listen on TCP when only a Unix path is passed -- by :user:`Dreamsorcerer`.
280+
281+
282+
*Related issues and pull requests on GitHub:*
283+
:issue:`9033`.
284+
285+
286+
287+
- Disabled automatic retries of failed requests in :class:`aiohttp.test_utils.TestClient`'s client session
288+
(which could potentially hide errors in tests) -- by :user:`ShubhAgarwal-dev`.
289+
290+
291+
*Related issues and pull requests on GitHub:*
292+
:issue:`9141`.
293+
294+
295+
296+
- Changed web ``keepalive_timeout`` default to around an hour in order to reduce race conditions on reverse proxies -- by :user:`Dreamsorcerer`.
297+
298+
299+
*Related issues and pull requests on GitHub:*
300+
:issue:`9285`.
301+
302+
303+
304+
- Reduced memory required for stream objects created during the client request lifecycle -- by :user:`bdraco`.
305+
306+
307+
*Related issues and pull requests on GitHub:*
308+
:issue:`9407`.
309+
310+
311+
312+
- Improved performance of the internal ``DataQueue`` -- by :user:`bdraco`.
313+
314+
315+
*Related issues and pull requests on GitHub:*
316+
:issue:`9659`.
317+
318+
319+
320+
- Improved performance of calling ``receive`` for WebSockets for the most common message types -- by :user:`bdraco`.
321+
322+
323+
*Related issues and pull requests on GitHub:*
324+
:issue:`9679`.
325+
326+
327+
328+
- Replace internal helper methods ``method_must_be_empty_body`` and ``status_code_must_be_empty_body`` with simple `set` lookups -- by :user:`bdraco`.
329+
330+
331+
*Related issues and pull requests on GitHub:*
332+
:issue:`9722`.
333+
334+
335+
336+
- Improved performance of :py:class:`aiohttp.BaseConnector` when there is no ``limit_per_host`` -- by :user:`bdraco`.
337+
338+
339+
*Related issues and pull requests on GitHub:*
340+
:issue:`9756`.
341+
342+
343+
344+
- Improved performance of sending HTTP requests when there is no body -- by :user:`bdraco`.
345+
346+
347+
*Related issues and pull requests on GitHub:*
348+
:issue:`9757`.
349+
350+
351+
352+
- Improved performance of the ``WebsocketWriter`` when the protocol is not paused -- by :user:`bdraco`.
353+
354+
355+
*Related issues and pull requests on GitHub:*
356+
:issue:`9796`.
357+
358+
359+
360+
- Implemented zero copy writes for ``StreamWriter`` -- by :user:`bdraco`.
361+
362+
363+
*Related issues and pull requests on GitHub:*
364+
:issue:`9839`.
365+
366+
367+
368+
369+
----
370+
371+
13372
3.10.11 (2024-11-13)
14373
====================
15374

CHANGES/3945.breaking.rst

-1
This file was deleted.

CHANGES/6257.feature

-4
This file was deleted.

CHANGES/6652.bugfix.rst

-1
This file was deleted.

CHANGES/6800.bugfix.rst

-1
This file was deleted.

CHANGES/7731.misc.rst

-1
This file was deleted.

CHANGES/7941.feature

-1
This file was deleted.

CHANGES/8612.feature.rst

-1
This file was deleted.

CHANGES/8797.breaking.rst

-1
This file was deleted.

CHANGES/8909.breaking.rst

-1
This file was deleted.

CHANGES/8920.misc.rst

-1
This file was deleted.

CHANGES/8956.feature.rst

-1
This file was deleted.

CHANGES/8966.feature.rst

-1
This file was deleted.

CHANGES/8977.bugfix.rst

-1
This file was deleted.

CHANGES/9033.misc.rst

-1
This file was deleted.

0 commit comments

Comments
 (0)