diff options
author | Ronny Pfannschmidt <opensource@ronnypfannschmidt.de> | 2022-06-27 06:34:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-27 06:34:07 +0200 |
commit | 1ebac970000721db001cfdd39b287347161f0f3f (patch) | |
tree | 14463633e28d15662af87ebc42346c05864ce9e5 | |
parent | 21e58d4ebd9aedc1477a5021b0370f66963c4341 (diff) | |
parent | ae6cb5e33488f3e3b6de5cd2680273d30209d4db (diff) | |
download | setuptools-scm-1ebac970000721db001cfdd39b287347161f0f3f.tar.gz |
Merge pull request #732 from RonnyPfannschmidt/fix-727-git-archival-no-version-for-empty
fix #727: correctly handle incomplete archivals from setuptools_scm_g…
-rw-r--r-- | CHANGELOG.rst | 6 | ||||
-rw-r--r-- | src/setuptools_scm/git.py | 9 | ||||
-rw-r--r-- | testing/test_git.py | 8 |
3 files changed, 21 insertions, 2 deletions
diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 4c9bd24..f140523 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,9 @@ +v7.0.4 +======= + +* fix #727: correctly handle incomplete archivals from setuptools_scm_git_archival +* fix #691: correctly handle specifying root in pyproject.toml + v7.0.3 ======= * fix mercurial usage when pip primes a isolated environment diff --git a/src/setuptools_scm/git.py b/src/setuptools_scm/git.py index 47e2a9e..1aee95a 100644 --- a/src/setuptools_scm/git.py +++ b/src/setuptools_scm/git.py @@ -276,7 +276,8 @@ def search_parent(dirname: _t.PathT) -> GitWorkdir | None: def archival_to_version( data: dict[str, str], config: Configuration | None = None -) -> ScmVersion: +) -> ScmVersion | None: + node: str | None trace("data", data) archival_describe = data.get("describe-name", DESCRIBE_UNSUPPORTED) if DESCRIBE_UNSUPPORTED in archival_describe: @@ -293,7 +294,11 @@ def archival_to_version( if versions: return meta(versions[0], config=config) else: - return meta("0.0", node=data.get("node"), config=config) + node = data.get("node") + if node is not None: + return meta("0.0", node=node, config=config) + else: + return None def parse_archival( diff --git a/testing/test_git.py b/testing/test_git.py index 6663527..674d904 100644 --- a/testing/test_git.py +++ b/testing/test_git.py @@ -529,9 +529,17 @@ def test_git_getdate_signed_commit(signed_commit_wd: WorkDir) -> None: def test_git_archival_to_version(expected: str, from_data: dict[str, str]) -> None: config = Configuration() version = archival_to_version(from_data, config=config) + assert version is not None assert ( format_version( version, version_scheme="guess-next-dev", local_scheme="node-and-date" ) == expected ) + + +@pytest.mark.issue("https://github.com/pypa/setuptools_scm/issues/727") +def test_git_archival_node_missing_no_version() -> None: + config = Configuration() + version = archival_to_version({}, config=config) + assert version is None |