diff --git a/devel/py-setuptools_scm/Makefile b/devel/py-setuptools_scm/Makefile --- a/devel/py-setuptools_scm/Makefile +++ b/devel/py-setuptools_scm/Makefile @@ -1,5 +1,5 @@ -PORTNAME= setuptools_scm -PORTVERSION= 6.4.2 +PORTNAME= setuptools-scm +PORTVERSION= 8.0.4 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -11,34 +11,41 @@ LICENSE= MIT 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} -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 \ +BUILD_DEPENDS= ${PY_SETUPTOOLS} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>=20:devel/py-packaging@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}typing-extensions>0:devel/py-typing-extensions@${PY_FLAVOR} +TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}rich>0:textproc/py-rich@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \ + 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}pip>0:devel/py-pip@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}mypy>0:devel/py-mypy@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}flake8>0:devel/py-flake8@${PY_FLAVOR} \ + gpg2:security/gnupg \ + ${PYTHON_PKGNAMEPREFIX}setuptools_scm_git_archive>0:devel/py-setuptools_scm_git_archive@${PY_FLAVOR} USES= python -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 +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 +# test_git_worktree_support sometimes relative path results +# test_dump_version_on_old_python python 3.7 not available +# test_not_owner requires passwordless sudo access +# test_case_mismatch_on_windows_git we're not on Windows +PYTEST_BROKEN_TESTS= test_git_worktree_support +PYTEST_IGNORED_TESTS= test_dump_version_on_old_python \ + test_not_owner \ + test_case_mismatch_on_windows_git -post-patch: - @${REINPLACE_CMD} -e 's|%%PYTHON_CMD%%|${PYTHON_CMD}|' ${WRKSRC}/testing/test_integration.py +.include -# 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} < 31100 +BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}tomli>0:textproc/py-tomli@${PY_FLAVOR} +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}tomli>=1:textproc/py-tomli@${PY_FLAVOR} +.endif + +post-patch: + @${REINPLACE_CMD} -e '497,521s|"gpg|"gpg2|' ${WRKSRC}/testing/test_git.py -.include +.include diff --git a/devel/py-setuptools_scm/distinfo b/devel/py-setuptools_scm/distinfo --- a/devel/py-setuptools_scm/distinfo +++ b/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 = 1696540413 +SHA256 (setuptools-scm-8.0.4.tar.gz) = b5f43ff6800669595193fd09891564ee9d1d7dcb196cab4b2506d53a2e1c95c7 +SIZE (setuptools-scm-8.0.4.tar.gz) = 74280 diff --git a/devel/py-setuptools_scm/files/patch-setup.cfg b/devel/py-setuptools_scm/files/patch-setup.cfg deleted file mode 100644 --- a/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 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 deleted file mode 100644 --- a/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 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 deleted file mode 100644 --- a/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 diff --git a/devel/py-setuptools_scm/files/patch-testing_test__integration.py b/devel/py-setuptools_scm/files/patch-testing_test__integration.py deleted file mode 100644 --- a/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):