MarkAHershberger has uploaded a new change for review. https://gerrit.wikimedia.org/r/118074
Change subject: Fix make-release script to use branches instead of tags ...................................................................... Fix make-release script to use branches instead of tags * Also allow easy changing of root url for downloads (url still needs to be fixed, though) * Fix diff production by storing cwd before changing dir and making sure dir is right before starting diffs. * Put git checkout in separate function that both core and extensions can use. Change-Id: I80ec9bba1db834dba1578aebcf55931a07061dc2 --- M make-release/make-release.py 1 file changed, 50 insertions(+), 38 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/tools/release refs/changes/74/118074/1 diff --git a/make-release/make-release.py b/make-release/make-release.py index 9681148..e77da6d 100755 --- a/make-release/make-release.py +++ b/make-release/make-release.py @@ -72,7 +72,7 @@ return list(set(extensions)) -def versionToBranch(version): +def versionToTag(version): return 'tags/' + version @@ -178,8 +178,9 @@ self.raw = version self.major = decomposed.get('major', None) self.branch = decomposed.get('branch', None) + self.tag = decomposed.get('tag', None) self.prev_version = decomposed.get('prevVersion', None) - self.prev_branch = decomposed.get('prevBranch', None) + self.prev_tag = decomposed.get('prevTag', None) # alpha / beta / rc .. self.phase = decomposed.get('phase', None) @@ -189,10 +190,11 @@ if self.raw is None: return "<MwVersion Null (snapshot?)>" - return "<MwVersion %s major: %s (prev: %s), branch: %s (prev: %s)>" % ( + return "<MwVersion %s major: %s (prev: %s), tag: %s (prev: %s), branch: %s>" % ( self.raw, self.major, self.prev_version, - self.branch, self.prev_branch) + self.tag, self.prev_tag, + self.branch) def decomposeVersion(self, version): '''Split a version number to branch / major @@ -201,8 +203,9 @@ - major (ie 1.22) - minor - branch + - tag - prevVersion - - prevBranch + - prevTag When one or more letters are found after the minor version we consider it a software development phase (ex: alpha, beta, rc) with incremental @@ -218,7 +221,7 @@ return ret m = re.compile(r""" - (?P<major>\d+\.\d+) + (?P<major>(?P<major1>\d+)\.(?P<major2>\d+)) \. (?P<minor>\d+) (?: @@ -234,7 +237,14 @@ ret = dict((k, v) for k, v in m.groupdict().iteritems() if v is not None) - ret['branch'] = 'tags/%s.%s%s%s' % ( + ret['branch'] = 'REL%s_%s' % ( + ret['major1'], + ret['major2'], + ) + del ret['major1'] + del ret['major2'] + + ret['tag'] = 'tags/%s.%s%s%s' % ( ret['major'], ret['minor'], ret.get('phase', ''), @@ -246,11 +256,13 @@ ret['prevVersion'] = None return ret - bits = [d if d is not None else '' for d in m.groups()] + bits = [d for d in m.groups('')] bits[m.lastindex - 1] = str(int(bits[m.lastindex - 1]) - 1) + del bits[1] + del bits[1] ret['prevVersion'] = '%s.%s%s%s' % tuple(bits) - ret['prevBranch'] = 'tags/' + ret['prevVersion'] + ret['prevTag'] = 'tags/' + ret['prevVersion'] return ret @@ -346,7 +358,8 @@ return False print 'Please type "y" for yes or "n" for no' - def getGit(self, repo, dir, label): + def getGit(self, repo, dir, label, branch): + oldDir = os.getcwd() if os.path.exists(repo): print "Updating local %s" % repo proc = subprocess.Popen(['git', 'remote', 'update'], @@ -367,8 +380,20 @@ print "git clone failed, exiting" sys.exit(1) - def patchExport(self, patch, dir): + os.chdir(dir) + if branch != 'trunk': + print "Checking out %s..." % (branch) + proc = subprocess.Popen(['git', 'checkout', branch]) + + if proc.wait() != 0: + print "git checkout failed, exiting" + sys.exit(1) + + os.chdir(oldDir) + + def patchExport(self, patch, dir): + oldDir = os.getcwd() gitRoot = self.options.gitroot os.chdir(dir) @@ -382,27 +407,16 @@ print "git patch failed, exiting" sys.exit(1) - os.chdir('..') + os.chdir(oldDir) print "Done" - def export(self, tag, module, exportDir): + def export(self, branch, module, exportDir): gitRoot = self.options.gitroot dir = exportDir + '/' + module - self.getGit(gitRoot + '/core', dir, "core") + self.getGit(gitRoot + '/core', dir, "core", branch) - os.chdir(dir) - - if tag != 'trunk': - print "Checking out %s..." % (tag) - proc = subprocess.Popen(['git', 'checkout', tag]) - - if proc.wait() != 0: - print "git checkout failed, exiting" - sys.exit(1) - - os.chdir('..') print "Done" def exportExtension(self, branch, extension, dir): @@ -411,7 +425,7 @@ gitroot = self.options.gitrootext self.getGit(gitroot + '/extensions/' + extension, - dir + '/extensions/' + extension, extension) + dir + '/extensions/' + extension, extension, branch) print "Done" def makePatch(self, destDir, patchFileName, dir1, dir2, type): @@ -492,6 +506,7 @@ # variables related to the version branch = self.version.branch + tag = self.version.tag #prevBranch = self.version.prev_branch prevVersion = self.version.prev_version @@ -520,7 +535,7 @@ package = 'mediawiki-' + version # Export the target - self.export(branch, package, buildDir) + self.export(tag, package, buildDir) patchRevisions = [] for patch in patchRevisions: @@ -549,9 +564,10 @@ ) # Patch + os.chdir(buildDir) if prevVersion is not None: prevDir = 'mediawiki-' + prevVersion - self.export(versionToBranch(prevVersion), + self.export(versionToTag(prevVersion), prevDir, buildDir) for ext in getVersionExtensions(prevVersion, extensions): @@ -611,30 +627,26 @@ print print '*' * 70 + downloadBase = 'http://releases.wikimedia.org/mediawiki/' print 'Download:' - print ('http://download.wikimedia.org/mediawiki/' - + dir + '/' + package + '.tar.gz') + print (downloadBase + dir + '/' + package + '.tar.gz') print if prevVersion is not None: if haveI18n: print ("Patch to previous version (" + prevVersion + "), without interface text:") - print ('http://download.wikimedia.org/mediawiki/' - + dir + '/' + package + '.patch.gz') + print (downloadBase + dir + '/' + package + '.patch.gz') print "Interface text changes:" - print ('http://download.wikimedia.org/mediawiki/' - + dir + '/' + i18nPatch) + print (downloadBase + dir + '/' + i18nPatch) else: print "Patch to previous version (" + prevVersion + "):" - print ('http://download.wikimedia.org/mediawiki/' - + dir + '/' + package + '.patch.gz') + print (downloadBase + dir + '/' + package + '.patch.gz') print print 'GPG signatures:' for fileName in outFiles: - print ('http://download.wikimedia.org/mediawiki/' - + dir + '/' + fileName + '.sig') + print (downloadBase + dir + '/' + fileName + '.sig') print print 'Public keys:' -- To view, visit https://gerrit.wikimedia.org/r/118074 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I80ec9bba1db834dba1578aebcf55931a07061dc2 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/tools/release Gerrit-Branch: master Gerrit-Owner: MarkAHershberger <m...@nichework.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits