diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 39cde1e004a..8b56354f345 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -25,7 +25,7 @@ updates: directory: "/" labels: - dependencies - target-branch: "3.13" + target-branch: "3.14" schedule: interval: "daily" open-pull-requests-limit: 10 @@ -37,7 +37,7 @@ updates: - dependency-type: "all" labels: - dependencies - target-branch: "3.13" + target-branch: "3.14" schedule: interval: "daily" open-pull-requests-limit: 10 diff --git a/CHANGES.rst b/CHANGES.rst index ffadc64d140..673985ab3fc 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -10,6 +10,127 @@ .. towncrier release notes start +3.13.0 (2025-10-06) +=================== + +Features +-------- + +- Added support for Python 3.14. + + + *Related issues and pull requests on GitHub:* + :issue:`10851`, :issue:`10872`. + + + +- Added support for free-threading in Python 3.14+ -- by :user:`kumaraditya303`. + + + *Related issues and pull requests on GitHub:* + :issue:`11466`, :issue:`11464`. + + + +- Added support for Zstandard (aka Zstd) compression + -- by :user:`KGuillaume-chaps`. + + + *Related issues and pull requests on GitHub:* + :issue:`11161`. + + + +- Added ``StreamReader.total_raw_bytes`` to check the number of bytes downloaded + -- by :user:`robpats`. + + + *Related issues and pull requests on GitHub:* + :issue:`11483`. + + + +Bug fixes +--------- + +- Fixed pytest plugin to not use deprecated :py:mod:`asyncio` policy APIs. + + + *Related issues and pull requests on GitHub:* + :issue:`10851`. + + + +- Updated `Content-Disposition` header parsing to handle trailing semicolons and empty parts + -- by :user:`PLPeeters`. + + + *Related issues and pull requests on GitHub:* + :issue:`11243`. + + + +- Fixed saved ``CookieJar`` failing to be loaded if cookies have ``partitioned`` flag when + ``http.cookie`` does not have partitioned cookies supports. -- by :user:`Cycloctane`. + + + *Related issues and pull requests on GitHub:* + :issue:`11523`. + + + + +Improved documentation +---------------------- + +- Added ``Wireup`` to third-party libraries -- by :user:`maldoinc`. + + + *Related issues and pull requests on GitHub:* + :issue:`11233`. + + + + +Packaging updates and notes for downstreams +------------------------------------------- + +- The `blockbuster` test dependency is now optional; the corresponding test fixture is disabled when it is unavailable + -- by :user:`musicinybrain`. + + + *Related issues and pull requests on GitHub:* + :issue:`11363`. + + + +- Added ``riscv64`` build to releases -- by :user:`eshattow`. + + + *Related issues and pull requests on GitHub:* + :issue:`11425`. + + + + +Contributor-facing changes +-------------------------- + + + +- Fixed ``test_send_compress_text`` failing when alternative zlib implementation + is used. (``zlib-ng`` in python 3.14 windows build) -- by :user:`Cycloctane`. + + + *Related issues and pull requests on GitHub:* + :issue:`11546`. + + + + +---- + + 3.12.15 (2025-07-28) ==================== diff --git a/CHANGES/11161.feature.rst b/CHANGES/11161.feature.rst deleted file mode 100644 index 617c4147a38..00000000000 --- a/CHANGES/11161.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add support for Zstandard (aka Zstd) compression --- by :user:`KGuillaume-chaps`. diff --git a/CHANGES/11233.doc.rst b/CHANGES/11233.doc.rst deleted file mode 100644 index 4d63afa7d88..00000000000 --- a/CHANGES/11233.doc.rst +++ /dev/null @@ -1 +0,0 @@ -Added ``Wireup`` to third-party libraries -- by :user:`maldoinc`. diff --git a/CHANGES/11243.bugfix b/CHANGES/11243.bugfix deleted file mode 100644 index 98ae195bb16..00000000000 --- a/CHANGES/11243.bugfix +++ /dev/null @@ -1,2 +0,0 @@ -Updated `Content-Disposition` header parsing to handle trailing semicolons and empty parts --- by :user:`PLPeeters`. diff --git a/tests/test_helpers.py b/tests/test_helpers.py index 21c25ec38c7..e36b376bd73 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -294,9 +294,9 @@ def test_timeout_handle(loop: asyncio.AbstractEventLoop) -> None: def test_when_timeout_smaller_second(loop: asyncio.AbstractEventLoop) -> None: timeout = 0.1 - timer = loop.time() + timeout handle = helpers.TimeoutHandle(loop, timeout) + timer = loop.time() + timeout start_handle = handle.start() assert start_handle is not None when = start_handle.when() @@ -310,9 +310,9 @@ def test_when_timeout_smaller_second_with_low_threshold( loop: asyncio.AbstractEventLoop, ) -> None: timeout = 0.1 - timer = loop.time() + timeout handle = helpers.TimeoutHandle(loop, timeout, 0.01) + timer = loop.time() + timeout start_handle = handle.start() assert start_handle is not None when = start_handle.when()