From 10c775785226263477e10de3ff056bfcf7d6e7f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Mon, 11 Apr 2016 23:22:40 +0200 Subject: [PATCH 1/2] LUCENE-7155: Detect master/major branch using enum, abort on more errors --- dev-tools/scripts/addVersion.py | 19 +++++++++++-------- dev-tools/scripts/scriptutil.py | 16 ++++++++++------ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/dev-tools/scripts/addVersion.py b/dev-tools/scripts/addVersion.py index 6eaf5174095..414e4a12a5c 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,23 @@ 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') + print ("branch_type is %s " % c.branch_type) 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 diff --git a/dev-tools/scripts/scriptutil.py b/dev-tools/scripts/scriptutil.py index 10efd2b4229..216bde433b7 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=(.*)') From c1a70f31a605ac254c4c5d556444659aaa3201e5 Mon Sep 17 00:00:00 2001 From: yonik Date: Mon, 11 Apr 2016 23:51:41 -0400 Subject: [PATCH 2/2] LUCENE-7188: remove incorrect sanity check in NRTCachingDirectory.listAll() that throws IllegalStateException --- lucene/CHANGES.txt | 4 ++++ .../java/org/apache/lucene/store/NRTCachingDirectory.java | 5 +---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt index 6b549f2d76f..e371f25aabb 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -76,6 +76,10 @@ Bug Fixes * LUCENE-7187: Block join queries' Weight#extractTerms(...) implementations should delegate to the wrapped weight. (Martijn van Groningen) +* LUCENE-7188: remove incorrect sanity check in NRTCachingDirectory.listAll() + that led to IllegalStateException being thrown when nothing was wrong. + (David Smiley, yonik) + Other * LUCENE-7174: Upgrade randomizedtesting to 2.3.4. (Uwe Schindler, Dawid Weiss) diff --git a/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java b/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java index 22a9571b76b..9be0b9e9c91 100644 --- a/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java +++ b/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java @@ -101,10 +101,7 @@ public class NRTCachingDirectory extends FilterDirectory implements Accountable files.add(f); } for(String f : in.listAll()) { - if (!files.add(f)) { - throw new IllegalStateException("file: " + in + " appears both in delegate and in cache: " + - "cache=" + Arrays.toString(cache.listAll()) + ",delegate=" + Arrays.toString(in.listAll())); - } + files.add(f); } String[] result = files.toArray(new String[files.size()]); Arrays.sort(result);