From 7f537857357a67a2a7abba75637a42524e931fc9 Mon Sep 17 00:00:00 2001 From: Nathan Wilcox Date: Fri, 19 May 2017 12:24:22 -0700 Subject: [PATCH] Add support for beta/rc release versions. --- zcutil/make-release.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/zcutil/make-release.py b/zcutil/make-release.py index 7df62b7a..99cf25c4 100755 --- a/zcutil/make-release.py +++ b/zcutil/make-release.py @@ -63,7 +63,7 @@ class Version (object): '''A release version.''' RGX = re.compile( - r'^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-([1-9]\d*))?$', + r'^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(beta|rc)?([1-9]\d*))?$', ) @staticmethod @@ -77,23 +77,33 @@ class Version (object): ), ) else: - [major, minor, patch, _, hotfix] = m.groups() + [major, minor, patch, _, betarc, hotfix] = m.groups() return Version( int(major), int(minor), int(patch), + betarc, int(hotfix) if hotfix is not None else None, ) - def __init__(self, major, minor, patch, hotfix): + def __init__(self, major, minor, patch, betarc, hotfix): + for i in [major, minor, patch]: + assert type(i) is int, i + assert betarc in {None, 'rc', 'beta'}, betarc + assert hotfix is None or type(hotfix) is int, hotfix + self.major = major self.minor = minor self.patch = patch + self.betarc = betarc self.hotfix = hotfix self.vtext = 'v{}.{}.{}'.format(major, minor, patch) if hotfix is not None: - self.vtext += '-{}'.format(hotfix) + self.vtext += '-{}{}'.format( + '' if betarc is None else betarc, + hotfix, + ) def __repr__(self): return ''.format(self.vtext) @@ -135,7 +145,6 @@ class TestVersion (unittest.TestCase): cases = [ 'v07.0.0', 'v1.0.03', - 'v1.0.0-rc2', 'v1.2.3-0', # Hotfix numbers must begin w/ 1 'v1.2.3~0', 'v1.2.3+0',