From: Alexander Kanavin <alex.kanavin@gmail.com>
To: openembedded-core@lists.openembedded.org
Cc: Alexander Kanavin <alex@linutronix.de>
Subject: [PATCH 26/45] python3-click: upgrade 8.4.1 -> 8.4.2
Date: Mon, 6 Jul 2026 19:16:40 +0200 [thread overview]
Message-ID: <20260706171701.70536-26-alex.kanavin@gmail.com> (raw)
In-Reply-To: <20260706171701.70536-1-alex.kanavin@gmail.com>
From: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
...7494c991c9197902fdf4995e11b2da3e9762.patch | 173 ------------------
.../python/python3-click/pytest-fix.patch | 19 +-
...-click_8.4.1.bb => python3-click_8.4.2.bb} | 3 +-
3 files changed, 14 insertions(+), 181 deletions(-)
delete mode 100644 meta/recipes-devtools/python/python3-click/ffcc7494c991c9197902fdf4995e11b2da3e9762.patch
rename meta/recipes-devtools/python/{python3-click_8.4.1.bb => python3-click_8.4.2.bb} (86%)
diff --git a/meta/recipes-devtools/python/python3-click/ffcc7494c991c9197902fdf4995e11b2da3e9762.patch b/meta/recipes-devtools/python/python3-click/ffcc7494c991c9197902fdf4995e11b2da3e9762.patch
deleted file mode 100644
index e16f84ec9a..0000000000
--- a/meta/recipes-devtools/python/python3-click/ffcc7494c991c9197902fdf4995e11b2da3e9762.patch
+++ /dev/null
@@ -1,173 +0,0 @@
-"Fix pager test flackiness and add stress tests for echo_via_pager"
-
-From 7eb57cff7cd292fbd526eaf861c8f945ddeb07a3 Mon Sep 17 00:00:00 2001
-From: Kevin Deldycke <kevin@deldycke.com>
-Date: Fri, 22 May 2026 11:13:12 +0200
-Subject: [PATCH] Fix pager test race by raising before yield
-
-Upstream-Status: Backport [https://github.com/pallets/click/commit/ffcc7494c991c9197902fdf4995e11b2da3e9762]
-
-Refs: #3470 #2899
----
- pyproject.toml | 3 +-
- src/click/_compat.py | 1 -
- tests/test_stream_lifecycle.py | 4 +-
- tests/test_utils.py | 79 +++++++++++++++++++++++++++++++---
- 4 files changed, 78 insertions(+), 9 deletions(-)
-
-diff --git a/pyproject.toml b/pyproject.toml
-index e39ef21055..ed91e5d741 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -185,12 +185,11 @@ commands = [[
- ]]
-
- [tool.tox.env.stress]
--description = "stress tests for stream lifecycle race conditions"
-+description = "high-iteration stress tests for race conditions"
- commands = [[
- "pytest", "-v", "--tb=short", "-x", "-m", "stress",
- "--basetemp={env_tmp_dir}",
- "--override-ini=addopts=",
-- "tests/test_stream_lifecycle.py",
- {replace = "posargs", default = [], extend = true},
- ]]
-
-diff --git a/src/click/_compat.py b/src/click/_compat.py
-index 36c0e53975..134c4f3893 100644
---- a/src/click/_compat.py
-+++ b/src/click/_compat.py
-@@ -12,7 +12,6 @@
-
- CYGWIN = sys.platform.startswith("cygwin")
- WIN = sys.platform.startswith("win")
--MAC = sys.platform == "darwin"
- auto_wrap_for_ansi: t.Callable[[t.TextIO], t.TextIO] | None = None
- _ansi_re = re.compile(r"\033\[[;?0-9]*[a-zA-Z]")
-
-diff --git a/tests/test_stream_lifecycle.py b/tests/test_stream_lifecycle.py
-index 42e26acc34..9f4aa20868 100644
---- a/tests/test_stream_lifecycle.py
-+++ b/tests/test_stream_lifecycle.py
-@@ -484,7 +484,9 @@ def cli():
- # Category 6: Stress tests - high-iteration reproducers for race conditions
- #
- # These are marked with ``pytest.mark.stress`` so they can be included or
--# excluded independently. The CI workflow runs them in a separate job.
-+# excluded independently. The ``tox -e stress`` env collects every
-+# ``pytest.mark.stress`` test across the suite (not just this file), so
-+# stress regressions for other components live alongside their unit tests.
- # ---------------------------------------------------------------------------
-
-
-diff --git a/tests/test_utils.py b/tests/test_utils.py
-index 139cd7324f..1aebf3cc5a 100644
---- a/tests/test_utils.py
-+++ b/tests/test_utils.py
-@@ -16,7 +16,6 @@
-
- import click._termui_impl
- import click.utils
--from click._compat import MAC
- from click._compat import WIN
- from click._utils import UNSET
-
-@@ -286,6 +285,11 @@ def _test_gen_func():
-
-
- def _test_gen_func_fails():
-+ raise RuntimeError("This is a test.")
-+ yield # unreachable, keeps this a generator function
-+
-+
-+def _test_gen_func_yields_then_fails():
- yield "test"
- raise RuntimeError("This is a test.")
-
-@@ -315,10 +319,6 @@ def _test_simulate_keyboard_interrupt(file=None):
-
-
- @pytest.mark.skipif(WIN, reason="Different behavior on windows.")
--@pytest.mark.skipif(
-- MAC and sys.version_info >= (3, 13) and not sys._is_gil_enabled(),
-- reason="Generator exception tests are flaky in Python 3.14t on macOS.",
--)
- @pytest.mark.parametrize(
- "pager_cmd", ["cat", "cat ", " cat ", "less", " less", " less "]
- )
-@@ -456,6 +456,75 @@ def test_echo_via_pager(monkeypatch, capfd, pager_cmd, test, tmp_path):
- )
-
-
-+@pytest.mark.skipif(WIN, reason="Different behavior on windows.")
-+def test_echo_via_pager_yields_before_exception(monkeypatch, tmp_path):
-+ """A generator that yields then raises: click writes the partial output to
-+ the pager stream before propagating the exception.
-+
-+ The pager file content is intentionally NOT asserted: pipe-drain timing
-+ between click and the pager subprocess is outside click's control
-+ (#2899, #3470). Spying on ``MaybeStripAnsi.write`` records what click sent
-+ to the pager, which is deterministic regardless of scheduling.
-+ """
-+ monkeypatch.setitem(os.environ, "PAGER", "cat")
-+ monkeypatch.setattr(click._termui_impl, "isatty", lambda x: True)
-+
-+ writes: list[str] = []
-+ real_write = click._termui_impl.MaybeStripAnsi.write
-+
-+ def spy(self, text):
-+ writes.append(text)
-+ return real_write(self, text)
-+
-+ monkeypatch.setattr(click._termui_impl.MaybeStripAnsi, "write", spy)
-+
-+ pager_out_tmp = tmp_path / "pager_out.txt"
-+ with (
-+ pager_out_tmp.open("w") as f,
-+ patch.object(subprocess, "Popen", partial(subprocess.Popen, stdout=f)),
-+ pytest.raises(RuntimeError, match="This is a test."),
-+ ):
-+ click.echo_via_pager(_test_gen_func_yields_then_fails())
-+
-+ assert "".join(writes) == "test", (
-+ f"click should have written the yielded chunk before exception, got {writes!r}"
-+ )
-+
-+
-+@pytest.mark.stress
-+@pytest.mark.skipif(WIN, reason="Different behavior on windows.")
-+@pytest.mark.parametrize("_", range(1000))
-+def test_stress_echo_via_pager_exception_cleanup(_, monkeypatch, tmp_path):
-+ """Repeated exceptions during ``echo_via_pager`` must not leak subprocesses.
-+
-+ Regression coverage for the cleanup path in ``_pipepager``'s exception
-+ handler (issue #2899, PR #3470). Each iteration spawns a real pager
-+ subprocess, raises before any data is written and check there is no leak.
-+ """
-+ monkeypatch.setitem(os.environ, "PAGER", "cat")
-+ monkeypatch.setattr(click._termui_impl, "isatty", lambda x: True)
-+
-+ spawned: list[subprocess.Popen] = []
-+ real_popen = subprocess.Popen
-+
-+ def tracking_popen(*args, **kwargs):
-+ p = real_popen(*args, **kwargs)
-+ spawned.append(p)
-+ return p
-+
-+ pager_out_tmp = tmp_path / "pager_out.txt"
-+ with (
-+ pager_out_tmp.open("w") as f,
-+ patch.object(subprocess, "Popen", partial(tracking_popen, stdout=f)),
-+ pytest.raises(RuntimeError),
-+ ):
-+ click.echo_via_pager(_test_gen_func_fails())
-+
-+ assert spawned, "pager subprocess was never started"
-+ for p in spawned:
-+ assert p.returncode is not None, "pager subprocess not reaped"
-+
-+
- def test_echo_color_flag(monkeypatch, capfd):
- isatty = True
- monkeypatch.setattr(click._compat, "isatty", lambda x: isatty)
diff --git a/meta/recipes-devtools/python/python3-click/pytest-fix.patch b/meta/recipes-devtools/python/python3-click/pytest-fix.patch
index 662ad8aae9..abfa07120a 100644
--- a/meta/recipes-devtools/python/python3-click/pytest-fix.patch
+++ b/meta/recipes-devtools/python/python3-click/pytest-fix.patch
@@ -1,4 +1,8 @@
-Fix an error with newer versions of pytest (9.1.0) by converting the generator into a tuple:
+From 1cdbe9829973a30037075d613b5a1d5a42e260d5 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Mon, 15 Jun 2026 11:37:28 +0100
+Subject: [PATCH] Fix an error with newer versions of pytest (9.1.0) by
+ converting the generator into a tuple:
E pytest.PytestRemovedIn10Warning: Passing a non-Collection iterable to parametrize is deprecated.
E Test: tests/test_basic.py::test_boolean_conversion, argvalues type: chain
@@ -9,12 +13,15 @@ ERROR: tests/test_basic.py:tests/test_basic.py
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upstream-Status: Submitted [https://github.com/pallets/click/pull/3597]
+---
+ tests/test_basic.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
-Index: click-8.3.3/tests/test_basic.py
-===================================================================
---- click-8.3.3.orig/tests/test_basic.py
-+++ click-8.3.3/tests/test_basic.py
-@@ -258,10 +258,10 @@ def test_boolean_flag(runner, default, a
+diff --git a/tests/test_basic.py b/tests/test_basic.py
+index 34d22e7..8076dd8 100644
+--- a/tests/test_basic.py
++++ b/tests/test_basic.py
+@@ -258,10 +258,10 @@ def test_boolean_flag(runner, default, args, expect):
@pytest.mark.parametrize(
("value", "expect"),
diff --git a/meta/recipes-devtools/python/python3-click_8.4.1.bb b/meta/recipes-devtools/python/python3-click_8.4.2.bb
similarity index 86%
rename from meta/recipes-devtools/python/python3-click_8.4.1.bb
rename to meta/recipes-devtools/python/python3-click_8.4.2.bb
index 53c75c333c..b13bdc9285 100644
--- a/meta/recipes-devtools/python/python3-click_8.4.1.bb
+++ b/meta/recipes-devtools/python/python3-click_8.4.2.bb
@@ -9,8 +9,7 @@ LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1fa98232fd645608937a0fdc82e999b8"
SRC_URI += "file://pytest-fix.patch"
-SRC_URI += "file://ffcc7494c991c9197902fdf4995e11b2da3e9762.patch"
-SRC_URI[sha256sum] = "918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96"
+SRC_URI[sha256sum] = "9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6"
inherit pypi python_flit_core ptest-python-pytest
--
2.47.3
next prev parent reply other threads:[~2026-07-06 17:17 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-06 17:16 [PATCH 01/45] selftest/locales: opt out of ptests in DISTRO_FEATURES Alexander Kanavin
2026-07-06 17:16 ` [PATCH 02/45] files/common-licenses/MIT-with-fmt-exception: add a custom license Alexander Kanavin
2026-07-06 17:16 ` [PATCH 03/45] acl: upgrade 2.3.2 -> 2.4.0 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 04/45] appstream: upgrade 1.1.2 -> 1.1.3 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 05/45] at-spi2-core: upgrade 2.60.4 -> 2.60.5 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 06/45] attr: upgrade 2.5.2 -> 2.6.0 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 07/45] barebox-tools: upgrade 2026.06.0 -> 2026.06.1 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 08/45] cmake: upgrade 4.3.3 -> 4.3.4 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 09/45] expat: upgrade 2.8.1 -> 2.8.2 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 10/45] fmt: upgrade 12.1.0 -> 12.2.0 Alexander Kanavin
2026-07-09 16:35 ` [OE-core] " Khem Raj
2026-07-06 17:16 ` [PATCH 11/45] git: upgrade 2.54.0 -> 2.55.0 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 12/45] glib-2.0: upgrade 2.88.1 -> 2.88.2 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 13/45] gnu-config: upgrade to latest revision Alexander Kanavin
2026-07-06 17:16 ` [PATCH 14/45] gn: " Alexander Kanavin
2026-07-06 17:16 ` [PATCH 15/45] gtk-doc: upgrade 1.35.1 -> 1.36.1 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 16/45] iproute2: upgrade 7.0.0 -> 7.1.0 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 17/45] json-c: upgrade 0.18 -> 0.19 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 18/45] libarchive: upgrade 3.8.7 -> 3.8.8 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 19/45] libffi: upgrade 3.5.2 -> 3.6.0 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 20/45] libical: upgrade 3.0.20 -> 4.0.3 Alexander Kanavin
2026-07-08 5:52 ` [OE-core] " Mathieu Dubois-Briand
2026-07-08 12:04 ` Alexander Kanavin
2026-07-06 17:16 ` [PATCH 21/45] libpsl: upgrade 0.21.5 -> 0.22.0 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 22/45] lighttpd: upgrade 1.4.83 -> 1.4.84 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 23/45] lttng-modules: upgrade 2.15.1 -> 2.15.2 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 24/45] opkg: upgrade 0.9.0 -> 0.10.0 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 25/45] piglit: upgrade to latest revision Alexander Kanavin
2026-07-06 17:16 ` Alexander Kanavin [this message]
2026-07-06 17:16 ` [PATCH 27/45] python3-hypothesis: upgrade 6.155.2 -> 6.155.7 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 28/45] python3-pdm: upgrade 2.27.0 -> 2.28.0 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 29/45] python3-pytest: upgrade 9.1.0 -> 9.1.1 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 30/45] python3-setuptools-rust: upgrade 1.12.1 -> 1.13.0 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 31/45] python3-setuptools-scm: upgrade 10.0.5 -> 10.2.0 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 32/45] python3-vcs-versioning: upgrade 1.1.1 -> 2.2.2 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 33/45] python3-wcwidth: upgrade 0.8.1 -> 0.8.2 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 34/45] qemu: upgrade 11.0.1 -> 11.0.2 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 35/45] shared-mime-info: upgrade 2.4 -> 2.5.1 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 36/45] socat: upgrade 1.8.1.1 -> 1.8.1.3 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 37/45] sqlite3: upgrade 3.53.2 -> 3.53.3 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 38/45] strace: upgrade 7.0 -> 7.1 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 39/45] tcl: upgrade 9.0.3 -> 9.0.4 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 40/45] ttyrun: upgrade 2.42.1 -> 2.43.0 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 41/45] vulkan-samples: upgrade to latest revision Alexander Kanavin
2026-07-06 17:16 ` [PATCH 42/45] vulkan: upgrade 1.4.350.0 -> 1.4.350.1 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 43/45] waffle: upgrade 1.8.2 -> 1.8.3 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 44/45] wic: upgrade 0.3.0 -> 0.3.1 Alexander Kanavin
2026-07-06 17:16 ` [PATCH 45/45] xkeyboard-config: upgrade 2.47 -> 2.48 Alexander Kanavin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260706171701.70536-26-alex.kanavin@gmail.com \
--to=alex.kanavin@gmail.com \
--cc=alex@linutronix.de \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.