Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-anyio for openSUSE:Factory checked in at 2026-10-13 17:43:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-anyio (Old) and /work/SRC/openSUSE:Factory/.python-anyio.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-anyio" Tue Oct 13 17:43:37 2026 rev:34 rq:1384598 version:4.15.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-anyio/python-anyio.changes 2026-08-06 16:19:10.230099661 +0200 +++ /work/SRC/openSUSE:Factory/.python-anyio.new.3698736/python-anyio.changes 2026-10-13 17:44:18.172694094 +0200 @@ -1,0 +2,55 @@ +Tue Oct 13 11:45:10 UTC 2026 - Markéta Machová <[email protected]> + +- Add patch tls.patch to fix test failure with recent pythons + +------------------------------------------------------------------- +Fri Oct 9 01:56:13 UTC 2026 - Steve Kowalik <[email protected]> + +- Update to 4.15.1: + * Implemented a compatibility fix for supporting direct access of anyio.* + submodules from the main package even when those submodules were not + directly imported first + * Added support for the newer keyword-only arguments on anyio.Path methods + to match the standard library pathlib.Path + * Added amap, gather, and as_completed utility functions to simplify common + patterns + * Added --anyio-mode command-line option as an alternative to the + anyio_mode ini setting, and fix the pytest plugin's auto mode detection + to recognize the mode when set via either mechanism(e.g: pytest_asyncio). + * Added the anyio.Future synchronization primitive which behaves similar to + asyncio.Future, allowing tasks to wait for a value (or exception) from + another task + * Added guidance for managing multiple memory object stream producers and + consumers with cloned streams + * Added StapledObjectStream.send_nowait() that delegates to the underlying + ObjectSendStream, if it implements it + * Changed the default name for a task spawned with + TaskGroup.create_task(func()) to match the default task name for the + analogous task spawned with TaskGroup.start_soon(func) or + TaskGroup.start(func) in more situations. + * Changed the anyio and anyio.abc modules to lazily import the necessary + submodules. + * Fixed SpooledTemporaryFile.readinto() and readinto1() reading twice + before rollover, so the destination buffer was overwritten by the second + read and the file position advanced twice, silently losing data + * Fixed anyio.run leaking, or at least, delaying collection of loop and + root_task due to the root task being cached in a RunVar. + * Fixed UNIXSocketStream.aclose() raising asyncio.InvalidStateError when a + concurrent receive or send operation had just been cancelled on the + asyncio backend + * Fixed the pytest plugin importing the deprecated _pytest.python.CallSpec2 + alias + * Fixed an asyncio worker thread race that could raise RuntimeError when + the event loop closed between checking its state and scheduling the + worker result + * Fixed inconsistencies between Trio and asyncio when target TaskGroup is + cancelled before a task created with .start() calls TaskStatus.started() + * Fixed TemporaryDirectory not cleaning up when the host task was cancelled + while exiting the context manager, as the cleanup now runs in a shielded + cancel scope +- Drop patches: + * robust_test_shielded_cancel_sleep_time.patch + * fix-uvloop-closed-loop-race.patch +- Refresh patch extend_timeouts.patch + +------------------------------------------------------------------- Old: ---- anyio-4.14.2.tar.gz fix-uvloop-closed-loop-race.patch robust_test_shielded_cancel_sleep_time.patch New: ---- anyio-4.15.1.tar.gz tls.patch ----------(Old B)---------- Old: * robust_test_shielded_cancel_sleep_time.patch * fix-uvloop-closed-loop-race.patch - Refresh patch extend_timeouts.patch Old:- Drop patches: * robust_test_shielded_cancel_sleep_time.patch * fix-uvloop-closed-loop-race.patch ----------(Old E)---------- ----------(New B)---------- New: - Add patch tls.patch to fix test failure with recent pythons ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-anyio.spec ++++++ --- /var/tmp/diff_new_pack.oy4bXF/_old 2026-10-13 17:44:19.898766431 +0200 +++ /var/tmp/diff_new_pack.oy4bXF/_new 2026-10-13 17:44:19.902766598 +0200 @@ -26,21 +26,17 @@ %endif %{?sle15_python_module_pythons} Name: python-anyio%{psuffix} -Version: 4.14.2 +Version: 4.15.1 Release: 0 Summary: High level compatibility layer for asynchronous event loop implementations License: MIT URL: https://github.com/agronholm/anyio Source: https://files.pythonhosted.org/packages/source/a/anyio/anyio-%{version}.tar.gz -# PATCH-FIX-UPSTREAM robust_test_shielded_cancel_sleep_time.patch gh#agronholm/anyio!1264 [email protected] -# improve robustness of test_shielded_cancel_sleep_time -Patch0: robust_test_shielded_cancel_sleep_time.patch -# PATCH-FIX-UPSTREAM fix-uvloop-closed-loop-race.patch gh#agronholm/anyio!1266 [email protected] -# protect against a race condition in the test_cancel_worker_thread test -Patch1: fix-uvloop-closed-loop-race.patch # PATCH-FIX-OPENSUSE extend_timeouts.patch [email protected] # increase timeout in test_pytest_plugin module -Patch2: extend_timeouts.patch +Patch0: extend_timeouts.patch +# PATCH-FIX-UPSTREAM https://github.com/agronholm/anyio/commit/818e4ac441fa27e9fac893496fc5a4fbe0a58689 Don't pass hostname to TLSStream.wrap() for the server stream +Patch1: tls.patch BuildRequires: %{python_module base >= 3.10} BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools >= 77} @@ -51,7 +47,6 @@ %if %{with test} BuildRequires: %{python_module anyio = %{version}} BuildRequires: %{python_module blockbuster >= 1.5.23} -BuildRequires: %{python_module exceptiongroup >= 1.0.2} BuildRequires: %{python_module hypothesis >= 4.18.2} BuildRequires: %{python_module psutil >= 5.9} BuildRequires: %{python_module pytest >= 8.4} @@ -65,8 +60,9 @@ # /SECTION BuildRequires: fdupes Requires: python-idna >= 2.8 -Requires: (python-exceptiongroup >= 1.0.2 if python-base < 3.11) -Requires: (python-typing_extensions >= 4.5 if python-base < 3.13) +%if 0%{?python_version_nodots} < 315 +Requires: python-typing_extensions >= 4.16.0 +%endif Suggests: python-trio >= 0.32.0 BuildArch: noarch %python_subpackages @@ -113,8 +109,8 @@ donttest+=" or (test_properties and asyncio)" # Flaky test in i586 donttest+=" or test_keyboardinterrupt_during_test" -# Fails with pytest 9 -donttest+=" or test_anyio_fixture_adoption_does_not_persist" +# Builds a virtualenv from first principles +donttest+=" or test_sourceless_install" %pytest -m "not network" -k "not (${donttest:4})" -ra %endif ++++++ anyio-4.14.2.tar.gz -> anyio-4.15.1.tar.gz ++++++ ++++ 6382 lines of diff (skipped) ++++++ extend_timeouts.patch ++++++ --- /var/tmp/diff_new_pack.oy4bXF/_old 2026-10-13 17:44:20.363785919 +0200 +++ /var/tmp/diff_new_pack.oy4bXF/_new 2026-10-13 17:44:20.369786171 +0200 @@ -4,11 +4,11 @@ tests/test_to_thread.py | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) -Index: anyio-4.14.2/tests/test_pytest_plugin.py +Index: anyio-4.15.1/tests/test_pytest_plugin.py =================================================================== ---- anyio-4.14.2.orig/tests/test_pytest_plugin.py 2026-07-12 22:28:36.000000000 +0200 -+++ anyio-4.14.2/tests/test_pytest_plugin.py 2026-08-05 10:37:35.996003636 +0200 -@@ -474,7 +474,7 @@ +--- anyio-4.15.1.orig/tests/test_pytest_plugin.py ++++ anyio-4.15.1/tests/test_pytest_plugin.py +@@ -477,7 +477,7 @@ def test_keyboardinterrupt_during_test( """ ) @@ -17,16 +17,7 @@ def test_keyboard_interrupt_does_not_resume_test(testdir: Pytester) -> None: -@@ -504,7 +504,7 @@ - """ - ) - -- result = testdir.runpytest_subprocess(*pytest_args, timeout=5) -+ result = testdir.runpytest_subprocess(*pytest_args, timeout=20) - assert result.ret == 2 - result.stdout.no_fnmatch_line("*RESUMED_AFTER_INTERRUPT*") - result.stdout.fnmatch_lines(["*KeyboardInterrupt*"]) -@@ -635,7 +635,7 @@ +@@ -637,7 +637,7 @@ def test_dynamic_async_fixture_access_do """ ) @@ -35,11 +26,11 @@ result.stdout.fnmatch_lines( [ "*RuntimeError: Cannot schedule a coroutine in the test runner while another is already running;*" -Index: anyio-4.14.2/tests/test_taskgroups.py +Index: anyio-4.15.1/tests/test_taskgroups.py =================================================================== ---- anyio-4.14.2.orig/tests/test_taskgroups.py 2026-08-05 10:37:25.510309863 +0200 -+++ anyio-4.14.2/tests/test_taskgroups.py 2026-08-05 10:37:35.996663971 +0200 -@@ -1085,8 +1085,8 @@ +--- anyio-4.15.1.orig/tests/test_taskgroups.py ++++ anyio-4.15.1/tests/test_taskgroups.py +@@ -1208,8 +1208,8 @@ async def test_deadline_reached_on_start async def test_deadline_moved() -> None: @@ -48,28 +39,4 @@ + with fail_after(0.2) as scope: + scope.deadline += 0.6 await sleep(0.2) - - -Index: anyio-4.14.2/tests/test_to_thread.py -=================================================================== ---- anyio-4.14.2.orig/tests/test_to_thread.py 2026-07-12 22:28:36.000000000 +0200 -+++ anyio-4.14.2/tests/test_to_thread.py 2026-08-05 10:37:35.996357343 +0200 -@@ -78,7 +78,7 @@ - for _ in range(4): - tg.start_soon(task_worker) - -- await sleep(0.1) -+ await sleep(0.5) - assert len(active_threads) == 3 - assert limiter.borrowed_tokens == 3 - event.set() -@@ -167,7 +167,7 @@ - async def run_in_thread() -> None: - nonlocal task - task = asyncio.current_task() -- await to_thread.run_sync(time.sleep, 0.2, abandon_on_cancel=True) -+ await to_thread.run_sync(time.sleep, 0.05, abandon_on_cancel=True) - - async with create_task_group() as tg: - tg.start_soon(run_in_thread) ++++++ tls.patch ++++++ >From 818e4ac441fa27e9fac893496fc5a4fbe0a58689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Gr=C3=B6nholm?= <[email protected]> Date: Sat, 3 Oct 2026 00:20:27 +0300 Subject: [PATCH] Don't pass `hostname` to TLSStream.wrap() for the server stream This breaks on newer Pythons (3.12.15+) --- tests/streams/test_tls.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/streams/test_tls.py b/tests/streams/test_tls.py index 07334c392..0f5c2d375 100644 --- a/tests/streams/test_tls.py +++ b/tests/streams/test_tls.py @@ -117,7 +117,6 @@ async def server() -> None: async with await TLSStream.wrap( server_stream, server_side=True, - hostname="localhost", ssl_context=server_context, ): pass @@ -604,7 +603,6 @@ async def server() -> None: async with await TLSStream.wrap( server_stream, server_side=True, - hostname="localhost", ssl_context=server_context, ) as server_tls_stream: message = await server_tls_stream.receive()
