python-pluggy: bump to 1.6.0
authorAlexandru Ardelean <redacted>
Tue, 24 Mar 2026 04:40:37 +0000 (04:40 +0000)
committerAlexandru Ardelean <redacted>
Sat, 28 Mar 2026 18:56:59 +0000 (20:56 +0200)
Required by python-pytest >= 9.0.0, which needs pluggy >= 1.5.0.

v1.5.0 added support for deprecating specific hook parameters via
warn_on_impl_args (used by pytest 9.x hookspecs). Without this,
pytest fails to import with:
  TypeError: HookspecMarker.__call__() got an unexpected keyword
  argument 'warn_on_impl_args'

v1.6.0 changes:
- Drop Python 3.8 support
- Fix regression where get_result() on a failed Result caused the
  exception traceback to grow longer on each call
- Fix StopIteration passing through hook wrappers
- Fix Python 3.14 SyntaxWarning

Signed-off-by: Alexandru Ardelean <redacted>
lang/python/python-pluggy/Makefile
lang/python/python-pluggy/test.sh [new file with mode: 0755]

index 2c2816be7f6a19345bc4a8d836aa70f60788c254..4845de97ba7eb981cd8a7460382e9a29f0ec574f 100644 (file)
@@ -8,23 +8,26 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-pluggy
-PKG_VERSION:=1.3.0
+PKG_VERSION:=1.6.0
 PKG_RELEASE:=1
 
 PYPI_NAME:=pluggy
-PKG_HASH:=cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12
+PKG_HASH:=7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec1@gmail.com>, Alexandru Ardelean <ardeleanalex@gmail.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
-PKG_BUILD_DEPENDS:=python-setuptools-scm/host
+PKG_BUILD_DEPENDS:= \
+       python3/host \
+       python-setuptools/host \
+       python-setuptools-scm/host
 HOST_BUILD_DEPENDS:= \
        python3/host \
        python-build/host \
        python-installer/host \
-       python-wheel/host \
-       python-setuptools-scm/host
+       python-setuptools/host \
+       python-wheel/host
 
 include ../pypi.mk
 include $(INCLUDE_DIR)/package.mk
@@ -32,6 +35,17 @@ include $(INCLUDE_DIR)/host-build.mk
 include ../python3-package.mk
 include ../python3-host-build.mk
 
+# Break circular dependency:
+#   pluggy/host -> setuptools-scm/host -> vcs-versioning/host -> hatchling/host -> pluggy/host
+# Skip the setuptools-scm dependency check and
+# set the version statically via setup.cfg fallback.
+PYTHON3_HOST_BUILD_ARGS:=--skip-dependency-check
+
+define Host/Compile
+       printf '[metadata]\nversion = $(PKG_VERSION)\n' > $(HOST_BUILD_DIR)/setup.cfg
+       $(Py3Host/Compile)
+endef
+
 define Package/python3-pluggy
   SUBMENU:=Python
   SECTION:=lang
diff --git a/lang/python/python-pluggy/test.sh b/lang/python/python-pluggy/test.sh
new file mode 100755 (executable)
index 0000000..9d0e193
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+[ "$1" = "python3-pluggy" ] || exit 0
+
+python3 - << EOF
+import sys
+import pluggy
+
+version = pluggy.__version__
+if version != "$2":
+    print("Wrong version: " + version)
+    sys.exit(1)
+
+# Define a hookspec and hookimpl
+hookspec = pluggy.HookspecMarker("myproject")
+hookimpl = pluggy.HookimplMarker("myproject")
+
+class MySpec:
+    @hookspec
+    def my_hook(self, arg):
+        """A hook that returns a value."""
+
+class MyPlugin:
+    @hookimpl
+    def my_hook(self, arg):
+        return arg * 2
+
+# Register and call
+pm = pluggy.PluginManager("myproject")
+pm.add_hookspecs(MySpec)
+pm.register(MyPlugin())
+
+results = pm.hook.my_hook(arg=21)
+assert results == [42], f"Expected [42], got {results}"
+
+# Multiple plugins, results collected in LIFO order
+class AnotherPlugin:
+    @hookimpl
+    def my_hook(self, arg):
+        return arg + 1
+
+pm.register(AnotherPlugin())
+results = pm.hook.my_hook(arg=10)
+assert results == [11, 20], f"Expected [11, 20], got {results}"
+
+sys.exit(0)
+EOF
git clone https://git.99rst.org/PROJECT