Releases: aio-libs/aiohttp
3.11.15
Bug fixes
-
Reverted explicitly closing sockets if an exception is raised during
create_connection-- by :user:bdraco.This change originally appeared in aiohttp 3.11.13
Related issues and pull requests on GitHub:
#10464, #10617, #10656.
Miscellaneous internal changes
-
Improved performance of WebSocket buffer handling -- by :user:
bdraco.Related issues and pull requests on GitHub:
#10601. -
Improved performance of serializing headers -- by :user:
bdraco.Related issues and pull requests on GitHub:
#10625.
3.11.14
Bug fixes
-
Fixed an issue where dns queries were delayed indefinitely when an exception occurred in a
trace.send_dns_cache_miss
-- by :user:logioniz.Related issues and pull requests on GitHub:
#10529. -
Fixed DNS resolution on platforms that don't support
socket.AI_ADDRCONFIG-- by :user:maxbachmann.Related issues and pull requests on GitHub:
#10542. -
The connector now raises :exc:
aiohttp.ClientConnectionErrorinstead of :exc:OSErrorwhen failing to explicitly close the socket after :py:meth:asyncio.loop.create_connectionfails -- by :user:bdraco.Related issues and pull requests on GitHub:
#10551. -
Break cyclic references at connection close when there was a traceback -- by :user:
bdraco.Special thanks to :user:
availovfor reporting the issue.Related issues and pull requests on GitHub:
#10556. -
Break cyclic references when there is an exception handling a request -- by :user:
bdraco.Related issues and pull requests on GitHub:
#10569.
Features
-
Improved logging on non-overlapping WebSocket client protocols to include the remote address -- by :user:
bdraco.Related issues and pull requests on GitHub:
#10564.
Miscellaneous internal changes
-
Improved performance of parsing content types by adding a cache in the same manner currently done with mime types -- by :user:
bdraco.Related issues and pull requests on GitHub:
#10552.
3.11.13
Bug fixes
-
Removed a break statement inside the finally block in :py:class:
~aiohttp.web.RequestHandler
-- by :user:Cycloctane.Related issues and pull requests on GitHub:
#10434. -
Changed connection creation to explicitly close sockets if an exception is raised in the event loop's
create_connectionmethod -- by :user:top-oai.Related issues and pull requests on GitHub:
#10464.
Packaging updates and notes for downstreams
-
Fixed test
test_write_large_payload_deflate_compression_data_in_eof_writelinesfailing with Python 3.12.9+ or 3.13.2+ -- by :user:bdraco.Related issues and pull requests on GitHub:
#10423.
Miscellaneous internal changes
-
Added human-readable error messages to the exceptions for WebSocket disconnects due to PONG not being received -- by :user:
bdraco.Previously, the error messages were empty strings, which made it hard to determine what went wrong.
Related issues and pull requests on GitHub:
#10422.
3.11.12
Bug fixes
-
MultipartForm.decode()now follows RFC1341 7.2.1 with aCRLFafter the boundary
-- by :user:imnotjames.Related issues and pull requests on GitHub:
#10270. -
Restored the missing
total_bytesattribute toEmptyStreamReader-- by :user:bdraco.Related issues and pull requests on GitHub:
#10387.
Features
-
Updated :py:func:
~aiohttp.requestto make it accept_RequestOptionskwargs.
-- by :user:Cycloctane.Related issues and pull requests on GitHub:
#10300. -
Improved logging of HTTP protocol errors to include the remote address -- by :user:
bdraco.Related issues and pull requests on GitHub:
#10332.
Improved documentation
-
Added
aiohttp-openmetricsto list of third-party libraries -- by :user:jelmer.Related issues and pull requests on GitHub:
#10304.
Packaging updates and notes for downstreams
-
Added missing files to the source distribution to fix
Makefiletargets.
Added acythonize-nodepstarget to run Cython without invoking pip to install dependencies.Related issues and pull requests on GitHub:
#10366. -
Started building armv7l musllinux wheels -- by :user:
bdraco.Related issues and pull requests on GitHub:
#10404.
Contributor-facing changes
-
The CI/CD workflow has been updated to use
upload-artifactv4 anddownload-artifactv4 GitHub Actions -- by :user:silamon.Related issues and pull requests on GitHub:
#10281.
Miscellaneous internal changes
-
Restored support for zero copy writes when using Python 3.12 versions 3.12.9 and later or Python 3.13.2+ -- by :user:
bdraco.Zero copy writes were previously disabled due to :cve:
2024-12254which is resolved in these Python versions.Related issues and pull requests on GitHub:
#10137.
3.11.11
Bug fixes
-
Updated :py:meth:
~aiohttp.ClientSession.requestto reuse thequote_cookiesetting fromClientSession._cookie_jarwhen processing cookies parameter.
-- by :user:Cycloctane.Related issues and pull requests on GitHub:
#10093. -
Fixed type of
SSLContextfor some static type checkers (e.g. pyright).Related issues and pull requests on GitHub:
#10099. -
Updated :meth:
aiohttp.web.StreamResponse.writeannotation to also allow :class:bytearrayand :class:memoryviewas inputs -- by :user:cdce8p.Related issues and pull requests on GitHub:
#10154. -
Fixed a hang where a connection previously used for a streaming
download could be returned to the pool in a paused state.
-- by :user:javitonino.Related issues and pull requests on GitHub:
#10169.
Features
-
Enabled ALPN on default SSL contexts. This improves compatibility with some
proxies which don't work without this extension.
-- by :user:Cycloctane.Related issues and pull requests on GitHub:
#10156.
Miscellaneous internal changes
-
Fixed an infinite loop that can occur when using aiohttp in combination
withasync-solipsism_ -- by :user:bmerry... _async-solipsism: https://github.com/bmerry/async-solipsism
Related issues and pull requests on GitHub:
#10149.
3.11.10
Bug fixes
-
Fixed race condition in :class:
aiohttp.web.FileResponsethat could have resulted in an incorrect response if the file was replaced on the file system duringprepare-- by :user:bdraco. -
Replaced deprecated call to :func:
mimetypes.guess_typewith :func:mimetypes.guess_file_typewhen using Python 3.13+ -- by :user:bdraco.Related issues and pull requests on GitHub:
#10102. -
Disabled zero copy writes in the
StreamWriter-- by :user:bdraco.Related issues and pull requests on GitHub:
#10125.
3.11.9
Bug fixes
-
Fixed invalid method logging unexpected being logged at exception level on subsequent connections -- by :user:
bdraco.
Miscellaneous internal changes
-
Improved performance of parsing headers when using the C parser -- by :user:
bdraco.Related issues and pull requests on GitHub:
#10073.
3.11.8
Miscellaneous internal changes
-
Improved performance of creating :class:
aiohttp.ClientResponseobjects when there are no cookies -- by :user:bdraco.Related issues and pull requests on GitHub:
#10029. -
Improved performance of creating :class:
aiohttp.ClientResponseobjects -- by :user:bdraco.Related issues and pull requests on GitHub:
#10030. -
Improved performances of creating objects during the HTTP request lifecycle -- by :user:
bdraco.Related issues and pull requests on GitHub:
#10037. -
Improved performance of constructing :class:
aiohttp.web.Responsewith headers -- by :user:bdraco.Related issues and pull requests on GitHub:
#10043. -
Improved performance of making requests when there are no auto headers to skip -- by :user:
bdraco.Related issues and pull requests on GitHub:
#10049. -
Downgraded logging of invalid HTTP method exceptions on the first request to debug level -- by :user:
bdraco.HTTP requests starting with an invalid method are relatively common, especially when connected to the public internet, because browsers or other clients may try to speak SSL to a plain-text server or vice-versa. These exceptions can quickly fill the log with noise when nothing is wrong.
Related issues and pull requests on GitHub:
#10055.
3.11.7
Bug fixes
-
Fixed the HTTP client not considering the connector's
force_closevalue when setting theConnectionheader -- by :user:bdraco.Related issues and pull requests on GitHub:
#10003.
Miscellaneous internal changes
-
Improved performance of serializing HTTP headers -- by :user:
bdraco.Related issues and pull requests on GitHub:
#10014.