Skip to content

Commit

Permalink
Merge 3.10
Browse files Browse the repository at this point in the history
  • Loading branch information
Dreamsorcerer committed Apr 11, 2024
2 parents 9ba9a4e + 24733d4 commit 480d322
Show file tree
Hide file tree
Showing 26 changed files with 352 additions and 62 deletions.
342 changes: 342 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,219 @@

.. towncrier release notes start
3.9.4 (2024-04-11)
==================

Bug fixes
---------

- The asynchronous internals now set the underlying causes
when assigning exceptions to the future objects
-- by :user:`webknjaz`.


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



- Treated values of ``Accept-Encoding`` header as case-insensitive when checking
for gzip files -- by :user:`steverep`.


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



- Improved the DNS resolution performance on cache hit -- by :user:`bdraco`.

This is achieved by avoiding an :mod:`asyncio` task creation in this case.


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


- Changed the type annotations to allow ``dict`` on :meth:`aiohttp.MultipartWriter.append`,
:meth:`aiohttp.MultipartWriter.append_json` and
:meth:`aiohttp.MultipartWriter.append_form` -- by :user:`cakemanny`


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



- Ensure websocket transport is closed when client does not close it
-- by :user:`bdraco`.

The transport could remain open if the client did not close it. This
change ensures the transport is closed when the client does not close
it.


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



- Leave websocket transport open if receive times out or is cancelled
-- by :user:`bdraco`.

This restores the behavior prior to the change in #7978.


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



- Fixed content not being read when an upgrade request was not supported with the pure Python implementation.
-- by :user:`bdraco`.


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



- Fixed a race condition with incoming connections during server shutdown -- by :user:`Dreamsorcerer`.


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



- Fixed ``multipart/form-data`` compliance with :rfc:`7578` -- by :user:`Dreamsorcerer`.


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



- Fixed blocking I/O in the event loop while processing files in a POST request
-- by :user:`bdraco`.


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



- Escaped filenames in static view -- by :user:`bdraco`.


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



- Fixed the pure python parser to mark a connection as closing when a
response has no length -- by :user:`Dreamsorcerer`.


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




Features
--------

- Upgraded *llhttp* to 9.2.1, and started rejecting obsolete line folding
in Python parser to match -- by :user:`Dreamsorcerer`.


*Related issues and pull requests on GitHub:*
:issue:`8146`, :issue:`8292`.




Deprecations (removal in next major release)
--------------------------------------------

- Deprecated ``content_transfer_encoding`` parameter in :py:meth:`FormData.add_field()
<aiohttp.FormData.add_field>` -- by :user:`Dreamsorcerer`.


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




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

- Added a note about canceling tasks to avoid delaying server shutdown -- by :user:`Dreamsorcerer`.


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




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

- The pull request template is now asking the contributors to
answer a question about the long-term maintenance challenges
they envision as a result of merging their patches
-- by :user:`webknjaz`.


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



- Updated CI and documentation to use NPM clean install and upgrade
node to version 18 -- by :user:`steverep`.


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



- A pytest fixture ``hello_txt`` was introduced to aid
static file serving tests in
:file:`test_web_sendfile_functional.py`. It dynamically
provisions ``hello.txt`` file variants shared across the
tests in the module.

-- by :user:`steverep`


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




Packaging updates and notes for downstreams
-------------------------------------------

- Added an ``internal`` pytest marker for tests which should be skipped
by packagers (use ``-m 'not internal'`` to disable them) -- by :user:`Dreamsorcerer`.


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




----


3.9.3 (2024-01-29)
==================

Expand Down Expand Up @@ -1709,3 +1922,132 @@ Misc
----

- #3341, #3351




----


3.1.3 (2018-04-12)
==================

- Fix cancellation broadcast during DNS resolve (`#2910 <https://github.com/aio-libs/aiohttp/pull/2910>`_)




----


3.1.2 (2018-04-05)
==================

- Make ``LineTooLong`` exception more detailed about actual data size (`#2863 <https://github.com/aio-libs/aiohttp/pull/2863>`_)

- Call ``on_chunk_sent`` when write_eof takes as a param the last chunk (`#2909 <https://github.com/aio-libs/aiohttp/pull/2909>`_)




----


3.1.1 (2018-03-27)
==================

- Support *asynchronous iterators* (and *asynchronous generators* as
well) in both client and server API as request / response BODY
payloads. (`#2802 <https://github.com/aio-libs/aiohttp/pull/2802>`_)




----


3.1.0 (2018-03-21)
==================

Welcome to aiohttp 3.1 release.

This is an *incremental* release, fully backward compatible with *aiohttp 3.0*.

But we have added several new features.

