Skip to content

Commit 88b2fe6

Browse files
fix #1018 - allow NonNormalizedVersion in semver
1 parent fee09f4 commit 88b2fe6

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
### Fixed
3+
4+
- fix #1018: allow non-normalized versions for semver

src/setuptools_scm/version.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -244,10 +244,13 @@ def guess_next_dev_version(version: ScmVersion) -> str:
244244
def guess_next_simple_semver(
245245
version: ScmVersion, retain: int, increment: bool = True
246246
) -> str:
247-
try:
248-
parts = [int(i) for i in str(version.tag).split(".")[:retain]]
249-
except ValueError:
250-
raise ValueError(f"{version} can't be parsed as numeric version") from None
247+
if isinstance(version.tag, _v.Version):
248+
parts = list(version.tag.release[:retain])
249+
else:
250+
try:
251+
parts = [int(i) for i in str(version.tag).split(".")[:retain]]
252+
except ValueError:
253+
raise ValueError(f"{version} can't be parsed as numeric version") from None
251254
while len(parts) < retain:
252255
parts.append(0)
253256
if increment:

testing/test_version.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@
5454
"1.1.0.dev2",
5555
id="feature_in_branch",
5656
),
57+
pytest.param(
58+
meta(NonNormalizedVersion("v1.0"), distance=2, branch="default", config=c),
59+
"1.0.1.dev2",
60+
id="non-normalized-allowed",
61+
),
5762
],
5863
)
5964
def test_next_semver(version: ScmVersion, expected_next: str) -> None:

0 commit comments

Comments
 (0)