normalize version in setup.py

avoids mismatch between wheel/sdist upload on PyPI due to setuptools normalization of prerelease tags.
This commit is contained in:
Min RK 2015-12-14 11:47:50 +01:00
parent 85b1f638a0
commit 2f2b6a04b0
2 changed files with 22 additions and 3 deletions

View File

@ -49,7 +49,7 @@ from distutils.core import setup
# Our own imports
from setupbase import (
version,
pkg_version,
find_packages,
find_package_data,
check_package_data_first,
@ -75,7 +75,7 @@ languages, sharing, and interactive widgets.
Read `the documentation <https://jupyter-notebook.readthedocs.org>`_
for more information.
""",
version = version,
version = pkg_version,
scripts = glob(pjoin('scripts', '*')),
packages = find_packages(),
package_data = find_package_data(),

View File

@ -65,8 +65,27 @@ name = 'notebook'
version_ns = {}
execfile(pjoin(repo_root, name, '_version.py'), version_ns)
version = version_ns['__version__']
def normalized_version(version_info):
"""Normalize version string
Avoids prerelease uploads getting different versions from sdist and bdist,
due to setuptools normalization.
"""
v = '.'.join(map(str, version_info[:3]))
if len(version_info) == 3:
return v
extra = version_info[3]
if extra.startswith(('a', 'b', 'rc')):
sep = ''
else:
sep = '.'
# pip ensures there's number on the end
if not extra[-1].isdigit():
extra += '0'
return v + sep + extra
version = version_ns['__version__']
pkg_version = normalized_version(version_ns['version_info'])
#---------------------------------------------------------------------------
# Find packages