Github messages for voidlinux
 help / color / mirror / Atom feed
From: ahesford <ahesford@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] [RFC] Support for PEP517 build systems in python3-module
Date: Wed, 02 Dec 2020 20:30:18 +0100	[thread overview]
Message-ID: <20201202193018.hJ-OMTwg_xC5blfEJxpQ8H46A6KIr6Gfa9mnmuBxSj4@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-26883@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 2539 bytes --]

There is an updated pull request by ahesford against master on the void-packages repository

https://github.com/ahesford/void-packages packaging
https://github.com/void-linux/void-packages/pull/26883

[RFC] Support for PEP517 build systems in python3-module
I [have been told](https://github.com/pypa/packaging/issues/363) that PEP517 build systems are the way of the future for Python package building and installation, and `setuptools` will become (or is now) disfavored. `python3-packaging` is the first of our packages to drop `setuptools` and specifically require a PEP517 builder.

This is an attempt to support PEP517 builds in our `python3-module` build style. For now, the preferred (only?) way to do PEP517 builds is to rely on `pip` to do the work. Fortunately, because no PEP517 builder supports compiled extensions, we can avoid the pain of trying to force `pip` to behave with cross compilers (for now).

Use of the PEP517 build procedure in a template is enabled by setting `python_pep517=yes`. If this is adopted, we'll have to modify `xlint` as well.

`pip` can do a one-pass build and install, but I figured it was better to split into a build-wheel stage and an install-wheel stage so people can do `./xbps-src build` and investigate the artifacts.

I am not thrilled with the use of globs in `do_install` when setting a default `$python_pep517_wheel` but, according to [PEP 427](https://www.python.org/dev/peps/pep-0427/#file-name-convention) and its referenced [PEP 425](https://www.python.org/dev/peps/pep-0425), the filename components I'm trying to match with the globs are not easily predicted. In any case, if this produces undesirable behavior in specific templates, the author can manually set that variable. Any other ideas are welcome.

Finally, the build process produces `direct_url.json` in the Python `dist-info` directory to comply with [PEP 610](https://www.python.org/dev/peps/pep-0610), which replaces a simple version number in `pip freeze` output with a `file://` URL pointing to the location of the wheel used for installation. (In our case, this will be `/builddir/$wrksrc/$build_wrksrc/$python_pep517_wheel`.) For distribution packages, I do not believe this is desirable. We can manually remove the file, for example in `do_install`, assuming the `dist-info` directory is predictable. Comments about doing this are welcome.

cc: any @void-linux/pkg-committers with a stake in Python packages

A patch file from https://github.com/void-linux/void-packages/pull/26883.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-packaging-26883.patch --]
[-- Type: text/x-diff, Size: 19944 bytes --]

From 92427aa895cc9546c1579b614c671986521314b2 Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Wed, 2 Dec 2020 10:30:13 -0500
Subject: [PATCH 1/5] build-style/python3-module: add support for PEP517 build
 systems

---
 Manual.md                                     |  9 ++++++++
 common/build-style/python3-module.sh          | 23 +++++++++++++++++--
 .../environment/build-style/python3-module.sh |  4 ++++
 3 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/Manual.md b/Manual.md
index 7647f957129..8bab006868b 100644
--- a/Manual.md
+++ b/Manual.md
@@ -1516,6 +1516,15 @@ By default it's set to `2`. This variable is needed for multi-language
 applications (e.g., the application is written in C while the command is
 written in Python) or just single Python file ones that live in `/usr/bin`.
 
+- `python_pep517`: valid only for the `python3-module` build style, setting this to any non-empty
+value will cause `xbps-src` to build and install Python packages that conform to the PEP517 build
+description format. With this enabled, the `xbps-src` build stage produces a Python wheel and the
+the install stage installs the wheel to `$DESTDIR`.
+
+- `python_pep517_wheel`: if necessary, set this to the location of the wheel produced by the build
+stage when `python_pep517` is defined. In most circumstances, `xbps-src` will automatically find and
+install the correct wheel without requiring that this variable be set.
+
 > NOTE: you need to define it *only* for non-Python modules.
 
 Also, a set of useful variables are defined to use in the templates:
diff --git a/common/build-style/python3-module.sh b/common/build-style/python3-module.sh
index db56feb5e0e..14943d69356 100644
--- a/common/build-style/python3-module.sh
+++ b/common/build-style/python3-module.sh
@@ -3,7 +3,13 @@
 #
 
 do_build() {
-	if [ -n "$CROSS_BUILD" ]; then
+	if [ -n "$python_pep517" ]; then
+		# No PEP517 build tool currently supports compiled extensions
+		# Thus, there is no need to accommodate cross compilation here
+		mkdir -p build dist
+		TMPDIR=build python3 -m pip wheel --no-deps \
+			--no-build-isolation --no-clean ${make_build_args} .
+	elif [ -n "$CROSS_BUILD" ]; then
 		PYPREFIX="$XBPS_CROSS_BASE"
 		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
 		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
@@ -24,6 +30,11 @@ do_build() {
 }
 
 do_check() {
+	if [ -n "$python_pep517" ]; then
+		msg_warn "No standard test exists for PEP517 Python templates"
+		return 0
+	fi
+
 	if [ -z "$make_check_target" ]; then
 		if ! python3 setup.py --help test >/dev/null 2>&1; then
 			msg_warn "No command 'test' defined by setup.py.\n"
@@ -36,7 +47,15 @@ do_check() {
 }
 
 do_install() {
-	if [ -n "$CROSS_BUILD" ]; then
+	if [ -n "$python_pep517" ]; then
+		# No PEP517 build tool currently supports compiled extensions
+		# Thus, there is no need to accommodate cross compilation here
+		: ${python_pep517_wheel:=${pkgname#python3-}-${version}-*-*-*.whl}
+
+		TMPDIR=build python3 -m pip install --prefix /usr \
+			--root ${DESTDIR} --no-deps --no-build-isolation \
+			--no-clean ${make_install_args} ${python_pep517_wheel}
+	elif [ -n "$CROSS_BUILD" ]; then
 		PYPREFIX="$XBPS_CROSS_BASE"
 		CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
 		LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
diff --git a/common/environment/build-style/python3-module.sh b/common/environment/build-style/python3-module.sh
index 56471fe88bc..9bc04e6811e 100644
--- a/common/environment/build-style/python3-module.sh
+++ b/common/environment/build-style/python3-module.sh
@@ -1,2 +1,6 @@
 lib32disabled=yes
 makedepends+=" python3"
+
+if [ -n "$python_pep517" ]; then
+	hostmakedepends+=" python3-pip"
+fi

From cbc7dec975bab17ee97c146e6c35d4dbbf86071b Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Wed, 2 Dec 2020 08:08:33 -0500
Subject: [PATCH 2/5] New package: python3-flit_core-3.0.0

---
 .../python3-flit_core/patches/use_toml.patch  | 254 ++++++++++++++++++
 srcpkgs/python3-flit_core/template            |  24 ++
 2 files changed, 278 insertions(+)
 create mode 100644 srcpkgs/python3-flit_core/patches/use_toml.patch
 create mode 100644 srcpkgs/python3-flit_core/template

diff --git a/srcpkgs/python3-flit_core/patches/use_toml.patch b/srcpkgs/python3-flit_core/patches/use_toml.patch
new file mode 100644
index 00000000000..8a0a668f616
--- /dev/null
+++ b/srcpkgs/python3-flit_core/patches/use_toml.patch
@@ -0,0 +1,254 @@
+From b81b1da55ef0f2768413669725d2874fcb0c29fb Mon Sep 17 00:00:00 2001
+From: Kale Kundert <kale@thekunderts.net>
+Date: Sun, 2 Feb 2020 19:22:34 -0500
+Subject: [PATCH] Replace 'pytoml' with 'toml'
+
+The pytoml package is deprecated, and doesn't support the most recent
+TOML standard (e.g. dotted keys).
+---
+ doc/development.rst                  |  2 +-
+ doc/pyproject_toml.rst               |  2 +-
+ flit/init.py                         |  2 +-
+ flit/tomlify.py                      |  8 ++++----
+ flit_core/flit_core/build_thyself.py |  2 +-
+ flit_core/flit_core/config.py        |  2 +-
+ flit_core/flit_core/sdist.py         |  2 +-
+ flit_core/flit_core/wheel.py         |  2 +-
+ pyproject.toml                       |  2 +-
+ tests/test_init.py                   | 12 ++++++------
+ tests/test_tomlify.py                |  4 ++--
+ tox.ini                              |  2 +-
+ 12 files changed, 21 insertions(+), 21 deletions(-)
+
+diff --git doc/development.rst doc/development.rst
+index 9b8dc5e..f714999 100644
+--- doc/development.rst
++++ doc/development.rst
+@@ -5,7 +5,7 @@ To get a development installation of Flit itself::
+ 
+     git clone https://github.com/takluyver/flit.git
+     cd flit
+-    python3 -m pip install docutils requests pytoml
++    python3 -m pip install docutils requests toml
+     python3 bootstrap_dev.py
+ 
+ This links Flit into the current Python environment, so you can make changes
+diff --git doc/pyproject_toml.rst doc/pyproject_toml.rst
+index f9ddc7f..8d38bf9 100644
+--- doc/pyproject_toml.rst
++++ doc/pyproject_toml.rst
+@@ -120,7 +120,7 @@ Here's the full metadata section from flit itself:
+         "flit_core>=2.2.0",
+         "requests",
+         "docutils",
+-        "pytoml",
++        "toml",
+         "zipfile36; python_version in '3.3 3.4 3.5'",
+     ]
+     requires-python=">=3.5"
+diff --git flit/init.py flit/init.py
+index f7ea93a..b0c77c6 100644
+--- flit/init.py
++++ flit/init.py
+@@ -5,7 +5,7 @@
+ from pathlib import Path
+ import re
+ import sys
+-import pytoml as toml
++import toml
+ 
+ def get_data_dir():
+     """Get the directory path for flit user data files.
+diff --git flit/tomlify.py flit/tomlify.py
+index 0c8db69..a9c9c60 100644
+--- flit/tomlify.py
++++ flit/tomlify.py
+@@ -5,7 +5,7 @@
+ import configparser
+ import os
+ from pathlib import Path
+-import pytoml
++import toml
+ 
+ from .config import metadata_list_fields
+ from .init import TEMPLATE
+@@ -40,11 +40,11 @@ def convert(path):
+ 
+     written_entrypoints = False
+     with Path('pyproject.toml').open('w', encoding='utf-8') as f:
+-        f.write(TEMPLATE.format(metadata=pytoml.dumps(metadata)))
++        f.write(TEMPLATE.format(metadata=toml.dumps(metadata)))
+ 
+         if scripts:
+             f.write('\n[tool.flit.scripts]\n')
+-            pytoml.dump(scripts, f)
++            toml.dump(scripts, f)
+ 
+         for groupname, group in entrypoints.items():
+             if not dict(group):
+@@ -53,7 +53,7 @@ def convert(path):
+             if '.' in groupname:
+                 groupname = '"{}"'.format(groupname)
+             f.write('\n[tool.flit.entrypoints.{}]\n'.format(groupname))
+-            pytoml.dump(OrderedDict(group), f)
++            toml.dump(OrderedDict(group), f)
+             written_entrypoints = True
+ 
+     print("Written 'pyproject.toml'")
+diff --git flit_core/flit_core/build_thyself.py flit_core/flit_core/build_thyself.py
+index 7daf67f..f3aaf7c 100644
+--- flit_core/flit_core/build_thyself.py
++++ flit_core/flit_core/build_thyself.py
+@@ -25,7 +25,7 @@
+     'summary': ('Distribution-building parts of Flit. '
+                     'See flit package for more information'),
+     'requires_dist': [
+-        'pytoml',
++        'toml',
+     ],
+     'requires_python': '>=3.4',
+     'classifiers': [
+diff --git flit_core/flit_core/config.py flit_core/flit_core/config.py
+index 0af9c00..6ed20d3 100644
+--- flit_core/flit_core/config.py
++++ flit_core/flit_core/config.py
+@@ -3,7 +3,7 @@
+ import logging
+ import os
+ import os.path as osp
+-import pytoml as toml
++import toml
+ import re
+ 
+ log = logging.getLogger(__name__)
+diff --git flit_core/flit_core/sdist.py flit_core/flit_core/sdist.py
+index 1fe5bb4..963b4e5 100644
+--- flit_core/flit_core/sdist.py
++++ flit_core/flit_core/sdist.py
+@@ -95,7 +95,7 @@ def __init__(self, module, metadata, cfgdir, reqs_by_extra, entrypoints,
+ 
+     @classmethod
+     def from_ini_path(cls, ini_path: Path):
+-        # Local import so bootstrapping doesn't try to load pytoml
++        # Local import so bootstrapping doesn't try to load toml
+         from .config import read_flit_config
+         ini_info = read_flit_config(ini_path)
+         srcdir = ini_path.parent
+diff --git flit_core/flit_core/wheel.py flit_core/flit_core/wheel.py
+index 1550846..2bc55e1 100644
+--- flit_core/flit_core/wheel.py
++++ flit_core/flit_core/wheel.py
+@@ -83,7 +83,7 @@ def __init__(self, directory, module, metadata, entrypoints, target_fp):
+ 
+     @classmethod
+     def from_ini_path(cls, ini_path, target_fp):
+-        # Local import so bootstrapping doesn't try to load pytoml
++        # Local import so bootstrapping doesn't try to load toml
+         from .config import read_flit_config
+         directory = ini_path.parent
+         ini_info = read_flit_config(ini_path)
+diff --git pyproject.toml pyproject.toml
+index ac8d001..0af74b2 100644
+--- pyproject.toml
++++ pyproject.toml
+@@ -11,7 +11,7 @@ requires=[
+     "flit_core>=3.0.0",
+     "requests",
+     "docutils",
+-    "pytoml",
++    "toml",
+     "zipfile36; python_version in '3.3 3.4 3.5'",
+ ]
+ requires-python=">=3.5"
+diff --git tests/test_init.py tests/test_init.py
+index fb8ad4d..7330ff5 100644
+--- tests/test_init.py
++++ tests/test_init.py
+@@ -6,7 +6,7 @@
+ from unittest.mock import patch
+ import pytest
+ 
+-import pytoml
++import toml
+ 
+ from flit import init
+ 
+@@ -107,7 +107,7 @@ def test_init():
+         generated = Path(td) / 'pyproject.toml'
+         assert_isfile(generated)
+         with generated.open() as f:
+-            data = pytoml.load(f)
++            data = toml.load(f)
+         assert data['tool']['flit']['metadata'][
+                    'author-email'] == "test@example.com"
+         license = Path(td) / 'LICENSE'
+@@ -131,7 +131,7 @@ def test_init_homepage_and_license_are_optional():
+         ti = init.TerminalIniter(td)
+         ti.initialise()
+         with Path(td, 'pyproject.toml').open() as f:
+-            data = pytoml.load(f)
++            data = toml.load(f)
+         assert not Path(td, 'LICENSE').exists()
+     metadata = data['tool']['flit']['metadata']
+     assert metadata == {
+@@ -154,7 +154,7 @@ def test_init_homepage_validator():
+         ti = init.TerminalIniter(td)
+         ti.initialise()
+         with Path(td, 'pyproject.toml').open() as f:
+-            data = pytoml.load(f)
++            data = toml.load(f)
+     metadata = data['tool']['flit']['metadata']
+     assert metadata == {
+         'author': 'Test Author',
+@@ -176,7 +176,7 @@ def test_author_email_field_is_optional():
+         ti = init.TerminalIniter(td)
+         ti.initialise()
+         with Path(td, 'pyproject.toml').open() as f:
+-            data = pytoml.load(f)
++            data = toml.load(f)
+         assert not Path(td, 'LICENSE').exists()
+     metadata = data['tool']['flit']['metadata']
+     assert metadata == {
+@@ -216,7 +216,7 @@ def test_init_readme_found_yes_choosen():
+         ti = init.TerminalIniter(td)
+         ti.initialise()
+         with Path(td, 'pyproject.toml').open() as f:
+-            data = pytoml.load(f)
++            data = toml.load(f)
+ 
+     metadata = data['tool']['flit']['metadata']
+     assert metadata == {
+diff --git tests/test_tomlify.py tests/test_tomlify.py
+index 2bd75dc..a7b7978 100644
+--- tests/test_tomlify.py
++++ tests/test_tomlify.py
+@@ -1,6 +1,6 @@
+ import os
+ from pathlib import Path
+-import pytoml
++import toml
+ from shutil import copy
+ from testpath import assert_isfile
+ 
+@@ -18,7 +18,7 @@ def test_tomlify(copy_sample, monkeypatch):
+     assert_isfile(pyproject_toml)
+ 
+     with pyproject_toml.open(encoding='utf-8') as f:
+-        content = pytoml.load(f)
++        content = toml.load(f)
+ 
+     assert 'build-system' in content
+     assert 'tool' in content
+diff --git tox.ini tox.ini
+index 08ce1bf..d1025e1 100644
+--- tox.ini
++++ tox.ini
+@@ -18,7 +18,7 @@ deps =
+     testpath
+     responses
+     docutils
+-    pytoml
++    toml
+     pytest>=2.7.3
+     pytest-cov
+ 
diff --git a/srcpkgs/python3-flit_core/template b/srcpkgs/python3-flit_core/template
new file mode 100644
index 00000000000..a14afa5e65f
--- /dev/null
+++ b/srcpkgs/python3-flit_core/template
@@ -0,0 +1,24 @@
+# Template file for 'python3-flit_core'
+pkgname=python3-flit_core
+version=3.0.0
+revision=1
+wrksrc="flit-${version}"
+build_wrksrc="flit_core"
+build_style=python3-module
+python_pep517=yes
+depends="python3-toml"
+short_desc="Simplified packaging of Python modules - PEP 517 build backend"
+maintainer="Andrew J. Hesford <ajh@sideband.org>"
+license="BSD-3-Clause"
+homepage="https://flit.readthedocs.io"
+changelog="https://flit.readthedocs.io/en/latest/history.html"
+distfiles="${PYPI_SITE}/f/flit/flit-${version}.tar.gz"
+checksum=b4fe0f84a1ffbf125d003e253ec98c0b6e3e31290b31fba3ad22d28588c20893
+
+do_check() {
+	: provides no tests
+}
+
+post_install() {
+	vlicense ../LICENSE
+}

From 76e6765e5579dc75d7489e1d96a981fa7c14a832 Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Wed, 2 Dec 2020 10:28:38 -0500
Subject: [PATCH 3/5] python-packaging: split package

New package: python3-packaging-20.7
---
 srcpkgs/python-packaging/template  | 20 +++++---------------
 srcpkgs/python-packaging/update    |  1 +
 srcpkgs/python3-packaging          |  1 -
 srcpkgs/python3-packaging/template | 25 +++++++++++++++++++++++++
 4 files changed, 31 insertions(+), 16 deletions(-)
 create mode 100644 srcpkgs/python-packaging/update
 delete mode 120000 srcpkgs/python3-packaging
 create mode 100644 srcpkgs/python3-packaging/template

diff --git a/srcpkgs/python-packaging/template b/srcpkgs/python-packaging/template
index e36a04a1540..aa1f64182d7 100644
--- a/srcpkgs/python-packaging/template
+++ b/srcpkgs/python-packaging/template
@@ -1,29 +1,19 @@
 # Template file for 'python-packaging'
 pkgname=python-packaging
 version=20.4
-revision=1
+revision=2
 wrksrc="packaging-${version}"
-build_style=python-module
-pycompile_module="packaging"
-hostmakedepends="python-setuptools python3-setuptools"
-depends="python-attrs python-parsing python-six"
+build_style=python2-module
+hostmakedepends="python-setuptools"
+depends="python-parsing python-six"
 short_desc="Core utilities for Python packages (Python2)"
 maintainer="Alessio Sergi <al3hex@gmail.com>"
 license="Apache-2.0, BSD-2-Clause"
 homepage="https://github.com/pypa/packaging"
+changelog="https://raw.githubusercontent.com/pypa/packaging/master/CHANGELOG.rst"
 distfiles="${PYPI_SITE}/p/packaging/packaging-${version}.tar.gz"
 checksum=4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8
 
 post_install() {
 	vlicense LICENSE
 }
-
-python3-packaging_package() {
-	pycompile_module="packaging"
-	depends="python3-attrs python3-parsing python3-six"
-	short_desc="${short_desc/Python2/Python3}"
-	pkg_install() {
-		vmove usr/lib/python3*
-		vlicense LICENSE
-	}
-}
diff --git a/srcpkgs/python-packaging/update b/srcpkgs/python-packaging/update
new file mode 100644
index 00000000000..f3300f258a6
--- /dev/null
+++ b/srcpkgs/python-packaging/update
@@ -0,0 +1 @@
+pattern="packaging-\K20\.4(\.[0-9.]+)?(?=.tar.gz)"
diff --git a/srcpkgs/python3-packaging b/srcpkgs/python3-packaging
deleted file mode 120000
index 98299fdb1d7..00000000000
--- a/srcpkgs/python3-packaging
+++ /dev/null
@@ -1 +0,0 @@
-python-packaging
\ No newline at end of file
diff --git a/srcpkgs/python3-packaging/template b/srcpkgs/python3-packaging/template
new file mode 100644
index 00000000000..7be1238d7a2
--- /dev/null
+++ b/srcpkgs/python3-packaging/template
@@ -0,0 +1,25 @@
+# Template file for 'python3-packaging'
+pkgname=python3-packaging
+version=20.7
+revision=1
+wrksrc="packaging-${version}"
+build_style=python3-module
+python_pep517=yes
+hostmakedepends="python3-flit_core"
+depends="python3-parsing"
+checkdepends="python3-pytest"
+short_desc="Core utilities for Python packages (Python3)"
+maintainer="Andrew J. Hesford <ajh@sideband.org>"
+license="Apache-2.0, BSD-2-Clause"
+homepage="https://github.com/pypa/packaging"
+checksum=05af3bb85d320377db281cf254ab050e1a7ebcbf5410685a9a407e18a1f81236
+distfiles="${PYPI_SITE}/p/packaging/packaging-${version}.tar.gz"
+checksum=05af3bb85d320377db281cf254ab050e1a7ebcbf5410685a9a407e18a1f81236
+
+do_check() {
+	: provides no tests
+}
+
+post_install() {
+	vlicense LICENSE
+}

From 191150a157f7b222de6651e1e7b496f4f9120390 Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Wed, 2 Dec 2020 13:58:38 -0500
Subject: [PATCH 4/5] build-style/python3-module: automatically detect pytest
 in do_check

---
 common/build-style/python3-module.sh | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/common/build-style/python3-module.sh b/common/build-style/python3-module.sh
index 14943d69356..4d9ecd3433b 100644
--- a/common/build-style/python3-module.sh
+++ b/common/build-style/python3-module.sh
@@ -30,20 +30,23 @@ do_build() {
 }
 
 do_check() {
-	if [ -n "$python_pep517" ]; then
-		msg_warn "No standard test exists for PEP517 Python templates"
+	if python3 -m pytest --help >/dev/null 2>&1; then
+		python3 -m pytest ${make_check_args} ${make_check_target}
+	elif [ -n "$python_pep517" ]; then
+		msg_warn "Unable to determine tests for PEP517 Python templates"
 		return 0
-	fi
-
-	if [ -z "$make_check_target" ]; then
-		if ! python3 setup.py --help test >/dev/null 2>&1; then
-			msg_warn "No command 'test' defined by setup.py.\n"
-			return 0
+	else
+		# Fall back to deprecated setup.py test orchestration without pytest
+		if [ -z "$make_check_target" ]; then
+			if ! python3 setup.py --help test >/dev/null 2>&1; then
+				msg_warn "No command 'test' defined by setup.py.\n"
+				return 0
+			fi
 		fi
-	fi
 
-	: ${make_check_target:=test}
-	python3 setup.py ${make_check_target} ${make_check_args}
+		: ${make_check_target:=test}
+		python3 setup.py ${make_check_target} ${make_check_args}
+	fi
 }
 
 do_install() {

From 195c58d56db4cf542c0dc2506e61d50dda78f718 Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Wed, 2 Dec 2020 14:00:31 -0500
Subject: [PATCH 5/5] python3-tifffile: employ improved, automatic do_check

---
 srcpkgs/python3-tifffile/template | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/srcpkgs/python3-tifffile/template b/srcpkgs/python3-tifffile/template
index c5bf27a1424..1d6dcb2a522 100644
--- a/srcpkgs/python3-tifffile/template
+++ b/srcpkgs/python3-tifffile/template
@@ -15,10 +15,6 @@ changelog="https://raw.githubusercontent.com/cgohlke/tifffile/master/CHANGES.rst
 distfiles="${homepage}/archive/v${version}.tar.gz"
 checksum=64fc7602330301e910cc343e99bac02f9b453e933c1ee2050f316cbfee725df3
 
-do_check() {
-	python3 -m pytest
-}
-
 post_install() {
 	vlicense LICENSE
 }

  parent reply	other threads:[~2020-12-02 19:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-02 16:00 [PR PATCH] " ahesford
2020-12-02 17:45 ` [PR REVIEW] " ericonr
2020-12-02 19:02 ` [PR PATCH] [Updated] " ahesford
2020-12-02 19:06 ` [PR REVIEW] " ahesford
2020-12-02 19:10 ` ericonr
2020-12-02 19:11 ` ericonr
2020-12-02 19:14 ` ericonr
2020-12-02 19:27 ` [PR PATCH] [Updated] " ahesford
2020-12-02 19:28 ` [PR REVIEW] " ahesford
2020-12-02 19:30 ` ahesford [this message]
2020-12-02 19:42 ` Johnnynator
2020-12-02 19:59 ` ahesford
2020-12-02 20:21 ` [PR REVIEW] " Chocimier
2020-12-02 23:37 ` fosslinux
2020-12-03  3:43 ` [PR PATCH] [Updated] " ahesford
2020-12-03  3:52 ` ahesford
2020-12-05 16:29 ` [RFC] Support for PEP517 build systems with new build style Chocimier
2020-12-06  5:48 ` [PR PATCH] [Updated] " ahesford
2020-12-06  5:53 ` ahesford
2020-12-06  5:56 ` ahesford
2020-12-06  5:56 ` ahesford
2020-12-08 20:57 ` ahesford
2020-12-08 20:57 ` [PR PATCH] [Closed]: " ahesford

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=20201202193018.hJ-OMTwg_xC5blfEJxpQ8H46A6KIr6Gfa9mnmuBxSj4@z \
    --to=ahesford@users.noreply.github.com \
    --cc=ml@inbox.vuxu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).