diff options
| author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2012-01-08 15:05:15 +0000 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2012-01-08 15:05:15 +0000 |
| commit | 40f0ecc56a23d35c2849f8e79276f6d8931412d1 (patch) | |
| tree | c87596d06178c360f77213e1ab5fc465e76b0998 /django/__init__.py | |
| parent | aa4e1522968b19499801fe3d73d6b2f3bf3b3acd (diff) | |
Implemented PEP386-compatible version numbers. Thanks Jannis for the guidance.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17357 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/__init__.py')
| -rw-r--r-- | django/__init__.py | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/django/__init__.py b/django/__init__.py index 6467c033bb..3417c7158a 100644 --- a/django/__init__.py +++ b/django/__init__.py @@ -1,30 +1,30 @@ VERSION = (1, 4, 0, 'alpha', 1) -def get_version(): - version = '%s.%s' % (VERSION[0], VERSION[1]) - if VERSION[2]: - version = '%s.%s' % (version, VERSION[2]) - if VERSION[3:] == ('alpha', 0): - version = '%s pre-alpha' % version - else: - if VERSION[3] != 'final': - version = '%s %s %s' % (version, VERSION[3], VERSION[4]) - from django.utils.version import get_svn_revision - svn_rev = get_svn_revision() - if svn_rev != u'SVN-unknown': - version = "%s %s" % (version, svn_rev) - return version +def get_version(version=None): + """Derives a PEP386-compliant version number from VERSION.""" + if version is None: + version = VERSION + assert len(version) == 5 + assert version[3] in ('alpha', 'beta', 'rc', 'final') -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 + # Now build the two parts of the version number: + # main = X.Y[.Z] + # sub = .devN - for pre-alpha releases + # | {a|b|c}N - for alpha, beta and rc releases + + parts = 2 if version[2] == 0 else 3 + main = '.'.join(str(x) for x in version[:parts]) + + sub = '' + if version[3] == 'alpha' and version[4] == 0: + # At the toplevel, this would cause an import loop. + from django.utils.version import get_svn_revision + svn_revision = get_svn_revision()[4:] + if svn_revision != 'unknown': + sub = '.dev%s' % svn_revision + + elif version[3] != 'final': + mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'c'} + sub = mapping[version[3]] + str(version[4]) + + return main + sub |
