From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id B983515817D for ; Fri, 14 Jun 2024 15:07:20 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 011B8E2AE5; Fri, 14 Jun 2024 15:07:20 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id CD7BAE2AE5 for ; Fri, 14 Jun 2024 15:07:19 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id B950A335D6E for ; Fri, 14 Jun 2024 15:07:18 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id ECAAE11DF for ; Fri, 14 Jun 2024 15:07:16 +0000 (UTC) From: "Michał Górny" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" Message-ID: <1718377632.26f39f2f8320556c2515ac88643e338757d9c9d3.mgorny@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/scikit-build/, dev-python/scikit-build/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-python/scikit-build/files/scikit-build-0.17.6-setuptools-69.3.patch dev-python/scikit-build/scikit-build-0.17.6.ebuild X-VCS-Directories: dev-python/scikit-build/ dev-python/scikit-build/files/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: 26f39f2f8320556c2515ac88643e338757d9c9d3 X-VCS-Branch: master Date: Fri, 14 Jun 2024 15:07:16 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 6c4846af-2689-443d-8e4d-345cc83a0789 X-Archives-Hash: b0b030c3bd59d3d1103e5326971cec1e commit: 26f39f2f8320556c2515ac88643e338757d9c9d3 Author: Michał Górny gentoo org> AuthorDate: Fri Jun 14 14:43:57 2024 +0000 Commit: Michał Górny gentoo org> CommitDate: Fri Jun 14 15:07:12 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=26f39f2f dev-python/scikit-build: Fix tests Thanks to arkamar for digging the patch up. Closes: https://bugs.gentoo.org/933655 Signed-off-by: Michał Górny gentoo.org> .../scikit-build-0.17.6-setuptools-69.3.patch | 164 +++++++++++++++++++++ dev-python/scikit-build/scikit-build-0.17.6.ebuild | 13 +- 2 files changed, 175 insertions(+), 2 deletions(-) diff --git a/dev-python/scikit-build/files/scikit-build-0.17.6-setuptools-69.3.patch b/dev-python/scikit-build/files/scikit-build-0.17.6-setuptools-69.3.patch new file mode 100644 index 000000000000..ce5121bea72f --- /dev/null +++ b/dev-python/scikit-build/files/scikit-build-0.17.6-setuptools-69.3.patch @@ -0,0 +1,164 @@ +From acee12430753e8350435d4304196e8eaa654ccd6 Mon Sep 17 00:00:00 2001 +From: Steve Kowalik +Date: Mon, 3 Jun 2024 20:47:20 +1000 +Subject: [PATCH] Support setuptools 69.3.0 changes in four tests + +setuptools 69.3.0 now canonicalizes package names in filenames, which +means all dashes are now converted to underscores, leading to test +failures due to FileNotFoundErrors. Handle both cases to support older +and newer setuptools. +--- + tests/test_hello_cython.py | 23 ++++++++++++++--------- + tests/test_hello_fortran.py | 29 +++++++++++++++++------------ + tests/test_hello_pure.py | 15 ++++++++++----- + tests/test_manifest_in.py | 17 +++++++++++------ + 4 files changed, 52 insertions(+), 32 deletions(-) + +diff --git a/tests/test_hello_cython.py b/tests/test_hello_cython.py +index dc95f697..1d9e944d 100644 +--- a/tests/test_hello_cython.py ++++ b/tests/test_hello_cython.py +@@ -29,20 +29,25 @@ def test_hello_cython_sdist(): + sdists_zip = glob.glob("dist/*.zip") + assert sdists_tar or sdists_zip + ++ dirname = "hello-cython-1.2.3" ++ # setuptools 69.3.0 and above now canonicalize the filename as well. ++ if any("hello_cython" in x for x in sdists_zip + sdists_tar): ++ dirname = "hello_cython-1.2.3" ++ + expected_content = [ +- "hello-cython-1.2.3/CMakeLists.txt", +- "hello-cython-1.2.3/hello/_hello.pyx", +- "hello-cython-1.2.3/hello/CMakeLists.txt", +- "hello-cython-1.2.3/hello/__init__.py", +- "hello-cython-1.2.3/hello/__main__.py", +- "hello-cython-1.2.3/setup.py", ++ f"{dirname}/CMakeLists.txt", ++ f"{dirname}/hello/_hello.pyx", ++ f"{dirname}/hello/CMakeLists.txt", ++ f"{dirname}/hello/__init__.py", ++ f"{dirname}/hello/__main__.py", ++ f"{dirname}/setup.py", + ] + +- sdist_archive = "dist/hello-cython-1.2.3.zip" ++ sdist_archive = f"dist/{dirname}.zip" + if sdists_tar: +- sdist_archive = "dist/hello-cython-1.2.3.tar.gz" ++ sdist_archive = f"dist/{dirname}.tar.gz" + +- check_sdist_content(sdist_archive, "hello-cython-1.2.3", expected_content, package_dir="hello") ++ check_sdist_content(sdist_archive, dirname, expected_content, package_dir="hello") + + + @project_setup_py_test("hello-cython", ["bdist_wheel"]) +diff --git a/tests/test_hello_fortran.py b/tests/test_hello_fortran.py +index 41f5f444..be9cede9 100644 +--- a/tests/test_hello_fortran.py ++++ b/tests/test_hello_fortran.py +@@ -33,23 +33,28 @@ def test_hello_fortran_sdist(): + sdists_zip = glob.glob("dist/*.zip") + assert sdists_tar or sdists_zip + ++ dirname = "hello-fortran-1.2.3" ++ # setuptools 69.3.0 and above now canonicalize the filename as well. ++ if any("hello_fortran" in x for x in sdists_zip + sdists_tar): ++ dirname = "hello_fortran-1.2.3" ++ + expected_content = [ +- "hello-fortran-1.2.3/bonjour/_bonjour.f90", +- "hello-fortran-1.2.3/bonjour/_bonjour.pyf", +- "hello-fortran-1.2.3/bonjour/CMakeLists.txt", +- "hello-fortran-1.2.3/CMakeLists.txt", +- "hello-fortran-1.2.3/hello/_hello.f90", +- "hello-fortran-1.2.3/hello/CMakeLists.txt", +- "hello-fortran-1.2.3/hello/__init__.py", +- "hello-fortran-1.2.3/hello/__main__.py", +- "hello-fortran-1.2.3/setup.py", ++ f"{dirname}/bonjour/_bonjour.f90", ++ f"{dirname}/bonjour/_bonjour.pyf", ++ f"{dirname}/bonjour/CMakeLists.txt", ++ f"{dirname}/CMakeLists.txt", ++ f"{dirname}/hello/_hello.f90", ++ f"{dirname}/hello/CMakeLists.txt", ++ f"{dirname}/hello/__init__.py", ++ f"{dirname}/hello/__main__.py", ++ f"{dirname}/setup.py", + ] + +- sdist_archive = "dist/hello-fortran-1.2.3.zip" ++ sdist_archive = f"dist/{dirname}.zip" + if sdists_tar: +- sdist_archive = "dist/hello-fortran-1.2.3.tar.gz" ++ sdist_archive = f"dist/{dirname}.tar.gz" + +- check_sdist_content(sdist_archive, "hello-fortran-1.2.3", expected_content) ++ check_sdist_content(sdist_archive, dirname, expected_content) + + + @pytest.mark.fortran() +diff --git a/tests/test_hello_pure.py b/tests/test_hello_pure.py +index 21b0840b..cc176854 100644 +--- a/tests/test_hello_pure.py ++++ b/tests/test_hello_pure.py +@@ -27,16 +27,21 @@ def test_hello_pure_sdist(): + sdists_zip = glob.glob("dist/*.zip") + assert sdists_tar or sdists_zip + ++ dirname = "hello-pure-1.2.3" ++ # setuptools 69.3.0 and above now canonicalize the filename as well. ++ if any("hello_pure" in x for x in sdists_zip + sdists_tar): ++ dirname = "hello_pure-1.2.3" ++ + expected_content = [ +- "hello-pure-1.2.3/hello/__init__.py", +- "hello-pure-1.2.3/setup.py", ++ f"{dirname}/hello/__init__.py", ++ f"{dirname}/setup.py", + ] + +- sdist_archive = "dist/hello-pure-1.2.3.zip" ++ sdist_archive = f"dist/{dirname}.zip" + if sdists_tar: +- sdist_archive = "dist/hello-pure-1.2.3.tar.gz" ++ sdist_archive = f"dist/{dirname}.tar.gz" + +- check_sdist_content(sdist_archive, "hello-pure-1.2.3", expected_content) ++ check_sdist_content(sdist_archive, dirname, expected_content) + + + @project_setup_py_test("hello-pure", ["bdist_wheel"], disable_languages_test=True) +diff --git a/tests/test_manifest_in.py b/tests/test_manifest_in.py +index 86652308..65c23d1a 100644 +--- a/tests/test_manifest_in.py ++++ b/tests/test_manifest_in.py +@@ -21,17 +21,22 @@ def test_manifest_in_sdist(): + sdists_zip = glob.glob("dist/*.zip") + assert sdists_tar or sdists_zip + ++ dirname = "manifest-in-1.2.3" ++ # setuptools 69.3.0 and above now canonicalize the filename as well. ++ if any("manifest_in" in x for x in sdists_zip + sdists_tar): ++ dirname = "manifest_in-1.2.3" ++ + expected_content = [ +- "manifest-in-1.2.3/hello/__init__.py", +- "manifest-in-1.2.3/setup.py", +- "manifest-in-1.2.3/MANIFEST.in", ++ f"{dirname}/hello/__init__.py", ++ f"{dirname}/setup.py", ++ f"{dirname}/MANIFEST.in", + ] + +- sdist_archive = "dist/manifest-in-1.2.3.zip" ++ sdist_archive = f"dist/{dirname}.zip" + if sdists_tar: +- sdist_archive = "dist/manifest-in-1.2.3.tar.gz" ++ sdist_archive = f"dist/{dirname}.tar.gz" + +- check_sdist_content(sdist_archive, "manifest-in-1.2.3", expected_content) ++ check_sdist_content(sdist_archive, dirname, expected_content) + + + @project_setup_py_test("manifest-in", ["bdist_wheel"], disable_languages_test=True) diff --git a/dev-python/scikit-build/scikit-build-0.17.6.ebuild b/dev-python/scikit-build/scikit-build-0.17.6.ebuild index 90df4c6ec5e5..13aa6fbe700a 100644 --- a/dev-python/scikit-build/scikit-build-0.17.6.ebuild +++ b/dev-python/scikit-build/scikit-build-0.17.6.ebuild @@ -24,7 +24,7 @@ RDEPEND=" >=dev-python/setuptools-42.0.0[${PYTHON_USEDEP}] $(python_gen_cond_dep ' dev-python/tomli[${PYTHON_USEDEP}] - ' 3.{9..10}) + ' 3.10) >=dev-python/wheel-0.32.0[${PYTHON_USEDEP}] " @@ -43,9 +43,15 @@ BDEPEND=" distutils_enable_sphinx docs \ dev-python/sphinx-rtd-theme \ dev-python/sphinx-issues +# note: tests are unstable with xdist distutils_enable_tests pytest src_prepare() { + local PATCHES=( + # https://github.com/scikit-build/scikit-build/pull/1087 + "${FILESDIR}/${P}-setuptools-69.3.patch" + ) + # not packaged sed -i -e '/cmakedomain/d' docs/conf.py || die distutils-r1_src_prepare @@ -63,6 +69,9 @@ python_test() { ;; esac - epytest -m "not isolated and not nosetuptoolsscm" + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -p pytest_mock \ + -m "not isolated and not nosetuptoolsscm" \ + -o tmp_path_retention_count=1 rm -r "${BUILD_DIR}/install$(python_get_sitedir)"/{easy-install.pth,*.egg,*.egg-link} || die }