Skip to content

Commit

Permalink
Release 3.10.0b0 (#8531)
Browse files Browse the repository at this point in the history
  • Loading branch information
bdraco authored Jul 22, 2024
1 parent 6f17a67 commit 948a4c5
Show file tree
Hide file tree
Showing 30 changed files with 271 additions and 81 deletions.
270 changes: 270 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,276 @@

.. towncrier release notes start
3.10.0b0 (2024-07-22)
=========================

Bug fixes
---------

- Fixed server response headers for ``Content-Type`` and ``Content-Encoding`` for
static compressed files -- by :user:`steverep`.

Server will now respond with a ``Content-Type`` appropriate for the compressed
file (e.g. ``"application/gzip"``), and omit the ``Content-Encoding`` header.
Users should expect that most clients will no longer decompress such responses
by default.


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



- Fix duplicate cookie expiration calls in the CookieJar implementation


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



- Fix ``AsyncResolver`` to match ``ThreadedResolver`` behavior
-- by :user:`bdraco`.

On system with IPv6 support, the :py:class:`~aiohttp.resolver.AsyncResolver` would not fallback
to providing A records when AAAA records were not available.
Additionally, unlike the :py:class:`~aiohttp.resolver.ThreadedResolver`, the :py:class:`~aiohttp.resolver.AsyncResolver`
did not handle link-local addresses correctly.

This change makes the behavior consistent with the :py:class:`~aiohttp.resolver.ThreadedResolver`.


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



- Fix ``ws_connect`` not respecting `receive_timeout`` on WS(S) connection.
-- by :user:`arcivanov`.


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



- Removed blocking I/O in the event loop for static resources and refactored
exception handling -- by :user:`steverep`.

File system calls when handling requests for static routes were moved to a
separate thread to potentially improve performance. Exception handling
was tightened in order to only return 403 Forbidden or 404 Not Found responses
for expected scenarios; 500 Internal Server Error would be returned for any
unknown errors.


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




Features
--------

- Add a Request.wait_for_disconnection() method, as means of allowing request handlers to be notified of premature client disconnections.


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



- Added 5 new exceptions: :py:exc:`~aiohttp.InvalidUrlClientError`, :py:exc:`~aiohttp.RedirectClientError`,
:py:exc:`~aiohttp.NonHttpUrlClientError`, :py:exc:`~aiohttp.InvalidUrlRedirectClientError`,
:py:exc:`~aiohttp.NonHttpUrlRedirectClientError`

:py:exc:`~aiohttp.InvalidUrlRedirectClientError`, :py:exc:`~aiohttp.NonHttpUrlRedirectClientError`
are raised instead of :py:exc:`ValueError` or :py:exc:`~aiohttp.InvalidURL` when the redirect URL is invalid. Classes
:py:exc:`~aiohttp.InvalidUrlClientError`, :py:exc:`~aiohttp.RedirectClientError`,
:py:exc:`~aiohttp.NonHttpUrlClientError` are base for them.

The :py:exc:`~aiohttp.InvalidURL` now exposes a ``description`` property with the text explanation of the error details.

-- by :user:`setla`, :user:`AraHaan`, and :user:`bdraco`


*Related issues and pull requests on GitHub:*
:issue:`2507`, :issue:`3315`, :issue:`6722`, :issue:`8481`, :issue:`8482`.



- Added a feature to retry closed connections automatically for idempotent methods. -- by :user:`Dreamsorcerer`


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



- Implement filter_cookies() with domain-matching and path-matching on the keys, instead of testing every single cookie.
This may break existing cookies that have been saved with `CookieJar.save()`. Cookies can be migrated with this script::

import pickle
with file_path.open("rb") as f:
cookies = pickle.load(f)

morsels = [(name, m) for c in cookies.values() for name, m in c.items()]
cookies.clear()
for name, m in morsels:
cookies[(m["domain"], m["path"].rstrip("/"))][name] = m

with file_path.open("wb") as f:
pickle.dump(cookies, f, pickle.HIGHEST_PROTOCOL)


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



- Separated connection and socket timeout errors, from ServerTimeoutError.


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



- Implement happy eyeballs


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



- Added server capability to check for static files with Brotli compression via a ``.br`` extension -- by :user:`steverep`.


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




Improved documentation
----------------------

- Add documentation for ``aiohttp.web.FileResponse``.


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



- Improve the docs for the `ssl` params.


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




Contributor-facing changes
--------------------------

- Enabled HTTP parser tests originally intended for 3.9.2 release -- by :user:`pajod`.


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




Miscellaneous internal changes
------------------------------

- Improved URL handler resolution time by indexing resources in the UrlDispatcher.
For applications with a large number of handlers, this should increase performance significantly.
-- by :user:`bdraco`


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



- Add `nacl_middleware <https://github.com/CosmicDNA/nacl_middleware>`_ to the list of middlewares in the third party section of the documentation.


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



- Minor improvements to static typing -- by :user:`Dreamsorcerer`.


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



- Added a 3.11-specific overloads to ``ClientSession`` -- by :user:`max-muoto`.


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



- Simplified path checks for ``UrlDispatcher.add_static()`` method -- by :user:`steverep`.


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



- Avoid creating a future on every websocket receive -- by :user:`bdraco`.


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



- Use identity checks for all ``WSMsgType`` type compares -- by :user:`bdraco`.


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



- When using Python 3.12 or later, the writer is no longer scheduled on the event loop if it can finish synchronously. Avoiding event loop scheduling reduces latency and improves performance. -- by :user:`bdraco`.


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



- Restore :py:class:`~aiohttp.resolver.AsyncResolver` to be the default resolver. -- by :user:`bdraco`.

:py:class:`~aiohttp.resolver.AsyncResolver` was disabled by default because
of IPv6 compatibility issues. These issues have been resolved and
:py:class:`~aiohttp.resolver.AsyncResolver` is again now the default resolver.


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




----


3.9.5 (2024-04-16)
==================

Expand Down
1 change: 0 additions & 1 deletion CHANGES/2492.feature

This file was deleted.

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

This file was deleted.

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

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/3958.doc

This file was deleted.

7 changes: 0 additions & 7 deletions CHANGES/4462.bugfix.rst

This file was deleted.

12 changes: 0 additions & 12 deletions CHANGES/6722.feature

This file was deleted.

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

This file was deleted.

14 changes: 0 additions & 14 deletions CHANGES/7583.feature

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/7784.bugfix

This file was deleted.

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

This file was deleted.

3 changes: 0 additions & 3 deletions CHANGES/7829.misc

This file was deleted.

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

This file was deleted.

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

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/8088.contrib.rst

This file was deleted.

9 changes: 0 additions & 9 deletions CHANGES/8270.bugfix.rst

This file was deleted.

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

This file was deleted.

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

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/8403.doc.rst

This file was deleted.

2 changes: 0 additions & 2 deletions CHANGES/8444.bugfix

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

8 changes: 0 additions & 8 deletions CHANGES/8507.bugfix.rst

This file was deleted.

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

This file was deleted.

5 changes: 0 additions & 5 deletions CHANGES/8522.misc.rst

This file was deleted.

2 changes: 1 addition & 1 deletion aiohttp/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "3.10.0.dev0"
__version__ = "3.10.0b0"

from typing import TYPE_CHECKING, Tuple

Expand Down

0 comments on commit 948a4c5

Please sign in to comment.