diff options
-rw-r--r-- | changelog.d/2529.change.rst | 1 | ||||
-rw-r--r-- | setuptools/command/egg_info.py | 10 |
2 files changed, 7 insertions, 4 deletions
diff --git a/changelog.d/2529.change.rst b/changelog.d/2529.change.rst new file mode 100644 index 00000000..10c41518 --- /dev/null +++ b/changelog.d/2529.change.rst @@ -0,0 +1 @@ +Fixed an issue where version tags may be added multiple times diff --git a/setuptools/command/egg_info.py b/setuptools/command/egg_info.py index 0b7ad677..066c2488 100644 --- a/setuptools/command/egg_info.py +++ b/setuptools/command/egg_info.py @@ -130,10 +130,12 @@ class InfoCommon: egg_info may be called more than once for a distribution, in which case the version string already contains all tags. """ - return ( - version if self.vtags and version.endswith(self.vtags) - else version + self.vtags - ) + # Remove the tags if they exist. The tags maybe have been normalized + # (e.g. turning .dev into .dev0) so we can't just compare strings + base_version = parse_version(version).base_version + + # Add the tags + return base_version + self.vtags def tags(self): version = '' |