diff --git a/devel/py-setuptools_scm/Makefile b/devel/py-setuptools_scm/Makefile index 6d5f80cc6d07..c3a15793cfb0 100644 --- a/devel/py-setuptools_scm/Makefile +++ b/devel/py-setuptools_scm/Makefile @@ -1,33 +1,37 @@ PORTNAME= setuptools_scm PORTVERSION= 4.1.2 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= devel python MASTER_SITES= CHEESESHOP PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= kai@FreeBSD.org COMMENT= Setuptools plugin to manage your versions by scm tags LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR} \ git:devel/git \ ${PY_MERCURIAL} USES= python:3.6+ USE_PYTHON= autoplist distutils +# Workaround to get a 100% working test suite. This can be removed once +# https://github.com/pypa/setuptools_scm/issues/353 is solved. +TEST_ENV= _PYTEST_SESSION=yes + NO_ARCH= yes OPTIONS_DEFINE= TOML OPTIONS_DEFAULT= TOML TOML_DESC= Support for parsing pyproject.toml files [PEP 517/518] TOML_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}toml>0:textproc/py-toml@${PY_FLAVOR} do-test: - @cd ${WRKSRC} && ${PYTHON_CMD} -m pytest -v -rs + @cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest -v -rs .include diff --git a/devel/py-setuptools_scm/files/patch-src_setuptools__scm_file__finder__git.py b/devel/py-setuptools_scm/files/patch-src_setuptools__scm_file__finder__git.py new file mode 100644 index 000000000000..d33a125106b5 --- /dev/null +++ b/devel/py-setuptools_scm/files/patch-src_setuptools__scm_file__finder__git.py @@ -0,0 +1,22 @@ +Workaround for https://github.com/pypa/setuptools_scm/issues/353 + +Original version (without the check for test sessions) obtained from: + +https://github.com/OpenIndiana/oi-userland/commit/7d928fa26c0c5e4c29b4826fe78dc42401730529 + +--- src/setuptools_scm/file_finder_git.py.orig 2021-10-20 09:27:26 UTC ++++ src/setuptools_scm/file_finder_git.py +@@ -18,7 +18,12 @@ def _git_toplevel(path): + stderr=devnull, + ) + trace("find files toplevel", out) +- return os.path.normcase(os.path.realpath(out.strip())) ++ toplevel_path = os.path.normcase(os.path.realpath(out.strip())) ++ setup_py_path = os.path.join(toplevel_path, "setup.py") ++ if os.path.exists(setup_py_path) or os.environ.get("_PYTEST_SESSION"): ++ return toplevel_path ++ else: ++ return None + except subprocess.CalledProcessError: + # git returned error, we are not in a git repo + return None diff --git a/devel/py-setuptools_scm/files/patch-src_setuptools__scm_file__finder__hg.py b/devel/py-setuptools_scm/files/patch-src_setuptools__scm_file__finder__hg.py new file mode 100644 index 000000000000..7da5458d484a --- /dev/null +++ b/devel/py-setuptools_scm/files/patch-src_setuptools__scm_file__finder__hg.py @@ -0,0 +1,22 @@ +Workaround for https://github.com/pypa/setuptools_scm/issues/353 + +Original version (without the check for test sessions) obtained from: + +https://github.com/OpenIndiana/oi-userland/commit/7d928fa26c0c5e4c29b4826fe78dc42401730529 + +--- src/setuptools_scm/file_finder_hg.py.orig 2021-10-20 09:29:52 UTC ++++ src/setuptools_scm/file_finder_hg.py +@@ -13,7 +13,12 @@ def _hg_toplevel(path): + universal_newlines=True, + stderr=devnull, + ) +- return os.path.normcase(os.path.realpath(out.strip())) ++ toplevel_path = os.path.normcase(os.path.realpath(out.strip())) ++ setup_py_path = os.path.join(toplevel_path, "setup.py") ++ if os.path.exists(setup_py_path) or os.environ.get("_PYTEST_SESSION"): ++ return toplevel_path ++ else: ++ return None + except subprocess.CalledProcessError: + # hg returned error, we are not in a mercurial repo + return None