diff options
author | Ronny Pfannschmidt <opensource@ronnypfannschmidt.de> | 2020-11-29 21:52:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-29 21:52:33 +0100 |
commit | 57c3590fa632f10c7855edc64fbf4c9c029c0d08 (patch) | |
tree | dee52754ab789883782ec435f2f54bbf755a5fae | |
parent | f86c74abbbb6383b56eca13b7131f0b844862540 (diff) | |
parent | 49e368dcda6997be3bd104c6a45281219f58ff5f (diff) | |
download | setuptools-scm-57c3590fa632f10c7855edc64fbf4c9c029c0d08.tar.gz |
Merge pull request #495 from RonnyPfannschmidt/fix-479-better-error-on-unparsable-tag
fix #479: better error on unparsable simplified semver version
-rw-r--r-- | CHANGELOG.rst | 2 | ||||
-rw-r--r-- | src/setuptools_scm/version.py | 7 | ||||
-rw-r--r-- | testing/test_version.py | 9 |
3 files changed, 17 insertions, 1 deletions
diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c5c57dd..0d7a1c3 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,8 @@ v4.2.0 ====== + +* fix #479: raise indicative error when tags carry non-parsable information * Add `no-guess-dev` which does no next version guessing, just adds `.post1.devN` in case there are new commits after the tag * add python3.9 diff --git a/src/setuptools_scm/version.py b/src/setuptools_scm/version.py index ac74149..c58be7e 100644 --- a/src/setuptools_scm/version.py +++ b/src/setuptools_scm/version.py @@ -247,7 +247,12 @@ def guess_next_dev_version(version): def guess_next_simple_semver(version, retain, increment=True): - parts = [int(i) for i in str(version).split(".")[:retain]] + try: + parts = [int(i) for i in str(version).split(".")[:retain]] + except ValueError: + raise ValueError( + "{version} can't be parsed as numeric version".format(version=version) + ) while len(parts) < retain: parts.append(0) if increment: diff --git a/testing/test_version.py b/testing/test_version.py index aaaf952..38c98bf 100644 --- a/testing/test_version.py +++ b/testing/test_version.py @@ -49,6 +49,15 @@ def test_next_semver(version, expected_next): assert computed == expected_next +def test_next_semver_bad_tag(): + + version = meta("1.0.0-foo", config=c) + with pytest.raises( + ValueError, match="1.0.0-foo can't be parsed as numeric version" + ): + simplified_semver_version(version) + + @pytest.mark.parametrize( "version, expected_next", [ |