The most visible one is ``app.add_routes()`` (an alias for existing
``app.router.add_routes()``. The addition is very important because
all *aiohttp* docs now uses ``app.add_routes()`` call in code
snippets. All your existing code still do register routes / resource
without any warning but you've got the idea for a favorite way: noisy
``app.router.add_get()`` is replaced by ``app.add_routes()``.

The library does not make a preference between decorators::

routes = web.RouteTableDef()

@routes.get('/')
async def hello(request):
return web.Response(text="Hello, world")

app.add_routes(routes)

and route tables as a list::

async def hello(request):
return web.Response(text="Hello, world")

app.add_routes([web.get('/', hello)])

Both ways are equal, user may decide basing on own code taste.

Also we have a lot of minor features, bug fixes and documentation
updates, see below.

Features
--------

- Relax JSON content-type checking in the ``ClientResponse.json()`` to allow
"application/xxx+json" instead of strict "application/json". (`#2206 <https://github.com/aio-libs/aiohttp/pull/2206>`_)
- Bump C HTTP parser to version 2.8 (`#2730 <https://github.com/aio-libs/aiohttp/pull/2730>`_)
- Accept a coroutine as an application factory in ``web.run_app`` and gunicorn
worker. (`#2739 <https://github.com/aio-libs/aiohttp/pull/2739>`_)
- Implement application cleanup context (``app.cleanup_ctx`` property). (`#2747 <https://github.com/aio-libs/aiohttp/pull/2747>`_)
- Make ``writer.write_headers`` a coroutine. (`#2762 <https://github.com/aio-libs/aiohttp/pull/2762>`_)
- Add tracking signals for getting request/response bodies. (`#2767 <https://github.com/aio-libs/aiohttp/pull/2767>`_)
- Deprecate ClientResponseError.code in favor of .status to keep similarity
with response classes. (`#2781 <https://github.com/aio-libs/aiohttp/pull/2781>`_)
- Implement ``app.add_routes()`` method. (`#2787 <https://github.com/aio-libs/aiohttp/pull/2787>`_)
- Implement ``web.static()`` and ``RouteTableDef.static()`` API. (`#2795 <https://github.com/aio-libs/aiohttp/pull/2795>`_)
- Install a test event loop as default by ``asyncio.set_event_loop()``. The
change affects aiohttp test utils but backward compatibility is not broken
for 99.99% of use cases. (`#2804 <https://github.com/aio-libs/aiohttp/pull/2804>`_)
- Refactor ``ClientResponse`` constructor: make logically required constructor
arguments mandatory, drop ``_post_init()`` method. (`#2820 <https://github.com/aio-libs/aiohttp/pull/2820>`_)
- Use ``app.add_routes()`` in server docs everywhere (`#2830 <https://github.com/aio-libs/aiohttp/pull/2830>`_)
- Websockets refactoring, all websocket writer methods are converted into
coroutines. (`#2836 <https://github.com/aio-libs/aiohttp/pull/2836>`_)
- Provide ``Content-Range`` header for ``Range`` requests (`#2844 <https://github.com/aio-libs/aiohttp/pull/2844>`_)


Bugfixes
--------

- Fix websocket client return EofStream. (`#2784 <https://github.com/aio-libs/aiohttp/pull/2784>`_)
- Fix websocket demo. (`#2789 <https://github.com/aio-libs/aiohttp/pull/2789>`_)
- Property ``BaseRequest.http_range`` now returns a python-like slice when
requesting the tail of the range. It's now indicated by a negative value in
``range.start`` rather then in ``range.stop`` (`#2805 <https://github.com/aio-libs/aiohttp/pull/2805>`_)
- Close a connection if an unexpected exception occurs while sending a request
(`#2827 <https://github.com/aio-libs/aiohttp/pull/2827>`_)
- Fix firing DNS tracing events. (`#2841 <https://github.com/aio-libs/aiohttp/pull/2841>`_)


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

- Document behavior when cchardet detects encodings that are unknown to Python.
(`#2732 <https://github.com/aio-libs/aiohttp/pull/2732>`_)
- Add diagrams for tracing request life style. (`#2748 <https://github.com/aio-libs/aiohttp/pull/2748>`_)
- Drop removed functionality for passing ``StreamReader`` as data at client
side. (`#2793 <https://github.com/aio-libs/aiohttp/pull/2793>`_)
3 changes: 0 additions & 3 deletions CHANGES/7741.bugfix.rst

This file was deleted.

2 changes: 0 additions & 2 deletions CHANGES/8010.doc

This file was deleted.

3 changes: 0 additions & 3 deletions CHANGES/8089.bugfix.rst

This file was deleted.

4 changes: 0 additions & 4 deletions CHANGES/8099.contrib.rst

This file was deleted.

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

This file was deleted.

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

This file was deleted.

7 changes: 0 additions & 7 deletions CHANGES/8136.contrib.rst

This file was deleted.

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

This file was deleted.

5 changes: 0 additions & 5 deletions CHANGES/8163.bugfix.rst

This file was deleted.

6 changes: 0 additions & 6 deletions CHANGES/8200.bugfix.rst

This file was deleted.

Loading

0 comments on commit 480d322

Please sign in to comment.