Skip to content

Commit 412ce0b

Browse files
authored
chore: prevent normalization of semver versioning (#410)
When there is a patch version added to semver versioning, setuptools.setup(version) will normalize the versioning from `-patch` to `.patch` which is not correct SEMVER versioning. The added feature with setuptools.sic(version) will prevent this from happening.
1 parent 9ce57e1 commit 412ce0b

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

setup.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,20 @@
1717

1818
import setuptools
1919

20+
# Disable version normalization performed by setuptools.setup()
21+
try:
22+
# Try the approach of using sic(), added in setuptools 46.1.0
23+
from setuptools import sic
24+
except ImportError:
25+
# Try the approach of replacing packaging.version.Version
26+
sic = lambda v: v
27+
try:
28+
# setuptools >=39.0.0 uses packaging from setuptools.extern
29+
from setuptools.extern import packaging
30+
except ImportError:
31+
# setuptools <39.0.0 uses packaging from pkg_resources.extern
32+
from pkg_resources.extern import packaging
33+
packaging.version.Version = packaging.version.LegacyVersion
2034

2135
# Package metadata.
2236

@@ -63,7 +77,7 @@
6377

6478
setuptools.setup(
6579
name=name,
66-
version=version,
80+
version=sic(version),
6781
description=description,
6882
long_description=readme,
6983
author="Google LLC",

0 commit comments

Comments
 (0)