Skip to content

Commit

Permalink
Merge branch '3.11'
Browse files Browse the repository at this point in the history
  • Loading branch information
bdraco committed Nov 13, 2024
2 parents b7d0d8a + c311912 commit 4adb061
Show file tree
Hide file tree
Showing 51 changed files with 359 additions and 63 deletions.
359 changes: 359 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,365 @@

.. towncrier release notes start
3.11.0 (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`.



- 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`.




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`.


*Related issues and pull requests on GitHub:*
:issue:`9348`.



- Updated :py:class:`~aiohttp.ClientSession` to support paths in ``base_url`` parameter.
``base_url`` paths must end with a ``/`` -- by :user:`Cycloctane`.


*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`.




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`.



- ``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 <propcache.api>` package for property caching
-- by :user:`bdraco`.

The :mod:`propcache <propcache.api>` 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 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`.



- 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.11 (2024-11-13)
====================

Expand Down
1 change: 0 additions & 1 deletion CHANGES/3945.breaking.rst

This file was deleted.

4 changes: 0 additions & 4 deletions CHANGES/6257.feature

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/6652.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/6800.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/7731.misc.rst

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/7941.feature

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/8612.feature.rst

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/8797.breaking.rst

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/8909.breaking.rst

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/8920.misc.rst

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/8956.feature.rst

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/8966.feature.rst

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/8977.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/9033.misc.rst

This file was deleted.

Loading

0 comments on commit 4adb061

Please sign in to comment.