Return-Path: X-Original-To: apmail-lucene-commits-archive@www.apache.org Delivered-To: apmail-lucene-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8F4F419455 for ; Tue, 12 Apr 2016 10:45:25 +0000 (UTC) Received: (qmail 73424 invoked by uid 500); 12 Apr 2016 10:45:25 -0000 Mailing-List: contact commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@lucene.apache.org Delivered-To: mailing list commits@lucene.apache.org Received: (qmail 73410 invoked by uid 99); 12 Apr 2016 10:45:25 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Apr 2016 10:45:25 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 1C96FDFA6F; Tue, 12 Apr 2016 10:45:25 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: janhoy@apache.org To: commits@lucene.apache.org Date: Tue, 12 Apr 2016 10:45:26 -0000 Message-Id: <3870c77d408e4d5eb7e023ca66edc9ad@git.apache.org> In-Reply-To: <020a0908e4f8496283bdb9bbeb79b740@git.apache.org> References: <020a0908e4f8496283bdb9bbeb79b740@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [3/3] lucene-solr:branch_5x: LUCENE-7155: Detect master/major branch using enum, abort on more errors (cherry picked from commit 10c7757) LUCENE-7155: Detect master/major branch using enum, abort on more errors (cherry picked from commit 10c7757) Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/98caa45c Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/98caa45c Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/98caa45c Branch: refs/heads/branch_5x Commit: 98caa45c312e9231517ff1205208d3ac64601ada Parents: 4c57190 Author: Jan Høydahl Authored: Mon Apr 11 23:22:40 2016 +0200 Committer: Jan Høydahl Committed: Tue Apr 12 12:44:37 2016 +0200 ---------------------------------------------------------------------- dev-tools/scripts/addVersion.py | 18 ++++++++++-------- dev-tools/scripts/scriptutil.py | 16 ++++++++++------ 2 files changed, 20 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/98caa45c/dev-tools/scripts/addVersion.py ---------------------------------------------------------------------- diff --git a/dev-tools/scripts/addVersion.py b/dev-tools/scripts/addVersion.py index 6eaf517..ccf1a49 100644 --- a/dev-tools/scripts/addVersion.py +++ b/dev-tools/scripts/addVersion.py @@ -19,9 +19,7 @@ sys.path.append(os.path.dirname(__file__)) from scriptutil import * import argparse -import io import re -import subprocess def update_changes(filename, new_version): print(' adding new section to %s...' % filename, end='', flush=True) @@ -168,18 +166,22 @@ def check_solr_version_tests(): def read_config(): parser = argparse.ArgumentParser(description='Add a new version') parser.add_argument('version', type=Version.parse) - parser.add_argument('-c', '--changeid', type=str, help='SVN ChangeId for downstream version change to merge') + parser.add_argument('-c', '--changeid', type=str, help='Git ChangeId (commit hash) for downstream version change to merge') c = parser.parse_args() c.branch_type = find_branch_type() - c.matching_branch = c.version.is_bugfix_release() and c.branch_type == 'release' or \ - c.version.is_minor_release() and c.branch_type == 'stable' or \ - c.branch_type == 'major' + c.matching_branch = c.version.is_bugfix_release() and c.branch_type == BranchType.release or \ + c.version.is_minor_release() and c.branch_type == BranchType.stable or \ + c.version.is_major_release() and c.branch_type == BranchType.major - if c.changeid and c.matching_branch: - parser.error('Cannot use --changeid on branch that new version will originate on') if c.changeid and c.version.is_major_release(): parser.error('Cannot use --changeid for major release') + if c.changeid and c.matching_branch: + parser.error('Cannot use --changeid on branch that new version will originate on') + if c.version.is_bugfix_release() and c.branch_type in [BranchType.major, BranchType.stable] and not c.changeid: + parser.error('Adding bugfix release on master or stable branch requires --changeid') + if c.version.is_minor_release() and c.branch_type in [BranchType.major] and not c.changeid: + parser.error('Adding minor release on master branch requires --changeid') return c http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/98caa45c/dev-tools/scripts/scriptutil.py ---------------------------------------------------------------------- diff --git a/dev-tools/scripts/scriptutil.py b/dev-tools/scripts/scriptutil.py index 10efd2b..216bde4 100644 --- a/dev-tools/scripts/scriptutil.py +++ b/dev-tools/scripts/scriptutil.py @@ -14,11 +14,10 @@ # limitations under the License. import argparse -import io -import os import re import subprocess import sys +from enum import Enum class Version(object): def __init__(self, major, minor, bugfix, prerelease): @@ -95,7 +94,12 @@ def update_file(filename, line_re, edit): f.write(''.join(buffer)) return True -# branch types are "release", "stable" and "trunk" +# branch types are "release", "stable" and "major" +class BranchType(Enum): + major = 1 + stable = 2 + release = 3 + def find_branch_type(): output = subprocess.check_output('git status', shell=True) for line in output.split(b'\n'): @@ -106,11 +110,11 @@ def find_branch_type(): raise Exception('git status missing branch name') if branchName == b'master': - return 'master' + return BranchType.major if re.match(r'branch_(\d+)x', branchName.decode('UTF-8')): - return 'stable' + return BranchType.stable if re.match(r'branch_(\d+)_(\d+)', branchName.decode('UTF-8')): - return 'release' + return BranchType.release raise Exception('Cannot run bumpVersion.py on feature branch') version_prop_re = re.compile('version\.base=(.*)')