Skip to content

Commit 937ae84

Browse files
authored
chore: prevent normalization of semver versioning (#1292)
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 02ceb05 commit 937ae84

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

setup.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,22 @@
2727

2828
import io
2929
import os
30-
from setuptools import setup
30+
import setuptools
31+
32+
# Disable version normalization performed by setuptools.setup()
33+
try:
34+
# Try the approach of using sic(), added in setuptools 46.1.0
35+
from setuptools import sic
36+
except ImportError:
37+
# Try the approach of replacing packaging.version.Version
38+
sic = lambda v: v
39+
try:
40+
# setuptools >=39.0.0 uses packaging from setuptools.extern
41+
from setuptools.extern import packaging
42+
except ImportError:
43+
# setuptools <39.0.0 uses packaging from pkg_resources.extern
44+
from pkg_resources.extern import packaging
45+
packaging.version.Version = packaging.version.LegacyVersion
3146

3247
packages = ["apiclient", "googleapiclient", "googleapiclient/discovery_cache"]
3348

@@ -48,9 +63,9 @@
4863

4964
version = "2.2.0"
5065

51-
setup(
66+
setuptools.setup(
5267
name="google-api-python-client",
53-
version=version,
68+
version=sic(version),
5469
description="Google API Client Library for Python",
5570
long_description=readme,
5671
long_description_content_type='text/markdown',

0 commit comments

Comments
 (0)