diff options
author | Calum Lind <calumlind+deluge@gmail.com> | 2013-05-01 03:52:23 +0100 |
---|---|---|
committer | Calum Lind <calumlind+deluge@gmail.com> | 2013-05-01 05:24:36 +0100 |
commit | 4dd6308db91a38311317ef5bd0f1bbd6788424e1 (patch) | |
tree | 1819e8899cd9335be2ff2a82cd923305b0ed5eed /deluge | |
parent | 289730a3e32c80332447a51d7c6c366c2aa78ae7 (diff) | |
download | deluge-2.0.0.dev0.tar.gz deluge-2.0.0.dev0.tar.bz2 deluge-2.0.0.dev0.zip |
Add get_version script to automate release versions (PEP386 naming)deluge-2.0.0.dev0
Diffstat (limited to 'deluge')
-rw-r--r-- | deluge/common.py | 36 | ||||
-rw-r--r-- | deluge/core/core.py | 3 |
2 files changed, 32 insertions, 7 deletions
diff --git a/deluge/common.py b/deluge/common.py index c7d161b16..8c655ec07 100644 --- a/deluge/common.py +++ b/deluge/common.py @@ -685,16 +685,36 @@ class VersionSplit(object): """ def __init__(self, ver): - ver = ver.lower() - vs = ver.replace("_", "-").split("-") + import re + VERSION_RE = re.compile(r''' + ^ + (?P<version>\d+\.\d+) # minimum 'N.N' + (?P<extraversion>(?:\.\d+)*) # any number of extra '.N' segments + (?: + (?P<prerel>[abc]|rc) # 'a'=alpha, 'b'=beta, 'c'=release candidate + # 'rc'= alias for release candidate + (?P<prerelversion>\d+(?:\.\d+)*) + )? + (?P<postdev>(\.post(?P<post>\d+))?(\.dev(?P<dev>\d+))?)? + $''', re.VERBOSE) + + # Check for PEP 386 compliant version + match = re.search(VERSION_RE, ver) + if match: + group = [(x if x is not None else '') for x in match.group(1,2,3,4,8)] + vs = [''.join(group[0:2]),''.join(group[2:4]), group[4].lstrip('.')] + else: + ver = ver.lower() + vs = ver.replace("_", "-").split("-") + self.version = [int(x) for x in vs[0].split(".")] self.suffix = None self.dev = False if len(vs) > 1: - if vs[1].startswith(("rc", "alpha", "beta")): + if vs[1].startswith(("rc", "a", "b", "c")): self.suffix = vs[1] - if vs[-1] == 'dev': - self.dev = True + if vs[-1].startswith('dev'): + self.dev = vs[-1] def __cmp__(self, ver): """ @@ -704,6 +724,12 @@ class VersionSplit(object): :type ver: VersionSplit """ + # PEP 386 versions with .devN precede release version + if (bool(self.dev) != bool(ver.dev)): + if self.dev != 'dev': + self.dev = not self.dev + if ver.dev != 'dev': + ver.dev = not ver.dev # If there is no suffix we use z because we want final # to appear after alpha, beta, and rc alphabetically. diff --git a/deluge/core/core.py b/deluge/core/core.py index eff6849b9..b97e3aded 100644 --- a/deluge/core/core.py +++ b/deluge/core/core.py @@ -76,8 +76,7 @@ class Core(component.Component): log.info("Starting libtorrent %s session..", lt.version) # Create the client fingerprint - version = [int(value.split("-")[0]) for value in - deluge.common.get_version().split(".")] + version = deluge.common.VersionSplit(deluge.common.get_version()).version while len(version) < 4: version.append(0) |