Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not merge #7846

Merged
merged 62 commits into from
Nov 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
9764df2
Release v3.9.0b0 (#7674)
Dreamsorcerer Oct 7, 2023
e43e931
Bump aiodns from 3.0.0 to 3.1.0 (#7683)
dependabot[bot] Oct 9, 2023
492e8ee
[PR #7684/c0ba7e53 backport][3.9] Make setup.cfg packages explicit (#…
patchback[bot] Oct 9, 2023
dde1446
[PR #7684/30850ba backport][3.9] Fix #7306 - Set ClientWebSocketRespo…
ttsia Oct 11, 2023
9b92b5d
Bump mypy from 1.5.1 to 1.6.0 (#7691)
dependabot[bot] Oct 12, 2023
6791b9e
[PR #7658/39f8ff22 backport][3.9] Implement WebSocketResponse.get_ext…
patchback[bot] Oct 12, 2023
6104dde
[PR #7701/312f747d backport][3.9] Require full version and method reg…
patchback[bot] Oct 15, 2023
46b9906
[backport] feature: allow link argument to be set to None/empty in HT…
hhromic Oct 15, 2023
f61a4e7
Bump pre-commit from 3.4.0 to 3.5.0 (#7707)
dependabot[bot] Oct 16, 2023
c65a77c
[PR #7713/d697d421 backport][3.9] Add check to validate absolute URIs…
patchback[bot] Oct 16, 2023
3ea369b
Bump actions/checkout from 3 to 4 (#7579)
dependabot[bot] Oct 16, 2023
b0750ee
Bump docker/setup-qemu-action from 2 to 3 (#7602)
dependabot[bot] Oct 16, 2023
28e54d3
Bump cherry-picker from 2.1.0 to 2.2.0 (#7693)
dependabot[bot] Oct 16, 2023
a17ba73
Bump aiodns from 3.1.0 to 3.1.1 (#7705)
dependabot[bot] Oct 16, 2023
bc25c89
[PR #7702/5b4b7b84 backport][3.9] Update README.rst (#7717)
patchback[bot] Oct 16, 2023
843a5d9
[PR #7716/5a499d04 backport][3.9] Fix unhandled exception for invalid…
patchback[bot] Oct 17, 2023
ededb22
Bump cython from 3.0.3 to 3.0.4 (#7727)
dependabot[bot] Oct 18, 2023
e181a0e
Bump mypy from 1.6.0 to 1.6.1 (#7728)
dependabot[bot] Oct 18, 2023
4075c65
Backport 493f06797654c383242f0e8007f6e06b818a1fbc to 3.9 (#7730)
kenballus Oct 18, 2023
e32041e
Bump pytest-mock from 3.11.1 to 3.12.0 (#7735)
dependabot[bot] Oct 20, 2023
bcdd4a5
Backport a7bc5e9eeae7c5c90898411962e9a74bf10a9cef to 3.9 (#7736)
gruebel Oct 20, 2023
4803006
[PR #7733/3b68b2f3 backport][3.9] Fix, update, and improve client exc…
patchback[bot] Oct 20, 2023
38420e5
[PR #7729/93c9abbd backport][3.9] Reenable uvloop on Python 3.12 (#7740)
patchback[bot] Oct 23, 2023
8702561
Bump actions/setup-node from 2 to 4 (#7742)
dependabot[bot] Oct 24, 2023
e36bead
Bump towncrier from 23.6.0 to 23.10.0 (#7743)
dependabot[bot] Oct 24, 2023
463f28c
Bump pytest from 7.4.2 to 7.4.3 (#7747)
dependabot[bot] Oct 25, 2023
adb3b3a
[PR #7749/0dc39e46 backport][3.9] Enable testing merge queues @ GitHu…
patchback[bot] Oct 26, 2023
b8c0c4a
Fix warning displayed by default (#7677) (#7752)
Dreamsorcerer Oct 26, 2023
d2dbe74
[PR #7753/3b297674 backport][3.9] Make regex range more explicit (#7757)
patchback[bot] Oct 27, 2023
487cc11
[PR #7758/c70e8045 backport][3.9] Remove jquery from websockets examp…
patchback[bot] Oct 28, 2023
2ee44e0
[PR #7761/7a19191e backport][3.9] Stop binding to all network interfa…
patchback[bot] Oct 29, 2023
5e62fee
Fix py http parser not treating 204/304/1xx as an empty body (#7755) …
bdraco Oct 31, 2023
d179f09
Bump cython from 3.0.4 to 3.0.5 (#7769)
dependabot[bot] Oct 31, 2023
598334f
Fix CONNECT always being treated as having an empty body (#7772) (#7774)
bdraco Oct 31, 2023
9f43c38
Ensure empty body response for 1xx/204/304 per RFC 9112 sec 6.3 (#775…
bdraco Nov 2, 2023
379ee7c
Redesign shutdown process (#7780)
Dreamsorcerer Nov 3, 2023
cdfed8b
[PR #7776/0c938122 backport][3.9] Bugfix Edge Case Handling for Respo…
patchback[bot] Nov 3, 2023
79f5266
Fix missing eof when writer cancelled (#7764) (#7781)
Dreamsorcerer Nov 3, 2023
8f27edf
Possibly fix some flaky tests (#7783)
Dreamsorcerer Nov 3, 2023
798c25d
Fix coroutine wrapper to await after exception (#7785) (#7786)
Dreamsorcerer Nov 3, 2023
987dccf
Release v3.9.0b1 (#7788)
Dreamsorcerer Nov 3, 2023
d8324a6
Bump slotscheck from 0.17.0 to 0.17.1 (#7792)
dependabot[bot] Nov 6, 2023
9d07fe4
Bump python-on-whales from 0.65.0 to 0.66.0 (#7793)
dependabot[bot] Nov 6, 2023
476c4f2
[PR #7797/27c308b1 backport][3.9] Fix increase in latency with small …
patchback[bot] Nov 7, 2023
e4ae01c
Add HTTP method validation (#6533) (#7806)
Dreamsorcerer Nov 8, 2023
6420d4d
Bump sphinxcontrib-towncrier from 0.3.2a0 to 0.4.0a0 (#7810)
dependabot[bot] Nov 9, 2023
328b94f
Bump towncrier from 23.10.0 to 23.11.0 (#7811)
dependabot[bot] Nov 9, 2023
ff40908
[PR #7809/7ed2dd37 backport][3.9] Update pyupgrade to --py37-plus (#7…
patchback[bot] Nov 9, 2023
fffc433
[PR #7775/5f64328c backport][3.9] Add codespell support: pre-commit e…
patchback[bot] Nov 9, 2023
85ec0e4
[PR #7819/dfc3f899 backport][3.9] Skip filtering ``CookieJar`` when t…
Rongronggg9 Nov 12, 2023
50db681
[PR #7820/536c80e2 backport][3.9] Bump pypy to 3.9 (#7823)
patchback[bot] Nov 12, 2023
9d498ca
Bump sphinx from 7.1.1 to 7.2.6 (#7606)
dependabot[bot] Nov 12, 2023
c0f9017
[PR #7821/366ba40f backport][3.9] Only check origin if insecure schem…
patchback[bot] Nov 12, 2023
cb94533
Ensure writer is always reset on completion (#7815) (#7826)
Dreamsorcerer Nov 12, 2023
63a805e
Bump python-on-whales from 0.66.0 to 0.67.0 (#7832)
dependabot[bot] Nov 13, 2023
9d712f2
Bump mypy from 1.6.1 to 1.7.0 (#7833)
dependabot[bot] Nov 13, 2023
53476df
Disallow arbitrary sequence types in version (#7835) (#7836)
Dreamsorcerer Nov 13, 2023
e07a1bd
Use timestamp instead of datetime to achieve faster cookie expiration…
Dreamsorcerer Nov 14, 2023
c806814
Release v3.9.0rc0 (#7838)
Dreamsorcerer Nov 14, 2023
5d59d3d
Release v3.9.0rc0 (#7840)
Dreamsorcerer Nov 14, 2023
45b2c2c
Release v3.9.0 (#7843)
Dreamsorcerer Nov 18, 2023
6f76673
Merge 3.9
Dreamsorcerer Nov 18, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
292 changes: 292 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,298 @@

.. towncrier release notes start

3.9.0 (2023-11-18)
==================

Features
--------

- Introduced ``AppKey`` for static typing support of ``Application`` storage.
See https://docs.aiohttp.org/en/stable/web_advanced.html#application-s-config

`#5864 <https://github.com/aio-libs/aiohttp/issues/5864>`_

- Added a graceful shutdown period which allows pending tasks to complete before the application's cleanup is called.
The period can be adjusted with the ``shutdown_timeout`` parameter. -- by :user:`Dreamsorcerer`.
See https://docs.aiohttp.org/en/latest/web_advanced.html#graceful-shutdown

`#7188 <https://github.com/aio-libs/aiohttp/issues/7188>`_

- Added `handler_cancellation <https://docs.aiohttp.org/en/stable/web_advanced.html#web-handler-cancellation>`_ parameter to cancel web handler on client disconnection. -- by :user:`mosquito`
This (optionally) reintroduces a feature removed in a previous release.
Recommended for those looking for an extra level of protection against denial-of-service attacks.

`#7056 <https://github.com/aio-libs/aiohttp/issues/7056>`_

- Added support for setting response header parameters ``max_line_size`` and ``max_field_size``.

`#2304 <https://github.com/aio-libs/aiohttp/issues/2304>`_

- Added ``auto_decompress`` parameter to ``ClientSession.request`` to override ``ClientSession._auto_decompress``. -- by :user:`Daste745`

`#3751 <https://github.com/aio-libs/aiohttp/issues/3751>`_

- Changed ``raise_for_status`` to allow a coroutine.

`#3892 <https://github.com/aio-libs/aiohttp/issues/3892>`_

- Added client brotli compression support (optional with runtime check).

`#5219 <https://github.com/aio-libs/aiohttp/issues/5219>`_

- Added ``client_max_size`` to ``BaseRequest.clone()`` to allow overriding the request body size. -- :user:`anesabml`.

`#5704 <https://github.com/aio-libs/aiohttp/issues/5704>`_

- Added a middleware type alias ``aiohttp.typedefs.Middleware``.

`#5898 <https://github.com/aio-libs/aiohttp/issues/5898>`_

- Exported ``HTTPMove`` which can be used to catch any redirection request
that has a location -- :user:`dreamsorcerer`.

`#6594 <https://github.com/aio-libs/aiohttp/issues/6594>`_

- Changed the ``path`` parameter in ``web.run_app()`` to accept a ``pathlib.Path`` object.

`#6839 <https://github.com/aio-libs/aiohttp/issues/6839>`_

- Performance: Skipped filtering ``CookieJar`` when the jar is empty or all cookies have expired.

`#7819 <https://github.com/aio-libs/aiohttp/issues/7819>`_

- Performance: Only check origin if insecure scheme and there are origins to treat as secure, in ``CookieJar.filter_cookies()``.

`#7821 <https://github.com/aio-libs/aiohttp/issues/7821>`_

- Performance: Used timestamp instead of ``datetime`` to achieve faster cookie expiration in ``CookieJar``.

`#7824 <https://github.com/aio-libs/aiohttp/issues/7824>`_

- Added support for passing a custom server name parameter to HTTPS connection.

`#7114 <https://github.com/aio-libs/aiohttp/issues/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`.

`#7131 <https://github.com/aio-libs/aiohttp/issues/7131>`_

- Turned access log into no-op when the logger is disabled.

`#7240 <https://github.com/aio-libs/aiohttp/issues/7240>`_

- Added typing information to ``RawResponseMessage``. -- by :user:`Gobot1234`

`#7365 <https://github.com/aio-libs/aiohttp/issues/7365>`_

- Removed ``async-timeout`` for Python 3.11+ (replaced with ``asyncio.timeout()`` on newer releases).

`#7502 <https://github.com/aio-libs/aiohttp/issues/7502>`_

- Added support for ``brotlicffi`` as an alternative to ``brotli`` (fixing Brotli support on PyPy).

`#7611 <https://github.com/aio-libs/aiohttp/issues/7611>`_

- Added ``WebSocketResponse.get_extra_info()`` to access a protocol transport's extra info.

`#7078 <https://github.com/aio-libs/aiohttp/issues/7078>`_

- Allow ``link`` argument to be set to None/empty in HTTP 451 exception.

`#7689 <https://github.com/aio-libs/aiohttp/issues/7689>`_



Bugfixes
--------

- Implemented stripping the trailing dots from fully-qualified domain names in ``Host`` headers and TLS context when acting as an HTTP client.
This allows the client to connect to URLs with FQDN host name like ``https://example.com./``.
-- by :user:`martin-sucha`.

`#3636 <https://github.com/aio-libs/aiohttp/issues/3636>`_

- Fixed client timeout not working when incoming data is always available without waiting. -- by :user:`Dreamsorcerer`.

`#5854 <https://github.com/aio-libs/aiohttp/issues/5854>`_

- Fixed ``readuntil`` to work with a delimiter of more than one character.

`#6701 <https://github.com/aio-libs/aiohttp/issues/6701>`_

- Added ``__repr__`` to ``EmptyStreamReader`` to avoid ``AttributeError``.

`#6916 <https://github.com/aio-libs/aiohttp/issues/6916>`_

- Fixed bug when using ``TCPConnector`` with ``ttl_dns_cache=0``.

`#7014 <https://github.com/aio-libs/aiohttp/issues/7014>`_

- Fixed response returned from expect handler being thrown away. -- by :user:`Dreamsorcerer`

`#7025 <https://github.com/aio-libs/aiohttp/issues/7025>`_

- Avoided raising ``UnicodeDecodeError`` in multipart and in HTTP headers parsing.

`#7044 <https://github.com/aio-libs/aiohttp/issues/7044>`_

- Changed ``sock_read`` timeout to start after writing has finished, avoiding read timeouts caused by an unfinished write. -- by :user:`dtrifiro`

`#7149 <https://github.com/aio-libs/aiohttp/issues/7149>`_

- Fixed missing query in tracing method URLs when using ``yarl`` 1.9+.

`#7259 <https://github.com/aio-libs/aiohttp/issues/7259>`_

- Changed max 32-bit timestamp to an aware datetime object, for consistency with the non-32-bit one, and to avoid a ``DeprecationWarning`` on Python 3.12.

`#7302 <https://github.com/aio-libs/aiohttp/issues/7302>`_

- Fixed ``EmptyStreamReader.iter_chunks()`` never ending. -- by :user:`mind1m`

`#7616 <https://github.com/aio-libs/aiohttp/issues/7616>`_

- Fixed a rare ``RuntimeError: await wasn't used with future`` exception. -- by :user:`stalkerg`

`#7785 <https://github.com/aio-libs/aiohttp/issues/7785>`_

- Fixed issue with insufficient HTTP method and version validation.

`#7700 <https://github.com/aio-libs/aiohttp/issues/7700>`_

- Added check to validate that absolute URIs have schemes.

`#7712 <https://github.com/aio-libs/aiohttp/issues/7712>`_

- Fixed unhandled exception when Python HTTP parser encounters unpaired Unicode surrogates.

`#7715 <https://github.com/aio-libs/aiohttp/issues/7715>`_

- Updated parser to disallow invalid characters in header field names and stop accepting LF as a request line separator.

`#7719 <https://github.com/aio-libs/aiohttp/issues/7719>`_

- Fixed Python HTTP parser not treating 204/304/1xx as an empty body.

`#7755 <https://github.com/aio-libs/aiohttp/issues/7755>`_

- Ensure empty body response for 1xx/204/304 per RFC 9112 sec 6.3.

`#7756 <https://github.com/aio-libs/aiohttp/issues/7756>`_

- Fixed an issue when a client request is closed before completing a chunked payload. -- by :user:`Dreamsorcerer`

`#7764 <https://github.com/aio-libs/aiohttp/issues/7764>`_

- Edge Case Handling for ResponseParser for missing reason value.

`#7776 <https://github.com/aio-libs/aiohttp/issues/7776>`_

- Fixed ``ClientWebSocketResponse.close_code`` being erroneously set to ``None`` when there are concurrent async tasks receiving data and closing the connection.

`#7306 <https://github.com/aio-libs/aiohttp/issues/7306>`_

- Added HTTP method validation.

`#6533 <https://github.com/aio-libs/aiohttp/issues/6533>`_

- Fixed arbitrary sequence types being allowed to inject values via version parameter. -- by :user:`Dreamsorcerer`

`#7835 <https://github.com/aio-libs/aiohttp/issues/7835>`_

- Performance: Fixed increase in latency with small messages from websocket compression changes.

`#7797 <https://github.com/aio-libs/aiohttp/issues/7797>`_



Improved Documentation
----------------------

- Fixed the `ClientResponse.release`'s type in the doc. Changed from `comethod` to `method`.

`#5836 <https://github.com/aio-libs/aiohttp/issues/5836>`_

- Added information on behavior of base_url parameter in `ClientSession`.

`#6647 <https://github.com/aio-libs/aiohttp/issues/6647>`_

- Fixed `ClientResponseError` docs.

`#6700 <https://github.com/aio-libs/aiohttp/issues/6700>`_

- Updated Redis code examples to follow the latest API.

`#6907 <https://github.com/aio-libs/aiohttp/issues/6907>`_

- Added a note about possibly needing to update headers when using ``on_response_prepare``. -- by :user:`Dreamsorcerer`

`#7283 <https://github.com/aio-libs/aiohttp/issues/7283>`_

- Completed ``trust_env`` parameter description to honor ``wss_proxy``, ``ws_proxy`` or ``no_proxy`` env.

`#7325 <https://github.com/aio-libs/aiohttp/issues/7325>`_

- Expanded SSL documentation with more examples (e.g. how to use certifi). -- by :user:`Dreamsorcerer`

`#7334 <https://github.com/aio-libs/aiohttp/issues/7334>`_

- Fix, update, and improve client exceptions documentation.

`#7733 <https://github.com/aio-libs/aiohttp/issues/7733>`_



Deprecations and Removals
-------------------------

- Added ``shutdown_timeout`` parameter to ``BaseRunner``, while
deprecating ``shutdown_timeout`` parameter from ``BaseSite``. -- by :user:`Dreamsorcerer`

`#7718 <https://github.com/aio-libs/aiohttp/issues/7718>`_

- Dropped Python 3.6 support.

`#6378 <https://github.com/aio-libs/aiohttp/issues/6378>`_

- Dropped Python 3.7 support. -- by :user:`Dreamsorcerer`

`#7336 <https://github.com/aio-libs/aiohttp/issues/7336>`_

- Removed support for abandoned ``tokio`` event loop. -- by :user:`Dreamsorcerer`

`#7281 <https://github.com/aio-libs/aiohttp/issues/7281>`_



Misc
----

- Made ``print`` argument in ``run_app()`` optional.

`#3690 <https://github.com/aio-libs/aiohttp/issues/3690>`_

- Improved performance of ``ceil_timeout`` in some cases.

`#6316 <https://github.com/aio-libs/aiohttp/issues/6316>`_

- Changed importing Gunicorn to happen on-demand, decreasing import time by ~53%. -- :user:`Dreamsorcerer`

`#6591 <https://github.com/aio-libs/aiohttp/issues/6591>`_

- Improved import time by replacing ``http.server`` with ``http.HTTPStatus``.

`#6903 <https://github.com/aio-libs/aiohttp/issues/6903>`_

- Fixed annotation of ``ssl`` parameter to disallow ``True``. -- by :user:`Dreamsorcerer`.

`#7335 <https://github.com/aio-libs/aiohttp/issues/7335>`_


----


3.8.6 (2023-10-07)
==================

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

This file was deleted.

3 changes: 0 additions & 3 deletions CHANGES/3636.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/3690.misc

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/5934.misc

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/6316.misc

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/6329.misc

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/6345.misc

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/6378.removal

This file was deleted.

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

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/6591.misc

This file was deleted.

2 changes: 0 additions & 2 deletions CHANGES/6594.feature

This file was deleted.

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

This file was deleted.

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

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/6784.misc

This file was deleted.

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

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/6903.misc

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/7191.misc

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/7213.misc

This file was deleted.

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

This file was deleted.

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

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/7281.removal

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/7335.misc

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/7336.removal

This file was deleted.

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

This file was deleted.

1 change: 0 additions & 1 deletion CHANGES/7484.misc

This file was deleted.

Loading