From 6a80dbb87fb6dfdb167b32f3f2728ba1d196bf8f Mon Sep 17 00:00:00 2001 From: Ronny Pfannschmidt Date: Wed, 20 Sep 2023 13:16:37 +0200 Subject: [PATCH 1/2] fix #905 - correct version file template for older python versions --- CHANGELOG.rst | 9 +++++++++ .../_integration/dump_version.py | 6 ++---- testing/test_basic_api.py | 8 ++++---- testing/test_functions.py | 20 +++++++++++++++++++ 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ea3e6ea9..9731a30b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,12 @@ + +v8.0.1 +====== + +bugfix +------ + +* update version file template to work on older python versions by using type comments + v8.0.0 ====== diff --git a/src/setuptools_scm/_integration/dump_version.py b/src/setuptools_scm/_integration/dump_version.py index a7ff4d30..c7e200ab 100644 --- a/src/setuptools_scm/_integration/dump_version.py +++ b/src/setuptools_scm/_integration/dump_version.py @@ -15,10 +15,8 @@ ".py": """\ # file generated by setuptools_scm # don't change, don't track in version control -from __future__ import annotations -__version__ : str = version : str = {version!r} -__version_tuple__ : 'tuple[int | str, ...]' = \\ - version_tuple : 'tuple[int | str, ...]' = {version_tuple!r} +__version__ = version = {version!r} # type: str +__version_tuple__ = version_tuple = {version_tuple!r} # type: tuple[int | str, ...] """, ".txt": "{version}", } diff --git a/testing/test_basic_api.py b/testing/test_basic_api.py index fa35e2c7..d9a1aa90 100644 --- a/testing/test_basic_api.py +++ b/testing/test_basic_api.py @@ -179,10 +179,10 @@ def read(name: str) -> str: scm_version = meta("1.0", distance=42, config=c) dump_version(tmp_path, version, "first.py", scm_version=scm_version) lines = read("first.py").splitlines() - assert lines[3:] == [ - "__version__ : str = version : str = '1.0.dev42'", - "__version_tuple__ : 'tuple[int | str, ...]' = \\", - " version_tuple : 'tuple[int | str, ...]' = (1, 0, 'dev42')", + assert lines[-2:] == [ + "__version__ = version = '1.0.dev42' # type: str", + "__version_tuple__ = version_tuple = (1, 0, 'dev42')" + " # type: tuple[int | str, ...]", ] version = "1.0.1+g4ac9d2c" diff --git a/testing/test_functions.py b/testing/test_functions.py index baf84d3d..dfc22b60 100644 --- a/testing/test_functions.py +++ b/testing/test_functions.py @@ -1,5 +1,7 @@ from __future__ import annotations +import shutil +import subprocess from pathlib import Path import pytest @@ -108,6 +110,24 @@ def test_dump_version_modern(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> assert target.read_text() == version +def test_dump_version_on_old_python(tmp_path: Path) -> None: + python37 = shutil.which("python3.7") + if python37 is None: + pytest.skip("python3.7 not found") + from setuptools_scm._integration.dump_version import write_version_to_path + + version = "1.2.3" + scm_version = meta(version, config=c) + write_version_to_path( + tmp_path / "VERSION.py", template=None, version=version, scm_version=scm_version + ) + subprocess.run( + [python37, "-c", "import VERSION;print(VERSION.version)"], + cwd=tmp_path, + check=True, + ) + + def test_has_command() -> None: with pytest.warns(RuntimeWarning, match="yadayada"): assert not has_command("yadayada_setuptools_aint_ne") From 597ba88f8b8fc5e990815212eddc2e2b1f55b1d3 Mon Sep 17 00:00:00 2001 From: Ronny Pfannschmidt Date: Wed, 20 Sep 2023 13:33:38 +0200 Subject: [PATCH 2/2] Apply suggestions from code review - pep8 compliance Co-authored-by: Jonathan de Bruin --- src/setuptools_scm/_integration/dump_version.py | 4 ++-- testing/test_basic_api.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/setuptools_scm/_integration/dump_version.py b/src/setuptools_scm/_integration/dump_version.py index c7e200ab..421379bd 100644 --- a/src/setuptools_scm/_integration/dump_version.py +++ b/src/setuptools_scm/_integration/dump_version.py @@ -15,8 +15,8 @@ ".py": """\ # file generated by setuptools_scm # don't change, don't track in version control -__version__ = version = {version!r} # type: str -__version_tuple__ = version_tuple = {version_tuple!r} # type: tuple[int | str, ...] +__version__ = version = {version!r} # type: str +__version_tuple__ = version_tuple = {version_tuple!r} # type: tuple[int | str, ...] """, ".txt": "{version}", } diff --git a/testing/test_basic_api.py b/testing/test_basic_api.py index d9a1aa90..6fa02fe3 100644 --- a/testing/test_basic_api.py +++ b/testing/test_basic_api.py @@ -180,9 +180,9 @@ def read(name: str) -> str: dump_version(tmp_path, version, "first.py", scm_version=scm_version) lines = read("first.py").splitlines() assert lines[-2:] == [ - "__version__ = version = '1.0.dev42' # type: str", + "__version__ = version = '1.0.dev42' # type: str", "__version_tuple__ = version_tuple = (1, 0, 'dev42')" - " # type: tuple[int | str, ...]", + " # type: tuple[int | str, ...]", ] version = "1.0.1+g4ac9d2c"