You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2017/12/13 22:21:03 UTC
svn commit: r1818073 -
/subversion/trunk/tools/dist/create-minor-release-branch.py
Author: julianfoad
Date: Wed Dec 13 22:21:03 2017
New Revision: 1818073
URL: http://svn.apache.org/viewvc?rev=1818073&view=rev
Log:
* tools/dist/create-minor-release-branch.py
Import 'Version' class from release.py.
Modified:
subversion/trunk/tools/dist/create-minor-release-branch.py
Modified: subversion/trunk/tools/dist/create-minor-release-branch.py
URL: http://svn.apache.org/viewvc/subversion/trunk/tools/dist/create-minor-release-branch.py?rev=1818073&r1=1818072&r2=1818073&view=diff
==============================================================================
--- subversion/trunk/tools/dist/create-minor-release-branch.py (original)
+++ subversion/trunk/tools/dist/create-minor-release-branch.py Wed Dec 13 22:21:03 2017
@@ -52,6 +52,8 @@ import itertools
import subprocess
import argparse # standard in Python 2.7
+from release import Version
+
# Some constants
repos = 'https://svn.apache.org/repos/asf/subversion'
@@ -86,125 +88,6 @@ def get_buildbot_url():
#----------------------------------------------------------------------
# Utility functions
-class Version(object):
- regex = re.compile(r'(\d+).(\d+).(\d+)(?:-(?:(rc|alpha|beta)(\d+)))?')
-
- def __init__(self, ver_str):
- # Special case the 'trunk-nightly' version
- if ver_str == 'trunk-nightly':
- self.major = None
- self.minor = None
- self.patch = None
- self.pre = 'nightly'
- self.pre_num = None
- self.base = 'nightly'
- self.branch = 'trunk'
- return
-
- match = self.regex.search(ver_str)
-
- if not match:
- raise RuntimeError("Bad version string '%s'" % ver_str)
-
- self.major = int(match.group(1))
- self.minor = int(match.group(2))
- self.patch = int(match.group(3))
-
- if match.group(4):
- self.pre = match.group(4)
- self.pre_num = int(match.group(5))
- else:
- self.pre = None
- self.pre_num = None
-
- self.base = '%d.%d.%d' % (self.major, self.minor, self.patch)
- self.branch = '%d.%d' % (self.major, self.minor)
-
- def is_prerelease(self):
- return self.pre != None
-
- def is_recommended(self):
- return self.branch == recommended_release
-
- def get_download_anchor(self):
- if self.is_prerelease():
- return 'pre-releases'
- else:
- if self.is_recommended():
- return 'recommended-release'
- else:
- return 'supported-releases'
-
- def get_ver_tags(self, revnum):
- # These get substituted into svn_version.h
- ver_tag = ''
- ver_numtag = ''
- if self.pre == 'alpha':
- ver_tag = '" (Alpha %d)"' % self.pre_num
- ver_numtag = '"-alpha%d"' % self.pre_num
- elif self.pre == 'beta':
- ver_tag = '" (Beta %d)"' % args.version.pre_num
- ver_numtag = '"-beta%d"' % self.pre_num
- elif self.pre == 'rc':
- ver_tag = '" (Release Candidate %d)"' % self.pre_num
- ver_numtag = '"-rc%d"' % self.pre_num
- elif self.pre == 'nightly':
- ver_tag = '" (Nightly Build r%d)"' % revnum
- ver_numtag = '"-nightly-r%d"' % revnum
- else:
- ver_tag = '" (r%d)"' % revnum
- ver_numtag = '""'
- return (ver_tag, ver_numtag)
-
- def __serialize(self):
- return (self.major, self.minor, self.patch, self.pre, self.pre_num)
-
- def __eq__(self, that):
- return self.__serialize() == that.__serialize()
-
- def __ne__(self, that):
- return self.__serialize() != that.__serialize()
-
- def __hash__(self):
- return hash(self.__serialize())
-
- def __lt__(self, that):
- if self.major < that.major: return True
- if self.major > that.major: return False
-
- if self.minor < that.minor: return True
- if self.minor > that.minor: return False
-
- if self.patch < that.patch: return True
- if self.patch > that.patch: return False
-
- if not self.pre and not that.pre: return False
- if not self.pre and that.pre: return False
- if self.pre and not that.pre: return True
-
- # We are both pre-releases
- if self.pre != that.pre:
- return self.pre < that.pre
- else:
- return self.pre_num < that.pre_num
-
- def __str__(self):
- "Return an SVN_VER_NUMBER-formatted string, or 'nightly'."
- if self.pre:
- if self.pre == 'nightly':
- return 'nightly'
- else:
- extra = '-%s%d' % (self.pre, self.pre_num)
- else:
- extra = ''
-
- return self.base + extra
-
- def __repr__(self):
-
- return "Version(%s)" % repr(str(self))
-
-#----------------------------------------------------------------------
def run(cmd, dry_run=False):
print('+ ' + ' '.join(cmd))
if not dry_run: