summaryrefslogtreecommitdiffstats
path: root/deluge
diff options
context:
space:
mode:
authorCalum Lind <calumlind+deluge@gmail.com>2013-05-01 03:52:23 +0100
committerCalum Lind <calumlind+deluge@gmail.com>2013-05-01 05:24:36 +0100
commit4dd6308db91a38311317ef5bd0f1bbd6788424e1 (patch)
tree1819e8899cd9335be2ff2a82cd923305b0ed5eed /deluge
parent289730a3e32c80332447a51d7c6c366c2aa78ae7 (diff)
downloaddeluge-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.py36
-rw-r--r--deluge/core/core.py3
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)