Index: devel/py-setuptools_scm/Makefile =================================================================== --- devel/py-setuptools_scm/Makefile +++ devel/py-setuptools_scm/Makefile @@ -1,5 +1,5 @@ PORTNAME= setuptools_scm -PORTVERSION= 6.4.2 +PORTVERSION= 7.1.0 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -12,33 +12,45 @@ LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>=20.0:devel/py-packaging@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}tomli>=1.0.0:textproc/py-tomli@${PY_FLAVOR} + ${PYTHON_PKGNAMEPREFIX}setuptools>=55.0.0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}typing-extensions>0:devel/py-typing-extensions@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} + RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>=20.0:devel/py-packaging@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}tomli>=1.0.0:textproc/py-tomli@${PY_FLAVOR} -TEST_DEPENDS= git:devel/git \ - ${PY_MERCURIAL} \ - ${PYTHON_PKGNAMEPREFIX}pip>=0:devel/py-pip@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR} + ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}typing-extensions>=0:devel/py-typing-extensions@${PY_FLAVOR} -USES= python:3.6+ -USE_PYTHON= autoplist distutils +TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}virtualenv>=0:devel/py-virtualenv@${PY_FLAVOR} \ + git:devel/git \ + ${PY_MERCURIAL} \ + gpg:security/gnupg -# 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 +USES= python:3.7+ +USE_PYTHON= autoplist pep517 pytest NO_ARCH= yes -# Skip integration tests that require a more recent version of py-virtualenv -post-extract: - @${MV} ${WRKSRC}/testing/test_setuptools_support.py ${WRKSRC}/testing/test_setuptools_support.py.dist +# Optional tests that depend on `dir` (windows) and `hg_git` (no longer in ports) will be skipped + +# test_case_mismatch_on_windows_git we're not on windows... +# test_on_old_setuptools devel/py-setuptools is newer than the versions tested here +# test_not_owner requires passwordless sudo access +PYTEST_IGNORED_TESTS= test_case_mismatch_on_windows_git \ + test_on_old_setuptools \ + test_not_owner + +# https://github.com/pypa/setuptools_scm/issues/449 +PYTEST_BROKEN_TESTS= test_non_dotted_version + +.include -post-patch: - @${REINPLACE_CMD} -e 's|%%PYTHON_CMD%%|${PYTHON_CMD}|' ${WRKSRC}/testing/test_integration.py +.if ${PYTHON_REL} < 31100 +BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}tomli>=1.0.0:textproc/py-tomli@${PY_FLAVOR} +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}tomli>=1.0.0:textproc/py-tomli@${PY_FLAVOR} +.endif -# Note: The test suite requires at least py-pytest >= 6.2.0 due changes to the -# "monkeypatch" functionality. Tests are fine with py-pytest 7.0.0. -do-test: - @cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest -v -rs +.if ${PYTHON_REL} < 30800 +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}importlib-metadata>0:devel/py-importlib-metadata@${PY_FLAVOR} +.endif -.include +.include Index: devel/py-setuptools_scm/distinfo =================================================================== --- devel/py-setuptools_scm/distinfo +++ devel/py-setuptools_scm/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1644388030 -SHA256 (setuptools_scm-6.4.2.tar.gz) = 6833ac65c6ed9711a4d5d2266f8024cfa07c533a0e55f4c12f6eff280a5a9e30 -SIZE (setuptools_scm-6.4.2.tar.gz) = 61305 +TIMESTAMP = 1679907456 +SHA256 (setuptools_scm-7.1.0.tar.gz) = 6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27 +SIZE (setuptools_scm-7.1.0.tar.gz) = 71904 Index: devel/py-setuptools_scm/files/patch-setup.cfg =================================================================== --- devel/py-setuptools_scm/files/patch-setup.cfg +++ /dev/null @@ -1,19 +0,0 @@ -Avoid errors during runtime if devel/py-packaging is not present. - -The package is only required in "_version_cls.py" and falls back to -devel/py-setuptools (via "try ... except") if it's not available. - -This is a workaround to remedy issues with upgrade runs that also update -devel/py-{packaging,pyparsing} in environments where devel/py-setuptools_scm is -already present. - ---- setup.cfg.orig 2021-12-05 20:43:43 UTC -+++ setup.cfg -@@ -27,7 +27,6 @@ classifiers = - [options] - packages = find: - install_requires = -- packaging>=20.0 - setuptools - tomli>=1.0.0 # keep in sync - python_requires = >=3.6 Index: devel/py-setuptools_scm/files/patch-src_setuptools__scm_file__finder__git.py =================================================================== --- devel/py-setuptools_scm/files/patch-src_setuptools__scm_file__finder__git.py +++ /dev/null @@ -1,22 +0,0 @@ -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 Index: devel/py-setuptools_scm/files/patch-src_setuptools__scm_file__finder__hg.py =================================================================== --- devel/py-setuptools_scm/files/patch-src_setuptools__scm_file__finder__hg.py +++ /dev/null @@ -1,22 +0,0 @@ -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 Index: devel/py-setuptools_scm/files/patch-testing_test__integration.py =================================================================== --- devel/py-setuptools_scm/files/patch-testing_test__integration.py +++ /dev/null @@ -1,13 +0,0 @@ -Avoid hardcoded Python binary. - ---- testing/test_integration.py.orig 2022-02-10 17:16:34 UTC -+++ testing/test_integration.py -@@ -119,7 +119,7 @@ def test_pretend_version_accepts_bad_string(monkeypatc - monkeypatch.setenv(PRETEND_KEY, "dummy") - wd.write("setup.py", SETUP_PY_PLAIN) - assert wd.get_version(write_to="test.py") == "dummy" -- assert wd("python setup.py --version") == "0.0.0" -+ assert wd("%%PYTHON_CMD%% setup.py --version") == "0.0.0" - - - def test_own_setup_fails_on_old_python(monkeypatch):