summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonny Pfannschmidt <opensource@ronnypfannschmidt.de>2022-06-27 06:34:07 +0200
committerGitHub <noreply@github.com>2022-06-27 06:34:07 +0200
commit1ebac970000721db001cfdd39b287347161f0f3f (patch)
tree14463633e28d15662af87ebc42346c05864ce9e5
parent21e58d4ebd9aedc1477a5021b0370f66963c4341 (diff)
parentae6cb5e33488f3e3b6de5cd2680273d30209d4db (diff)
downloadsetuptools-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.rst6
-rw-r--r--src/setuptools_scm/git.py9
-rw-r--r--testing/test_git.py8
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