Skip to content

Commit 1ebac97

Browse files
Merge pull request #732 from RonnyPfannschmidt/fix-727-git-archival-no-version-for-empty
fix #727: correctly handle incomplete archivals from setuptools_scm_g…
2 parents 21e58d4 + ae6cb5e commit 1ebac97

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

CHANGELOG.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
v7.0.4
2+
=======
3+
4+
* fix #727: correctly handle incomplete archivals from setuptools_scm_git_archival
5+
* fix #691: correctly handle specifying root in pyproject.toml
6+
17
v7.0.3
28
=======
39
* fix mercurial usage when pip primes a isolated environment

src/setuptools_scm/git.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,8 @@ def search_parent(dirname: _t.PathT) -> GitWorkdir | None:
276276

277277
def archival_to_version(
278278
data: dict[str, str], config: Configuration | None = None
279-
) -> ScmVersion:
279+
) -> ScmVersion | None:
280+
node: str | None
280281
trace("data", data)
281282
archival_describe = data.get("describe-name", DESCRIBE_UNSUPPORTED)
282283
if DESCRIBE_UNSUPPORTED in archival_describe:
@@ -293,7 +294,11 @@ def archival_to_version(
293294
if versions:
294295
return meta(versions[0], config=config)
295296
else:
296-
return meta("0.0", node=data.get("node"), config=config)
297+
node = data.get("node")
298+
if node is not None:
299+
return meta("0.0", node=node, config=config)
300+
else:
301+
return None
297302

298303

299304
def parse_archival(

testing/test_git.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,9 +529,17 @@ def test_git_getdate_signed_commit(signed_commit_wd: WorkDir) -> None:
529529
def test_git_archival_to_version(expected: str, from_data: dict[str, str]) -> None:
530530
config = Configuration()
531531
version = archival_to_version(from_data, config=config)
532+
assert version is not None
532533
assert (
533534
format_version(
534535
version, version_scheme="guess-next-dev", local_scheme="node-and-date"
535536
)
536537
== expected
537538
)
539+
540+
541+
@pytest.mark.issue("https://github.com/pypa/setuptools_scm/issues/727")
542+
def test_git_archival_node_missing_no_version() -> None:
543+
config = Configuration()
544+
version = archival_to_version({}, config=config)
545+
assert version is None

0 commit comments

Comments
 (0)