From patchwork Thu Nov 5 07:10:35 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102993 Received: from mail-dy1-f176.google.com (mail-dy1-f176.google.com [74.125.82.176]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.28900.1793862642719433327 for ; Wed, 04 Nov 2026 23:10:42 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=AjJ/LheG; spf=pass (domain: gmail.com, ip: 74.125.82.176, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f176.google.com with SMTP id 5a478bee46e88-36a1947498bso4306191eec.1 for ; Wed, 04 Nov 2026 23:10:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793862642; x=1794467442; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=MI+7R08N0F+Mk54WZMyVAmEPx3Qjr0AqMyq7TTWwTB8=; b=AjJ/LheGMGXo7MW+7uMKzw29sdzAu2AM2I7GwxWXZ6IqXUL+HcBUqvM38NtA8UK+ij 7qklJ/LvKutMuajk9drJIuGtSRhafBlUF+OOaJXzyF65QUbBLM1d4WZp39uUkRjfphA6 Qpx2NOyzX7Al93EuERVtM+syM3T0Ryl8sjCkgvSc094j27//QIeFU7tqdqFlz1RTK710 EnoRVA2eg0Yfp0ldyx8N5t0bsO77fOVzdHaA7p8ITwVSZHtnP0ldAAcSCEQAmIplH95n fYOWqqGoSkI/DlvS9FEfE5AlYhxOaYepJK1Da+iHokX7doop4XlRshMT1QolcsZmaSI9 UnUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793862642; x=1794467442; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=MI+7R08N0F+Mk54WZMyVAmEPx3Qjr0AqMyq7TTWwTB8=; b=2m7M92eKp209XfQWWgPumjBt1qOZwjCQKGqAkT58bQ4IV86pLm64fg7xUjWRSmdMXS O62it1N9X7liZXj/mv0L8IXHnFL8KoBN4R1fmVpQZfZTVBu9vKetq3r1zfhxC08NiF+M voBblrZu/x+NW4xDLCYbf3MkjT4Ux7VDqdQ+80F7VWQmc4dJmk8it2udBnGQ3lqppjEC pSxs0kA+O6oGGJ2BndgHu/L3QhKCZTn1yjE1T36/+rUp8Mi0ReDGjL1lsc6nyoQeXTuP fsdSVKQaakIlIl6SVo+UneJoKMQl8RLq3gU84m6TAf0ChG3WP+vTcDezfvny+YLDaybT XXXw== X-Gm-Message-State: APuU4Z8TN6dHdWkXkdU8gzfobtoYBGnBLpqSq0iEWjJLk39w1reUL2MA 3186NNUYr0eMwNbiva5QHiKVzdKmSLMiBmbkG9ARjieiTENBAwq8jIoqZLBS7IrylbA= X-Gm-Gg: AYBFou3IqFPJ6OzIk8CNsgqKyIg3u0inE4O41HgpqDS1UbC6hcNQNN2dXDpyERv4nCQ TArIUgk0Ewr+jd4Te1/aNLNEnn5yp0G2cE+dcKEPfbjrhTD6UOlj2y+0rpvcaes7+R2yK+AWVe7 BV7qvA9eoiUwLjt3K9w5BSRKoXP4ogcUSsNqm/71Mys/rEpIGFxUY38M10QuOl0SGJXquwhmEEz 4W/8NJQC00G7x1TRDDo/rWIUSDyBMvmrjfbiEZxqkBXHl+rCxjmz/tsR/wywcHlng1O4bl2eikr y4aV45xdZtNELuIex3OEomZxZhiX8uSDSi6NW+OVNXNTTE2zORlS3t+HdbANPxAhlFJoBmO93ng 5g8T1M2L8Mn3QueSDMd5Mez6EmIEKeHHKVRiH6V8v2lUk5+t7sPrrpagK3yg8CfcdVH1rzAr+n2 pz2XMr/KgFTIgiPytYnY4gNr9B/MlamM3Ufs9v2sXCCbV36TudJz8C8DHo87TsbK00ibBv/zyGK VYpAIOsnyyf615jhCpPWtsPBkcmWEg/5wjL6/9CTKycUB2lgje66VS560kMCiYV9Tamn9PMO3/D 3YFRtjkLgCtGTVs8ZSabxAg5d8o1MRV0IvL3iaTc7vVdtHRA379rV5QE3aT7YOEEO46LADAnqsa tFKC8KMRnQQnFmOolWaKucHnBXHa4cWQsgt/fplJmgZNPWBTlSI7k8HUGmnLdqidahhhEsIBNbE msuGXcxX0JO84qhvMrNDuM3je48mK1tMFazjxBolzgjYyVjP56xE8hVVfe8Rxyj4T2Lpch7ogZh By/83sKM/yYMhz8Pyll1303CPr7FDKh3Y1rz1M0bkN9ccdEPZJrwLBhZVLDhh/Bp6y97K2KCABo UPrj X-Received: by 2002:a05:693c:4187:20b0:351:6409:25c9 with SMTP id 5a478bee46e88-36a4241b0bfmr31766802eec.35.1793862641748; Wed, 04 Nov 2026 23:10:41 -0800 (PST) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36ca39b3b7esm13132205eec.28.2026.11.04.23.10.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2026 23:10:41 -0800 (PST) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj Subject: [meta-python][PATCH 1/4] python3-filelock: Upgrade 4.2.4 -> 4.2.9 Date: Wed, 4 Nov 2026 23:10:35 -0800 Message-ID: <20261105071038.2029943-1-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Thu, 05 Nov 2026 07:10:49 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131869 4.2.9 needs hatch-fancy-pypi-readme as a build backend plugin, add it to DEPENDS. This also fixes ptest failures seen with 4.2.4, e.g. test_post_open_failure_closes_fd[fstat] and the soft lock lease/stale tests; all ptests pass now on qemux86-64. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj --- .../{python3-filelock_4.2.4.bb => python3-filelock_4.2.9.bb} | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) rename meta-python/recipes-devtools/python/{python3-filelock_4.2.4.bb => python3-filelock_4.2.9.bb} (90%) diff --git a/meta-python/recipes-devtools/python/python3-filelock_4.2.4.bb b/meta-python/recipes-devtools/python/python3-filelock_4.2.9.bb similarity index 90% rename from meta-python/recipes-devtools/python/python3-filelock_4.2.4.bb rename to meta-python/recipes-devtools/python/python3-filelock_4.2.9.bb index c0f4f59e17..442ac4ae82 100644 --- a/meta-python/recipes-devtools/python/python3-filelock_4.2.4.bb +++ b/meta-python/recipes-devtools/python/python3-filelock_4.2.9.bb @@ -9,13 +9,14 @@ CVE_PRODUCT = "tox-dev:filelock" SRC_URI += "file://run-ptest" -SRC_URI[sha256sum] = "c6d8663535e1650ee430507b4ffbac7b464dd64b7647ea0112a9f406499d163d" +SRC_URI[sha256sum] = "96530b7c538d4ea08493ab067247aab7948c54d8cd622cce711c97cccc5d9896" BBCLASSEXTEND = "native nativesdk" inherit pypi python_hatchling ptest-python-pytest DEPENDS += "\ + python3-hatch-fancy-pypi-readme-native \ python3-hatch-vcs-native \ " From patchwork Thu Nov 5 07:10:36 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102994 Received: from mail-dy1-f174.google.com (mail-dy1-f174.google.com [74.125.82.174]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.28901.1793862643868814655 for ; Wed, 04 Nov 2026 23:10:43 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=Owear+1K; spf=pass (domain: gmail.com, ip: 74.125.82.174, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f174.google.com with SMTP id 5a478bee46e88-3645f0f3fcdso2672895eec.0 for ; Wed, 04 Nov 2026 23:10:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793862643; x=1794467443; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=+QPkRBnoIeJC2YhMMkmlfx8f/PKIRAZV1wZTx8U2wuk=; b=Owear+1KxnolFkznGm/wIAy+A/aEkLM1GR7j9xwL6VkmT7tsiSWblK6B09mqIpxZVf HZBY84EBDiAVKctKfx+pc+xIS2o++CPJTuSpxDEify8p9+S3sNZAmalY5UF5SJpu9QKG 5LtbdbklbdzLDyQj/cN3bzosnn2wusTx2EHSvI8+b+HobrFozhcU8QkDxQGprFgyJ6hy UoxEP1piBIUxH7yhTZ5W6PvKdsv8ixOAdNWbY2TP+RJ7zE+cA8O9m1Z6IS79Fp0n7jSi oncbDYY8UqO91RpDGKTqo/k0wudsHuZGO+CP3uKUEpz6kg2Q/3FkN3iqgPqvgorVbz7i mFOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793862643; x=1794467443; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=+QPkRBnoIeJC2YhMMkmlfx8f/PKIRAZV1wZTx8U2wuk=; b=wYhkJ/pyb7cdEwwfMmiEVe8b3a6diesiAWQGwsDp3KfVpQTo2reFiCjbu2WxC53aRf HwVbYVe+Oqy6qeIjrOfMufP/cbtR3L0g/igMm0aZDFHWrv6ImJYG+Xxf6DNcSpCis0RP ZGwIQTCpO1qCNEM46nVmlDT8Fm9MtpwD7MBOkZgRiEQI7x+FFHKHV35UeCTPfkVDDH+I fmqsDUwGR+5b4C6b1RaO54hsRV0oG5Iqc0kSpRT5WKXapjz9buqNI1IKtwFyTHRdeqE3 tOjfSDtadzE7rjfJIeKEnWII2kgHxlEG3nURQERt+RLBLd0Yolvbx2EJj1TiEGEHHJ7U oqCA== X-Gm-Message-State: APuU4Z+p0o1Erw0zFBO2doVAXqdvNqJIdIR1Hr4nybjvRHpzZtn28Jmg yKeinPNOV74tRSNBcBl+cTK38wHV31Ace4MCAHNbCOJ8WTiWzNhdPNK399BouRDadzI= X-Gm-Gg: AYBFou3oUHwMOigkjNf/L1HgcGrY8EuiHfmYGCA1MJ54M9kqOFM33z66gyksW9G8FRR kyTxpjj3WbmJ3aYVswBmjNSniVceUnrBs9GGf8oUPpM5qbVWJSKuB/qIKJsEJ2zLd5jmLAkolX0 jkBXMuULcB/G2GGcJG/uXAODDuEN5sElyBtUJ9gstoUB/v8qLs/OW6fSQneO1PjaMjZBTl9OSxY qQPDza5Hx4qx1fhe+iDOxvvQT8JtWhNMqiXoLX69zEWi69Yjy+TVDXgmjoHtogOodVaWSa4kUF2 aElAGLo9mB7FA6O3Yl0AmD63+LUw1AQiDnLorA6hvnOIkqYkGcswFVTMJoxOkj6JqxOrXR5M5FW mpsDAMOBRxh/JQFxoTEa+DwqwIPxPxkK/Owbz98/eIgMHkAUg67JkmZi2uJlW798U13QXAsOyKG NoukDajYo7h6Y6lbzUSEDhIr3NFInNh2Be4FibRkhPV87XC5XFVYtaVql3WlYio7N/uAZguo6bh ahcKkBHb8zVgscmlxckrTwKArE14hWbndNzX8N1TMvkn2hjDTJXG514FJqtx9FLRtGKg/3xXNmK BtAfq3NiczSPYZgAv8CiPSt8OxLdX0CbBvJb35OIVlnB9tA6NeUfR+eakYm1pgeDxLPAdwI4chZ 8NHuTQK4BIzPB0FMaKnGNJe8OPg7sfG/QkuDhjq94bNytn9NXktdd8O6k/ozJjgn5R1OTvGvM9l bBFaWNXxaVRc8VBJ0HIZy/IJwrSHYmv/HfFd1ABWY3opgakab/lS0g8YR2pCpyCNnfQQBQ0F2hH IKd45vsayrCtFaJ+AgwgxXqf4HL0eBpgk3l/EntgL2j6pcBYp6EtU9br4P0gYTlbJHW38E4qg6h KwW8 X-Received: by 2002:a05:7301:6184:10b0:369:fdae:c9fd with SMTP id 5a478bee46e88-36a423935d2mr26579817eec.13.1793862642748; Wed, 04 Nov 2026 23:10:42 -0800 (PST) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36ca39b3b7esm13132205eec.28.2026.11.04.23.10.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2026 23:10:42 -0800 (PST) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj Subject: [meta-python][PATCH 2/4] python3-pytest-benchmark: Upgrade 5.1.0 -> 5.3.1 Date: Wed, 4 Nov 2026 23:10:36 -0800 Message-ID: <20261105071038.2029943-2-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261105071038.2029943-1-khem.raj@oss.qualcomm.com> References: <20261105071038.2029943-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Thu, 05 Nov 2026 07:10:49 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131870 The project dropped setup.py, switch to python_setuptools_build_meta. The sdist is now named pytest_benchmark, which is the pypi class default, so drop PYPI_PACKAGE_SDIST. License checksum change is due to the copyright year update. 5.1.0 broke every test with pytest 9.2 and Python 3.14: AttributeError: 'Function' object has no attribute '_nodeid' PendingDeprecationWarning: FileType is deprecated. which made ptests fail in python3-pint, python3-fastjsonschema, python3-portion, python3-tblib, python3-construct and python3-pydantic-core. These now all pass on qemux86-64. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj --- ...nchmark_5.1.0.bb => python3-pytest-benchmark_5.3.1.bb} | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) rename meta-python/recipes-devtools/python/{python3-pytest-benchmark_5.1.0.bb => python3-pytest-benchmark_5.3.1.bb} (69%) diff --git a/meta-python/recipes-devtools/python/python3-pytest-benchmark_5.1.0.bb b/meta-python/recipes-devtools/python/python3-pytest-benchmark_5.3.1.bb similarity index 69% rename from meta-python/recipes-devtools/python/python3-pytest-benchmark_5.1.0.bb rename to meta-python/recipes-devtools/python/python3-pytest-benchmark_5.3.1.bb index 0aa2c24d30..f202424087 100644 --- a/meta-python/recipes-devtools/python/python3-pytest-benchmark_5.1.0.bb +++ b/meta-python/recipes-devtools/python/python3-pytest-benchmark_5.3.1.bb @@ -1,13 +1,11 @@ SUMMARY = "A ``pytest`` fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer." HOMEPAGE = "https://github.com/ionelmc/pytest-benchmark" LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d606e94f56c21c8e0cdde0b622dcdf57" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1d907de309286ace60c424a81666867d" -SRC_URI[sha256sum] = "9ea661cdc292e8231f7cd4c10b0319e56a2118e2c09d9f50e1b3d150d2aca105" +SRC_URI[sha256sum] = "c1ee70a58f9bfb1ac955cc634247a340b0df7bcb949071cfca396f16c6fc3516" -inherit pypi setuptools3 - -PYPI_PACKAGE_SDIST = "pytest-benchmark" +inherit pypi python_setuptools_build_meta RDEPENDS:${PN} += "\ python3-aspectlib \ From patchwork Thu Nov 5 07:10:37 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102995 Received: from mail-dy1-f180.google.com (mail-dy1-f180.google.com [74.125.82.180]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.29083.1793862644878837719 for ; Wed, 04 Nov 2026 23:10:44 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=P3ALOEcF; spf=pass (domain: gmail.com, ip: 74.125.82.180, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f180.google.com with SMTP id 5a478bee46e88-3645f0f3fcdso2672909eec.0 for ; Wed, 04 Nov 2026 23:10:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793862644; x=1794467444; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=inuCz6JEy9Cq+I9TL3js+7nx4BsQjYkwXWPDlgo28B0=; b=P3ALOEcFYgUvRgClrYoqPsfXyxbrchUG0oI8/ABa6bx7MGz3dUf4R39IhEkoHj3RUd dgKhGMfQktNsXrMWP9+FA39y/LlTqaJ+03cKVJY+XGr3ILgz561KBka4p268cWWBanXq QD2Qr1SC6rrQFax9HRuXgC7HsscQ768/XeSRlnEz2wzyTxD6Zp5knbG3I14HRpI5S011 gsZdaYnMEfeJvZHcC2h9HXYero0d0GkAz6/dL299XVxUHm7JQ1XHyPLU4appLS2yJ48C HOcql5faTOuvQkmcSPC1fglxpiAENYBJQAzc7NGW037EvihCKiiNK+/d4x6AVX1qPaHo j9RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793862644; x=1794467444; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=inuCz6JEy9Cq+I9TL3js+7nx4BsQjYkwXWPDlgo28B0=; b=zlqC8XuvSbRLrLy7Z5Edm2zI0wtwG6lH3vfTX1m8bUWZ0d4VSi3BLZWTMuGj+94shq UMftQs+AbKnn3159TdSawvjpb9atIEpx4CnAAl8wiVn1PCgpO7fdLuAl4dqshB+iVBM2 DjFqLurwD7hy/XuMiRwYc94stEFcqNnwuK2NPMT3Ztu2HPTV6Gi5ESpGDt0Mrm4vjOaB iZ/7OSNa5I/P5C9ZrqK1sqeJc+pULj0Ejz52JTpSRZ8pul+1XefN9b+vRJ933pHpKUhX lA0R21WHK9JGsMUZ/epAWyv3PBZMdi/Z+p0h30sItVetwsoY4vGhrvW1I+qQdG7GLTMg FQxA== X-Gm-Message-State: APuU4Z+DglaeMgtZ4lzod1yAEvWjs5jPynNi4d6I8wnk14knJC9yhuBF udjCbG705wXaT5dj6Sn1MAGqXD+/6JxYsaEROHqmtIYPcA9GLEbMIOaH7/o4zIKYNto= X-Gm-Gg: AYBFou3D0vZuTKuQkU0Q96HPO9dqbNQW1EPddZVwCpUNpo4d0eJuZQjee7/+tHQAXDd ulTdsagbVVfkSo9JRmJfDw38Ms5fjBDhftYxVQ7MOyI05nGd6FKmgH671NrvEpddqMhGNVL0hFw 3kzL6238vWWY5ppvDR3PUsVu9qYmTMHV39AZDWv+EedSfbRWYxzIHA0L3FWKN9BVRlKdCB80Gjn ZCJwJaWhRpXpEnipHXh9TGZVaSn3KG9ZHngH7pfgyobcpW+oIbUv0vwLL079f9t6BgCzKoEX2ZL es2pL8zgGPsL4Iafcx04HKGG3Ku5Chk2pM3xLH8WwZPOAWRGb6G19hMRkHhWaHZpXJKv5xY7BEB 4/yuPywCR70RqWdqaSH+VsYVSZQD+Zu8qhIov+Et1Y2HHQdkclBw+dbA9CSshhJHvCMlBK+Wg+n plr99iSZ3jcRUVvtdCXgTRSNo6bT7Jvf/omL1ZUPUq8tB/cL2fi9VRieL/MHMeqMn9K5h31lyuJ 45cf2cz6jPGNc6stoJ+MRrJwtzXY783fZQ8ieeh3K76qFvrQuk1g+UxBO0yCWe57WxELGlZYfnT bmupgKjVMxMJvs/ZvhlWMvcdrhhuSdN+qXz9IULUaCvCPxijMPgSsJAewfFtGKnM30g46WgKhzH hS3MDVcUU5dhTvABIpYnHQX1YrR/2hGfarey2a7snNYJSFNePoMaR4hYVfj/q3x8jl2b87Jqjln lB6xFT7um9aVUVI1oPzNrZvBY4hKUvIFf5fJNNquovr9d+Iul24HHn2xJODO6b8hFMBLIBd0DTC o7gXUP4+MnVoUdU8ueigAn3XXoEmBGLSczUXSU/7kl0/a76jxg2yS2AbdYnpHS0md5W0XwDjVze +bsA X-Received: by 2002:a05:7301:82a:b0:351:dbc:b663 with SMTP id 5a478bee46e88-36a4244f9f6mr30545300eec.31.1793862643917; Wed, 04 Nov 2026 23:10:43 -0800 (PST) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36ca39b3b7esm13132205eec.28.2026.11.04.23.10.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2026 23:10:43 -0800 (PST) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj Subject: [meta-python][PATCH 3/4] python3-pytest-forked: Upgrade 1.6.0 -> 1.7.5 Date: Wed, 4 Nov 2026 23:10:37 -0800 Message-ID: <20261105071038.2029943-3-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261105071038.2029943-1-khem.raj@oss.qualcomm.com> References: <20261105071038.2029943-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Thu, 05 Nov 2026 07:10:50 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131871 1.7.5 replaced py.process.ForkedFunc with multiprocessing, so swap the python3-py runtime dependency for python3-multiprocessing. The sdist is now named pytest_forked, the pypi class default, so drop PYPI_PACKAGE_SDIST. Backport the pending upstream fix for pytest 9.2, where TestReport carries a NodeId object in _id that marshal cannot serialize; every forked test crashed with "ValueError: unmarshallable object". This made python3-starlette ptests report no results at all; all of them pass now on qemux86-64. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj --- ...report-serialization-with-pytest-9.2.patch | 142 ++++++++++++++++++ ....6.0.bb => python3-pytest-forked_1.7.5.bb} | 8 +- 2 files changed, 146 insertions(+), 4 deletions(-) create mode 100644 meta-python/recipes-devtools/python/python3-pytest-forked/0001-Fix-report-serialization-with-pytest-9.2.patch rename meta-python/recipes-devtools/python/{python3-pytest-forked_1.6.0.bb => python3-pytest-forked_1.7.5.bb} (66%) diff --git a/meta-python/recipes-devtools/python/python3-pytest-forked/0001-Fix-report-serialization-with-pytest-9.2.patch b/meta-python/recipes-devtools/python/python3-pytest-forked/0001-Fix-report-serialization-with-pytest-9.2.patch new file mode 100644 index 0000000000..55c7e8feee --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pytest-forked/0001-Fix-report-serialization-with-pytest-9.2.patch @@ -0,0 +1,142 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Fish Wang +Date: Wed, 28 Oct 2026 01:55:59 +0000 +Subject: [PATCH] Fix report serialization with pytest 9.2. + +pytest 9.2 turned TestReport.nodeid into a property backed by a NodeId +object. It is not marshalable, so pytest-forked breaks. + +- Now serialize_report emits a plain nodeid string. +- Crash reports use the call phase; pytest 9.2 prints the phase in the + short summary, which exposed the ??? placeholder. +- The forked child writes its traceback to the captured stderr file + before exiting with "status 3," so the next similar failure is easier + to spot. + +Upstream-Status: Submitted [https://github.com/pytest-dev/pytest-forked/pull/112] +Signed-off-by: Khem Raj +--- + CHANGELOG.rst | 9 ++++++++ + src/pytest_forked/__init__.py | 19 +++++++++++----- + testing/test_boxed.py | 43 +++++++++++++++++++++++++++++++++++ + 3 files changed, 65 insertions(+), 6 deletions(-) + +diff --git a/CHANGELOG.rst b/CHANGELOG.rst +index fe6e527..20d76c0 100644 +--- a/CHANGELOG.rst ++++ b/CHANGELOG.rst +@@ -1,3 +1,12 @@ ++Unreleased ++========== ++ ++* Fix compatibility with pytest 9.2: reports now carry a ``NodeId`` object that ++ ``marshal`` cannot serialize, which made every forked test exit with status 3. ++* Report crashes as the ``call`` phase instead of ``???``. ++* Show the traceback when the forked child fails outside the test itself. ++ ++ + v1.7.5 + ====== + +diff --git a/src/pytest_forked/__init__.py b/src/pytest_forked/__init__.py +index 6d135cb..2f53266 100644 +--- a/src/pytest_forked/__init__.py ++++ b/src/pytest_forked/__init__.py +@@ -13,6 +13,10 @@ from _pytest import runner + # copied from xdist remote + def serialize_report(rep): + d = rep.__dict__.copy() ++ # pytest >= 9.2 stores a NodeId object in ``_id`` and exposes ``nodeid`` ++ # as a property. convert it to a plain string. ++ if "_id" in d: ++ d["nodeid"] = str(d.pop("_id")) + if hasattr(rep.longrepr, "toterminal"): + d["longrepr"] = str(rep.longrepr) + else: +@@ -97,6 +101,11 @@ def _worker(runforked_fn, stdout_path, stderr_path, retval_path): + code = e.code if e.code is not None else 0 + os._exit(int(code)) + except Exception: ++ import traceback ++ ++ # pytest's capture has restored fd 2 by now; write to the file directly ++ with open(stderr_path, "a") as f: ++ traceback.print_exc(file=f) + os._exit(EXITSTATUS_EXCEPTION) + finally: + try: +@@ -221,12 +230,10 @@ def report_process_crash(item, result): + + from _pytest import runner + +- # pytest >= 4.1 +- has_from_call = getattr(runner.CallInfo, "from_call", None) is not None +- if has_from_call: +- call = runner.CallInfo.from_call(lambda: 0 / 0, "???") +- else: +- call = runner.CallInfo(lambda: 0 / 0, "???") ++ # The child died while running the test body, so report it as the ++ # "call" phase. ++ # pytest >= 9.2 prints the phase in the short summary; handle it here. ++ call = runner.CallInfo.from_call(lambda: 0 / 0, "call") + call.excinfo = info + rep = runner.pytest_runtest_makereport(item, call) + if result.out: +diff --git a/testing/test_boxed.py b/testing/test_boxed.py +index 3d67a9c..269c2a4 100644 +--- a/testing/test_boxed.py ++++ b/testing/test_boxed.py +@@ -1,6 +1,10 @@ ++import marshal + import os + + import pytest ++from _pytest.reports import TestReport ++ ++from pytest_forked import serialize_report + + needsfork = pytest.mark.skipif(not hasattr(os, "fork"), reason="os.fork required") + +@@ -119,3 +123,42 @@ def test_forked_followed_by_other_test_tears_down(testdir): + def test_is_not_boxed_by_default(testdir): + config = testdir.parseconfig(testdir.tmpdir) + assert not config.option.forked ++ ++ ++def test_serialize_report_roundtrips_through_marshal(): ++ rep = TestReport( ++ "test_x.py::test_y", ++ ("test_x.py", 1, "test_y"), ++ {}, ++ "passed", ++ None, ++ "call", ++ [], ++ 0.1, ++ 0.0, ++ 0.1, ++ [], ++ ) ++ d = marshal.loads(marshal.dumps(serialize_report(rep))) ++ assert "_id" not in d ++ rebuilt = TestReport(**d) ++ assert rebuilt.nodeid == rep.nodeid ++ assert rebuilt.outcome == "passed" ++ ++ ++@needsfork ++def test_child_exception_traceback_is_reported(testdir): ++ p1 = testdir.makepyfile( ++ """ ++ def test_function(record_property): ++ record_property("obj", object()) ++ """ ++ ) ++ result = testdir.runpytest(p1, "--forked") ++ result.stdout.fnmatch_lines( ++ [ ++ "*EXITED with status 3*", ++ "*ValueError: unmarshallable object*", ++ "*1 failed*", ++ ] ++ ) diff --git a/meta-python/recipes-devtools/python/python3-pytest-forked_1.6.0.bb b/meta-python/recipes-devtools/python/python3-pytest-forked_1.7.5.bb similarity index 66% rename from meta-python/recipes-devtools/python/python3-pytest-forked_1.6.0.bb rename to meta-python/recipes-devtools/python/python3-pytest-forked_1.7.5.bb index 825141faa2..e75443a431 100644 --- a/meta-python/recipes-devtools/python/python3-pytest-forked_1.6.0.bb +++ b/meta-python/recipes-devtools/python/python3-pytest-forked_1.7.5.bb @@ -3,17 +3,17 @@ HOMEPAGE = "https://github.com/pytest-dev/pytest-forked" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=772fcdaca14b378878d05c7d857e6c3e" -SRC_URI[sha256sum] = "4dafd46a9a600f65d822b8f605133ecf5b3e1941ebb3588e943b4e3eb71a5a3f" +SRC_URI += "file://0001-Fix-report-serialization-with-pytest-9.2.patch" -inherit pypi python_setuptools_build_meta +SRC_URI[sha256sum] = "00f2bee51612f29b8e6b81eed2c3b2975e824c2693394f5bdaf7a1369078ba5f" -PYPI_PACKAGE_SDIST = "pytest-forked" +inherit pypi python_setuptools_build_meta PEP517_BUILD_OPTS = "--skip-dependency-check" DEPENDS += "python3-setuptools-scm-native" RDEPENDS:${PN} += " \ - python3-py \ + python3-multiprocessing \ python3-pytest \ " From patchwork Thu Nov 5 07:10:38 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 102992 Received: from mail-dy1-f172.google.com (mail-dy1-f172.google.com [74.125.82.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.29084.1793862646167192253 for ; Wed, 04 Nov 2026 23:10:46 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=wzQ6Hz7k; spf=pass (domain: gmail.com, ip: 74.125.82.172, mailfrom: raj.khem@gmail.com) Received: by mail-dy1-f172.google.com with SMTP id 5a478bee46e88-36d6765756fso1668583eec.1 for ; Wed, 04 Nov 2026 23:10:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793862645; x=1794467445; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=EXU1ttBuQwDSc1SMXV2LRnBRmXjN2kfq2v28Yo9mnEs=; b=wzQ6Hz7kBE4HydqNAvtzixGKQu6do/U2XkvR/4n5fE9OcoSFwpPOVHDjumACJLNLh9 5Sk0XH1Q3OPQspcfIJuddwjolrRA+Jq4GTr9bGQhMdRe+U5Rvh51qXF+CmH+Q67JdMJw INg/5CeZMn6AhVhdJja7SryI5Vn13qcW5JrZrkvE5IYtLYrkUQOnWDaaKZjFa3vkpk80 fnRwZNc1UcqfnWX3Ss8Lvh9On8XRJlLRlesG7d0QZEetRKSfewUXfWKNPFd503hlVAc2 RBCKBfpOsOQ6umkZ3jNpb/5obdmjJuIMYn+t+WeujFG7AFC7QShStNdp4hog09eepozS 5Yhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793862645; x=1794467445; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=EXU1ttBuQwDSc1SMXV2LRnBRmXjN2kfq2v28Yo9mnEs=; b=lklHMqc9wHA09R2+9Fa49PdzfN5c8eQy1Mgt9uCn5iiknaS9/jxDbiCV90K60ypIo2 TaWsgYJyhGXAbhucE7aHS01j0vOvM0xkvqydTE/XC4EgmdPJAo4u+Y8QtZSbiiYxTwkF 7hd28KyDyv6Q6iDkZnHuOaW564QHfvDXLJfFJxwmcY4B8f06ECFBo3eerEKlvovlJP94 eC6gessAjbP6qnm3Dfa04+Io2zLXfu1D1VLuuCPfu0eF5k5WUa5ODta+aMTH3vJCCGO9 Bp4qu4Ib6UEr2CUvidOb21gNdcUc/Mwjmm0yI/8FHSZ7WJ1shav/hM/8PznBvtY3n+09 tvfw== X-Gm-Message-State: APuU4Z+ZoOa28CJbq+x/SwLryJtq4hFA5IWlEg5wZTDaYh42Sqbtdp1O fvUXWIyPdK7cRRu223AOQAKS/ZRiu+PVgdirJCRJxpSzz/z7uz+rSEfpYxSkPeIVPjI= X-Gm-Gg: AYBFou30UrkbzVdSCFSw8CIpmqvve5rSyRJZhgrq5IRepCFm4wHXcZJniuaqzSmr6jy RPgdTlWk7184bNMpPTW5W8tID6gey2ZPqUClaITGuLk+TDnEXRR6BjoGB32eqpxd1+UB70DNhov f+/9SAfxp9FprMc12DGYNfOtsiw6edrIl9EQef/i47fBSDWCWDyBGr2jfyhOVNuYU4/qHdxPGPU EG2PmFzkm6+MiX+KGoBrU1HCoKW20WVOZRnIvkEV9n2A48ChcoDt5avANYSv9oddgsvhSARM2b2 tHsz6B8Fq5yEHy1Dw5Yh+7MGfLgGFh/zsPIoJ+JRKvmqUkzK7QeEuRI5z3Kmo7f8TqtYz9GwQlX gUtmviNrSdHGZwbzg2C0S+eRgIv/uZ9rcVjTGLsG75So4sgSMVIK/LXuSmldGmITgaRqfShSiiV 0xnzguIaMCOKLYAM8eTQmoa9ZyAyW5ZMR1CQih7jtXR+/1/IwIddR/y6uNXa3WkjJx9yMqH24qz XfKrVtSy0zQia2ATogIFb3hm+QxoHnVbo6M9fc90b1OOQyYug23tA6wtEnARUYmaqmpM/3BbP/O hl/aFMLjRlSoQmU98plmDELjAJLrq0EXfJkM/n6UXNwy7QHIaomLSUP6nZnzQ+gUV7q123Dvo3d /H5GRobSfiibusBz/v0K6Wmdl7A+1CGgcQo5KjG0CQAVv5HsLmtn9OHi0CMDhvPWLjze1vzn9Fs bI06CyrXLoDCr4qAswmGn7DI/DFJx21AwmFLs5LRfJ3MYNPeIYHHENru00X5DKPErsPfOBpZfcF T7comYuo/uX/0qHDfBXOmCsvZ+gf47uLXEu1L5T/8SopdBMOhh38Uv1ULg5UWZvtsLww4Yk8rs0 4e1n X-Received: by 2002:a05:693c:20c5:10b0:36c:da71:37e0 with SMTP id 5a478bee46e88-36cda807b27mr5986821eec.2.1793862645149; Wed, 04 Nov 2026 23:10:45 -0800 (PST) Return-Path: Received: from apollo.tail3ccdd3.ts.net ([147.160.63.35]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-36ca39b3b7esm13132205eec.28.2026.11.04.23.10.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2026 23:10:44 -0800 (PST) From: Khem Raj X-Google-Original-From: Khem Raj To: openembedded-devel@lists.openembedded.org Cc: Khem Raj Subject: [meta-python][PATCH 4/4] python3-execnet: Fix test_remote_exec_module_is_removed ptest Date: Wed, 4 Nov 2026 23:10:38 -0800 Message-ID: <20261105071038.2029943-4-khem.raj@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261105071038.2029943-1-khem.raj@oss.qualcomm.com> References: <20261105071038.2029943-1-khem.raj@oss.qualcomm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Thu, 05 Nov 2026 07:10:49 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/131872 The test is parametrized over gateway types; it imports "remote" from its tmp_path and then deletes that directory, but the module stays in sys.modules. Every run after the first got the stale module back and failed with "OSError: could not get source code". Drop the cached module before importing it. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj --- ...hed-remote-module-in-test_remote_exe.patch | 38 +++++++++++++++++++ .../python/python3-execnet_2.1.2.bb | 2 + 2 files changed, 40 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-execnet/0001-testing-Drop-cached-remote-module-in-test_remote_exe.patch diff --git a/meta-python/recipes-devtools/python/python3-execnet/0001-testing-Drop-cached-remote-module-in-test_remote_exe.patch b/meta-python/recipes-devtools/python/python3-execnet/0001-testing-Drop-cached-remote-module-in-test_remote_exe.patch new file mode 100644 index 0000000000..23957588c8 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-execnet/0001-testing-Drop-cached-remote-module-in-test_remote_exe.patch @@ -0,0 +1,38 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 4 Nov 2026 16:22:44 -0800 +Subject: [PATCH] testing: Drop cached remote module in + test_remote_exec_module_is_removed + +test_remote_exec_module_is_removed is parametrized over the gateway +fixtures. The first run imports "remote" from its tmp_path and then +removes that directory, but the module stays in sys.modules. Later +runs then get the stale module back from "import remote", whose source +file is gone, and remote_exec() fails with: + + OSError: could not get source code + +Remove "remote" from sys.modules before importing it, so each run +imports the module it just wrote. + +Upstream-Status: Submitted [https://github.com/pytest-dev/execnet/pull/442] + +Signed-off-by: Khem Raj +--- + testing/test_gateway.py | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/testing/test_gateway.py b/testing/test_gateway.py +index 634f237..c571bbd 100644 +--- a/testing/test_gateway.py ++++ b/testing/test_gateway.py +@@ -130,6 +130,9 @@ class TestBasicGateway: + ) + + monkeypatch.syspath_prepend(tmp_path) ++ # The test is parametrized; drop the module cached by a previous run, ++ # whose source file has since been removed. ++ monkeypatch.delitem(sys.modules, "remote", raising=False) + import remote # type: ignore[import-not-found] + + ch = gw.remote_exec(remote) diff --git a/meta-python/recipes-devtools/python/python3-execnet_2.1.2.bb b/meta-python/recipes-devtools/python/python3-execnet_2.1.2.bb index 34f0a1f670..d94ab6375b 100644 --- a/meta-python/recipes-devtools/python/python3-execnet_2.1.2.bb +++ b/meta-python/recipes-devtools/python/python3-execnet_2.1.2.bb @@ -11,6 +11,8 @@ DEPENDS += "\ python3-hatch-vcs-native \ " +SRC_URI += "file://0001-testing-Drop-cached-remote-module-in-test_remote_exe.patch" + SRC_URI[sha256sum] = "63d83bfdd9a23e35b9c6a3261412324f964c2ec8dcd8d3c6916ee9373e0befcd" inherit ptest-python-pytest pypi python_hatchling