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 #8323

Merged
merged 147 commits into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
68940b9
[3.1] fix resolve cancellation (#2910) (#2931)
asvetlov Apr 12, 2018
a901b54
Bump to 3.1.3
asvetlov Apr 13, 2018
ffd704b
Fix links
asvetlov Apr 13, 2018
96e09c6
Add changelog links fixer
asvetlov Apr 13, 2018
77f5633
Fix changenote
asvetlov Apr 13, 2018
68c9697
Bump to 3.9.0.dev0 (#7847)
Dreamsorcerer Nov 18, 2023
c491ed7
[PR #7850/22170b21 backport][3.9] Fix import under PyPy 3.8/3.9 on Wi…
patchback[bot] Nov 19, 2023
6034e26
[PR #7852/122597fc backport][3.9] Add requirement files to sdist (#7856)
patchback[bot] Nov 19, 2023
8d766df
Bump yarl from 1.9.2 to 1.9.3 (#7860)
dependabot[bot] Nov 21, 2023
cede54b
[PR #7863/3a21134a backport][3.9] remove tests/__init__.py (#7870)
patchback[bot] Nov 22, 2023
5fa260a
Fix ClientResponse.close releasing the connection instead of closing …
bdraco Nov 23, 2023
a049701
Fix usage of proxy.py in test_proxy_functional (#7773) (#7876)
bdraco Nov 23, 2023
41a9f1f
Bump mypy from 1.7.0 to 1.7.1 (#7882)
dependabot[bot] Nov 24, 2023
6dd0122
Update dependabot.yml (#7888)
Dreamsorcerer Nov 24, 2023
bb11101
Restore async concurrency safety to websocket compressor (#7865) (#7889)
bdraco Nov 24, 2023
2ae4d6f
Message is not upgraded if Upgrade header is missing (#7895) (#7898)
Dreamsorcerer Nov 25, 2023
ddc2a26
[PR #7896/9a7cfe77 backport][3.9] Fix some flaky tests (#7900)
patchback[bot] Nov 25, 2023
946523d
Fix flaky websocket test (#7902) (#7904)
Dreamsorcerer Nov 25, 2023
dd175b6
Fix regression with connection upgrade (#7879) (#7908)
Dreamsorcerer Nov 26, 2023
9dbd273
[PR #7673/aa7d1a8f backport][3.9] Document release process (#7909)
patchback[bot] Nov 26, 2023
6333c02
Release v3.9.1 (#7911)
Dreamsorcerer Nov 26, 2023
0bc17e6
Bump version
Dreamsorcerer Nov 26, 2023
ee8f7bf
[PR #7808/213d1b2 backport][3.9] Restore requirements-txt-fixer in pr…
alexrudd2 Nov 29, 2023
d548b59
[PR #7930/895afa83 backport][3.9] Use .coveragerc for TYPE_CHECKING c…
patchback[bot] Dec 2, 2023
32651f8
[PR #7927/da2e349a backport][3.9] Pin proxy.py to 2.4.4rc4 for testin…
patchback[bot] Dec 3, 2023
5ea4dbd
Revert time-machine back to freezegun (#7937) (#7939)
Dreamsorcerer Dec 4, 2023
f03c4a8
Bump sigstore/gh-action-sigstore-python from 2.1.0 to 2.1.1 (#7966)
dependabot[bot] Dec 14, 2023
5a906f9
Bump github/codeql-action from 2 to 3 (#7965)
dependabot[bot] Dec 14, 2023
e3b7cbe
[PR #7961/5e44ba46 backport][3.9] Add reminder to use 'fixes' in PRs …
patchback[bot] Dec 14, 2023
46f6a90
Fix websocket connection leak (#7978) (#7979)
bdraco Dec 19, 2023
fca5a7a
[PR #8012/5f699bbb backport][3.9] Fix FileResponse doing blocking I/O…
patchback[bot] Jan 11, 2024
f93e55c
Fix double compress when compression enabled and compressed file exis…
bdraco Jan 11, 2024
64c4bc6
Bump actions/cache from 3.3.2 to 3.3.3 (#8025)
dependabot[bot] Jan 12, 2024
41968f8
Backport to 3.9: Add runtime type check for `ClientSession` `timeout`…
igorvoltaic Jan 12, 2024
ca9b3ec
Bump actions/cache from 3.3.3 to 4.0.0 (#8031)
dependabot[bot] Jan 17, 2024
5cdc0fc
[PR #8033/5424c534 backport][3.9] Small cleanups to WebSocketWriter (…
patchback[bot] Jan 20, 2024
f000174
[PR #8010/2670e7b0 backport][3.9] Fix the Towncrier philosophy link (…
patchback[bot] Jan 20, 2024
034e5e3
[PR #8042/4b91b530 backport][3.9] Tightening the runtime type check f…
patchback[bot] Jan 21, 2024
437ac47
[PR #7995/43a5bc50 backport][3.9] Fix examples of `fallback_charset_r…
patchback[bot] Jan 21, 2024
a54dab3
[PR #8049/a379e634 backport][3.9] Set cause for ClientPayloadError (#…
patchback[bot] Jan 21, 2024
419d715
[PR #8066/cba34699 backport][3.9] 💅📝 Restructure the changelog for cl…
webknjaz Jan 28, 2024
3ec4fa1
[PR #8069/69bbe874 backport][3.9] 📝 Only show changelog draft for non…
patchback[bot] Jan 28, 2024
0d945d1
[PR #7916/822fbc74 backport][3.9] Add more information to contributin…
patchback[bot] Jan 28, 2024
d33bc21
Improve validation in HTTP parser (#8074) (#8078)
Dreamsorcerer Jan 28, 2024
435ad46
[PR #3955/8960063e backport][3.9] Replace all tmpdir fixtures with tm…
webknjaz Jan 28, 2024
9118a58
[PR #8079/1c335944 backport][3.9] Validate static paths (#8080)
patchback[bot] Jan 28, 2024
24a6d64
Release v3.9.2 (#8082)
Dreamsorcerer Jan 28, 2024
94462ee
[PR #3957/79fe2045 backport][3.9] Improve test suite handling of path…
webknjaz Jan 28, 2024
5ff4b3c
Update version
Dreamsorcerer Jan 28, 2024
33f49e8
Bump pypa/cibuildwheel from 2.16.2 to 2.16.4 (#8092)
dependabot[bot] Jan 29, 2024
5637e8f
[PR #8098/aca206fc backport][3.9] Fix backwards compatibility with ss…
patchback[bot] Jan 29, 2024
bf4edce
Release v3.9.3 (#8102)
Dreamsorcerer Jan 29, 2024
9e938f1
Bump version
Dreamsorcerer Jan 29, 2024
7705204
[PR #8099/3aa243ae backport][3.10] 📝💅 Ask PR submitters about the com…
patchback[bot] Jan 30, 2024
ab2e368
[PR #8099/3aa243ae backport][3.9] 📝💅 Ask PR submitters about the comp…
patchback[bot] Jan 30, 2024
2a6e1c3
[PR #8107/854e6d87 backport][3.10] Partially revert "Add more informa…
patchback[bot] Jan 30, 2024
d4bef7a
[PR #8107/854e6d87 backport][3.9] Partially revert "Add more informat…
patchback[bot] Jan 30, 2024
9f5537d
[PR #8110/2d8ffdf5 backport][3.10] Re-add a PR preparation intro from…
patchback[bot] Jan 30, 2024
efe3c88
[PR #8110/2d8ffdf5 backport][3.9] Re-add a PR preparation intro from …
patchback[bot] Jan 30, 2024
36b6c53
[PR #8113/8b33fe6f backport][3.10] 📝 Make the changelog examples elab…
patchback[bot] Jan 31, 2024
36952e4
[PR #8113/8b33fe6f backport][3.9] 📝 Make the changelog examples elabo…
patchback[bot] Jan 31, 2024
8146725
Bump multidict from 6.0.4 to 6.0.5 (#8128)
dependabot[bot] Feb 2, 2024
9726a67
[PR #8127/b97d9a97 backport][3.10] Treat Accept-Encoding header as ca…
patchback[bot] Feb 2, 2024
a4e94ff
[PR #8127/b97d9a97 backport][3.9] Treat Accept-Encoding header as cas…
patchback[bot] Feb 2, 2024
e56e9b9
Bump pypa/cibuildwheel from 2.16.4 to 2.16.5 (#8120)
dependabot[bot] Feb 3, 2024
257a7c4
bump slotscheck from 0.17.1 to 0.17.3 (#8135)
dependabot[bot] Feb 5, 2024
0467c9b
Backport 3.10: Add tests, accidentally dropped before (#8088) (#8141)
pajod Feb 8, 2024
a7a72ae
[PR #8143/5df14cf7 backport][3.9] Add CODECOV_TOKEN (#8144)
patchback[bot] Feb 8, 2024
b3e5376
[PR #8143/5df14cf7 backport][3.10] Add CODECOV_TOKEN (#8145)
patchback[bot] Feb 8, 2024
1dc8a07
rename a shadowed test and re-enable F811 to catch future cases (#813…
alexmac Feb 8, 2024
2a5dc57
rename a shadowed test and re-enable F811 to catch future cases (#813…
alexmac Feb 9, 2024
eb397f3
[PR #8140/d2ea8118 backport][3.10] Use NPM clean install and upgrade …
patchback[bot] Feb 9, 2024
9910f5f
[PR #8140/d2ea8118 backport][3.9] Use NPM clean install and upgrade n…
patchback[bot] Feb 9, 2024
4682c1c
Upgrade to llhttp 9.2 (#8146) (#8151)
Dreamsorcerer Feb 9, 2024
d00a32b
Upgrade to llhttp 9.2 (#8146) (#8152)
Dreamsorcerer Feb 9, 2024
5e4f0b8
[3.10] Create hello.txt.gz dynamically and improve related assertions…
steverep Feb 14, 2024
e45da11
[3.9] Create hello.txt.gz dynamically and improve related assertions …
steverep Feb 14, 2024
cda4a8b
[PR #6722/fb465e15 backport][3.10] Implement granular URL error hiera…
setla Feb 14, 2024
6cb21d1
[3.10] Add server capability to check for Brotli compressed static fi…
steverep Feb 14, 2024
87e0697
[PR #8089/dc38630b backport][3.9] 💅 Propagate error causes via asynci…
webknjaz Feb 16, 2024
d4322e7
[PR #8089/dc38630b backport][3.10] 💅 Propagate error causes via async…
webknjaz Feb 16, 2024
6b5cdef
Bump pip-tools from 7.3.0 to 7.4.0 (#8169)
dependabot[bot] Feb 19, 2024
e74a4a0
[PR #8163/006fbe03 backport][3.9] Avoid creating a task to do DNS res…
patchback[bot] Feb 20, 2024
88d224f
[PR #8163/006fbe03 backport][3.10] Avoid creating a task to do DNS re…
patchback[bot] Feb 20, 2024
46675be
Bump coverage from 7.4.1 to 7.4.2 (#8177)
dependabot[bot] Feb 21, 2024
73d15c4
Bump typing-extensions from 4.9.0 to 4.10.0 (#8189)
dependabot[bot] Feb 26, 2024
a75ed65
Bump python-on-whales from 0.68.0 to 0.69.0 (#8168)
dependabot[bot] Feb 26, 2024
f92a3e3
Bump actions/cache from 4.0.0 to 4.0.1 (#8195)
dependabot[bot] Mar 1, 2024
0153145
[PR #8197/0e91eb0b backport][3.9] fix base_url param documentation (#…
patchback[bot] Mar 1, 2024
e229a3a
[PR #8197/0e91eb0b backport][3.10] fix base_url param documentation (…
patchback[bot] Mar 1, 2024
0854d33
Bump cython from 3.0.8 to 3.0.9 (#8208)
dependabot[bot] Mar 6, 2024
c427e6d
[PR #8211/7725f5a2 backport][3.9] Fix type annotations on MultipartWr…
patchback[bot] Mar 9, 2024
5fdb5c6
[PR #8211/7725f5a2 backport][3.10] Fix type annotations on MultipartW…
patchback[bot] Mar 10, 2024
7fefba1
Bump python-on-whales from 0.69.0 to 0.70.0 (#8220)
dependabot[bot] Mar 11, 2024
4a3bfa6
Bump mypy from 1.8.0 to 1.9.0 (#8222)
dependabot[bot] Mar 11, 2024
2ae8575
Bump pypa/cibuildwheel from 2.16.5 to 2.17.0 (#8226)
dependabot[bot] Mar 12, 2024
30e5c04
Bump coverage from 7.4.2 to 7.4.4 (#8230)
dependabot[bot] Mar 15, 2024
a459459
Bump dependabot/fetch-metadata from 1 to 2 (#8237)
dependabot[bot] Mar 22, 2024
e2afa78
Bump pytest-mock from 3.12.0 to 3.14.0 (#8238)
dependabot[bot] Mar 22, 2024
560c5ba
Bump python-on-whales from 0.70.0 to 0.70.1 (#8241)
dependabot[bot] Mar 22, 2024
8e91d5c
Bump slotscheck from 0.17.3 to 0.18.0 (#8244)
dependabot[bot] Mar 22, 2024
dd38151
[PR #8252/8f237126 backport][3.10] Fix handling of unsupported upgrad…
patchback[bot] Mar 28, 2024
6e8f63c
[PR #8252/8f237126 backport][3.9] Fix handling of unsupported upgrade…
patchback[bot] Mar 28, 2024
73dfe98
Bump actions/setup-python from 4 to 5 (#7949)
dependabot[bot] Mar 28, 2024
b18f7b0
Bump pip-tools from 7.4.0 to 7.4.1 (#8210)
dependabot[bot] Mar 28, 2024
0689e6d
Bump pytest-cov from 4.1.0 to 5.0.0 (#8246)
dependabot[bot] Mar 28, 2024
8c39b43
Bump slotscheck from 0.18.0 to 0.19.0 (#8249)
dependabot[bot] Mar 28, 2024
58dec1d
Ensure websocket transport is closed when client does not close it (#…
bdraco Mar 28, 2024
1746d2d
[PR #8259/f78ef6f8 backport][3.9] Flag python 3.11/12 support (#8261)
patchback[bot] Mar 28, 2024
259293f
Ensure websocket transport is closed when client does not close it (#…
bdraco Mar 28, 2024
039da6f
Bump actions/cache from 4.0.1 to 4.0.2 (#8236)
dependabot[bot] Mar 28, 2024
5c248fc
[PR #8260/2434bfe8 backport][3.9] Adjust import timings test for pyth…
patchback[bot] Mar 29, 2024
286f50c
[PR #8260/2434bfe8 backport][3.10] Adjust import timings test for pyt…
patchback[bot] Mar 29, 2024
0b98984
[PR #8259/f78ef6f8 backport][3.10] Flag python 3.11/12 support (#8262)
patchback[bot] Mar 30, 2024
111f370
[PR #8251/c21b76d0 backport][3.10] Leave websocket transport open if …
patchback[bot] Mar 30, 2024
eaddd9c
[PR #8251/c21b76d0 backport][3.9] Leave websocket transport open if r…
patchback[bot] Mar 30, 2024
3a13bd5
[PR #8267/509fb269 backport][3.9] Add note about tasks that should be…
patchback[bot] Mar 30, 2024
d10bd0a
[PR #8267/509fb269 backport][3.10] Add note about tasks that should b…
patchback[bot] Mar 30, 2024
46e8f64
[PR #8271/e0d9d3ab backport][3.9] Fix race condition with request han…
patchback[bot] Mar 31, 2024
f74026a
[PR #8271/e0d9d3ab backport][3.10] Fix race condition with request ha…
patchback[bot] Mar 31, 2024
f91cb32
Bump cython from 3.0.9 to 3.0.10 (#8276)
dependabot[bot] Apr 1, 2024
836f4a7
Bump aiodns from 3.1.1 to 3.2.0 (#8277)
dependabot[bot] Apr 1, 2024
3f79241
[PR #8286/28f1fd88 backport][3.9] docs: remove repetitive word in com…
patchback[bot] Apr 4, 2024
6643115
[PR #8286/28f1fd88 backport][3.10] docs: remove repetitive word in co…
patchback[bot] Apr 4, 2024
bb23105
[PR #8283/54e13b0a backport][3.9] Fix blocking I/O in the event loop …
patchback[bot] Apr 5, 2024
ef06656
[PR #8283/54e13b0a backport][3.10] Fix blocking I/O in the event loop…
patchback[bot] Apr 5, 2024
38dd9b8
Fix AsyncResolver to match ThreadedResolver behavior (#8270) (#8295)
bdraco Apr 5, 2024
d15f07c
Upgrade to llhttp 9.2.1 (#8292) (#8297)
Dreamsorcerer Apr 5, 2024
270ae9c
[PR #8297/d15f07cf backport][3.9] Upgrade to llhttp 9.2.1 (#8292) (#8…
patchback[bot] Apr 5, 2024
767c413
Fix handling of multipart/form-data (#8280) (#8301)
Dreamsorcerer Apr 7, 2024
cebe526
Fix handling of multipart/form-data (#8280) (#8302)
Dreamsorcerer Apr 7, 2024
410394b
[PR #8304/88c80c14 backport][3.10] Check for backports in CI (#8306)
patchback[bot] Apr 7, 2024
292d961
[PR #8304/88c80c14 backport][3.9] Check for backports in CI (#8305)
patchback[bot] Apr 7, 2024
7853b08
[PR #8299/28d026eb backport][3.10] Create marker for internal tests (…
patchback[bot] Apr 7, 2024
ec2be05
[PR #8299/28d026eb backport][3.9] Create marker for internal tests (#…
patchback[bot] Apr 7, 2024
6392df7
Bump typing-extensions from 4.10.0 to 4.11.0 (#8312)
dependabot[bot] Apr 8, 2024
b2a1f98
[PR #8309/c29945a1 backport][3.10] Improve reliability of run_app tes…
patchback[bot] Apr 8, 2024
ed43040
[PR #8309/c29945a1 backport][3.9] Improve reliability of run_app test…
patchback[bot] Apr 8, 2024
7e16dd1
Patchback/backports/3.10/5fd29467fb63efdfae1ace280cec36b1f8139567/pr …
NewGlad Apr 9, 2024
aa8948f
Escape filenames and paths in HTML when generating index pages (#8317…
Dreamsorcerer Apr 11, 2024
2833552
Escape filenames and paths in HTML when generating index pages (#8317…
Dreamsorcerer Apr 11, 2024
a7e240a
[PR #8320/9ba9a4e5 backport][3.9] Fix Python parser to mark responses…
patchback[bot] Apr 11, 2024
68f1e41
[PR #8320/9ba9a4e5 backport][3.10] Fix Python parser to mark response…
patchback[bot] Apr 11, 2024
b3397c7
Release v3.9.4 (#8201)
Dreamsorcerer Apr 11, 2024
7917ae2
Merge 3.1
Dreamsorcerer Apr 11, 2024
24733d4
Merge 3.9
Dreamsorcerer Apr 11, 2024
480d322
Merge 3.10
Dreamsorcerer Apr 11, 2024
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
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
Loading