From f46003559cc59d27df7a4926001fd10b84f4ab22 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 7 Jan 2012 19:05:29 +0000 Subject: [PATCH] Fixed #17491 -- Honored the version number format expected by distutils. Fixed #11236 too. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17351 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/__init__.py | 14 ++++++++++++++ setup.py | 14 ++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/django/__init__.py b/django/__init__.py index e790da37f3..6467c033bb 100644 --- a/django/__init__.py +++ b/django/__init__.py @@ -14,3 +14,17 @@ def get_version(): if svn_rev != u'SVN-unknown': version = "%s %s" % (version, svn_rev) return version + +def get_distutils_version(): + # Distutils expects a version number formatted as major.minor[.patch][sub] + parts = 5 + if VERSION[3] == 'final': + parts = 3 + if VERSION[2] == 0: + parts = 2 + version = VERSION[:parts] + version = [str(x)[0] for x in version] # ['1', '4', '0', 'a', '1'] + if parts > 2: + version[2:] = [''.join(version[2:])] # ['1', '4', '0a1'] + version = '.'.join(version) # '1.4.0a1' + return version diff --git a/setup.py b/setup.py index bf5a6c166e..af18af78ff 100644 --- a/setup.py +++ b/setup.py @@ -17,10 +17,10 @@ class osx_install_data(install_data): self.set_undefined_options('install', ('install_lib', 'install_dir')) install_data.finalize_options(self) -if sys.platform == "darwin": - cmdclasses = {'install_data': osx_install_data} -else: - cmdclasses = {'install_data': install_data} +if sys.platform == "darwin": + cmdclasses = {'install_data': osx_install_data} +else: + cmdclasses = {'install_data': install_data} def fullsplit(path, result=None): """ @@ -66,13 +66,11 @@ if len(sys.argv) > 1 and sys.argv[1] == 'bdist_wininst': file_info[0] = '\\PURELIB\\%s' % file_info[0] # Dynamically calculate the version based on django.VERSION. -version = __import__('django').get_version() -if u'SVN' in version: - version = ' '.join(version.split(' ')[:-1]) +version = __import__('django').get_distutils_version() setup( name = "Django", - version = version.replace(' ', '-'), + version = version, url = 'http://www.djangoproject.com/', author = 'Django Software Foundation', author_email = 'foundation@djangoproject.com',