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")