Skip to content

Commit ff21985

Browse files
author
Renato Haeberli
committed
Merge branch 'main' into enhance-DictionaryCompoundWordTokenFilter2
# Conflicts: # lucene/CHANGES.txt # lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilter.java # lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilterFactory.java # lucene/analysis/common/src/test/org/apache/lucene/analysis/compound/TestCompoundWordTokenFilter.java
2 parents 6ff9abb + e50fb7f commit ff21985

File tree

343 files changed

+2503
-1627
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

343 files changed

+2503
-1627
lines changed

.github/actions/prepare-for-build/action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ name: Prepare Lucene build
66
inputs:
77
java-version:
88
required: false
9-
default: 21
9+
default: 23
1010
description: "The default JDK version to set up."
1111

1212
java-distribution:

.github/workflows/run-checks-all.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
strategy:
3030
matrix:
3131
os: [ ubuntu-latest ]
32-
java: [ '21' ]
32+
java: [ '23' ]
3333

3434
runs-on: ${{ matrix.os }}
3535

@@ -53,7 +53,7 @@ jobs:
5353
matrix:
5454
# Operating systems to run on.
5555
os: [ ubuntu-latest, windows-latest, macos-latest ]
56-
java: [ '21' ]
56+
java: [ '23' ]
5757

5858
runs-on: ${{ matrix.os }}
5959

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
name: "Change Log Entry Verifier and Milestone Setter"
2+
run-name: Change log entry verifier and milestone setter
3+
on:
4+
- pull_request_target
5+
6+
env:
7+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
8+
ISSUE: ${{ github.event.issue.html_url }}
9+
SKIP_CHANGELOG_CHECK_LABEL: ${{ '"skip-changelog-check"' }}
10+
CHANGE_LOG_FILE: ${{ 'lucene/CHANGES.txt' }}
11+
12+
jobs:
13+
changelog-verifier-and-milestone-setter:
14+
name: Verify Change Log Entry and Set Milestone
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout repository
19+
uses: actions/checkout@v4
20+
with:
21+
fetch-depth: 2
22+
23+
- name: ChangeLog Entry Verifier and Milestone Setter
24+
run: |
25+
echo "################## STEP 1 ##################"
26+
echo "Get all labels from the PR"
27+
mapfile -t labels < <(gh pr view ${{ github.event.number }} --json labels -q '.labels[].name')
28+
IFS=','; echo "${labels[*]}"
29+
for label in "${labels[@]}"; do
30+
if [[ $label == ${{ env.SKIP_CHANGELOG_CHECK_LABEL }} ]]; then
31+
echo "Skipping github action workflow as label: ${SKIP_CHANGELOG_CHECK_LABEL} is found in the PR."
32+
exit 0
33+
fi
34+
done
35+
echo "${{ env.SKIP_CHANGELOG_CHECK_LABEL }} not found in the PR. Proceeding with next steps."
36+
37+
echo -e "\n"
38+
echo "################## STEP 2 ##################"
39+
echo "Checking for change log entry in ${{ env.CHANGE_LOG_FILE }}"
40+
git log --pretty=oneline | tail -n 2 | cat
41+
echo "merge base sha: ${{ github.event.pull_request.base.sha }}, merge head sha: ${{ github.event.pull_request.head.sha }}"
42+
if ! git diff ${{ github.event.pull_request.base.sha }} --name-only | grep -q "${{ env.CHANGE_LOG_FILE }}"; then
43+
echo "Change log file:${{ env.CHANGE_LOG_FILE }} does not contains an entry corresponding to changes introduced in PR. Please add a changelog entry."
44+
exit 0
45+
else
46+
echo "${{ env.CHANGE_LOG_FILE }} contains change log entry. Proceeding with next steps."
47+
fi
48+
49+
50+
echo -e "\n"
51+
echo "################## STEP 3 ##################"
52+
echo "Extracting Lucene version from change log entry"
53+
# git diff header pattern -> "@@ -15,0 +16,4 @@"
54+
# try to extract the line number at which new entry is added, here it's line number 16
55+
diff=$(git diff ${{ github.event.pull_request.base.sha }} --unified=0 -- ${{ env.CHANGE_LOG_FILE }})
56+
lucene_version=""
57+
diff_header_pattern="@@ -[0-9]+,?[0-9]* \+([0-9]*),?[0-9]* @@"
58+
if [[ $diff =~ $diff_header_pattern ]]; then
59+
echo "Match found: ${BASH_REMATCH[0]}"
60+
new_entry_line_number=$((BASH_REMATCH[1]))
61+
echo "Found introduced change log entry at line number:${new_entry_line_number}"
62+
lucene_version_regex="=+ ?Lucene ?([0-9.]*) ?=+"
63+
current_line_number=0
64+
while IFS="" read -r line; do
65+
current_line_number=$((current_line_number+1))
66+
if [[ $line =~ $lucene_version_regex ]]; then
67+
lucene_version="${BASH_REMATCH[1]}"
68+
fi
69+
if [[ $current_line_number -ge $new_entry_line_number ]]; then
70+
echo "Reached the line number at which new entry is added in ${{ env.CHANGE_LOG_FILE }}"
71+
break
72+
fi
73+
done < ${{ env.CHANGE_LOG_FILE }}
74+
if [[ -z $lucene_version ]]; then
75+
echo "Could not find Lucene version in the change log entry. Please add the Lucene version in the change log entry."
76+
exit 0
77+
fi
78+
echo "Found corresponding Lucene version: ${lucene_version} based on change log entry. Proceeding with next steps."
79+
else
80+
echo "Could not find the line number at which new entry is added in ${{ env.CHANGE_LOG_FILE }}"
81+
exit 0
82+
fi
83+
84+
85+
echo -e "\n"
86+
echo "################## STEP 4 ##################"
87+
echo "Adding/Updating milestone for the PR"
88+
mapfile -t milestones < <(gh repo view --json milestones -q '.milestones[].title')
89+
IFS=','; echo "${milestones[*]}"
90+
milestone_exists=false
91+
for milestone in "${milestones[@]}"; do
92+
if [[ $milestone == "$lucene_version" ]]; then
93+
milestone_exists=true
94+
break
95+
fi
96+
done
97+
if [[ $milestone_exists == false ]]; then
98+
echo "Milestone:${lucene_version} does not exist. Please create the milestone and run the workflow again."
99+
exit 0
100+
fi
101+
# Will uncomment this line after we ensure it runs perfectly in production.
102+
# gh pr edit ${{ github.event.number }} --milestone "${lucene_version}"
103+
echo "Adding/Updating milestone for the PR to:${lucene_version}"

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ comprehensive documentation, visit:
4040

4141
### Basic steps:
4242

43-
1. Install OpenJDK 21.
43+
1. Install OpenJDK 23.
4444
2. Clone Lucene's git repository (or download the source distribution).
4545
3. Run gradle launcher script (`gradlew`).
4646

build-tools/build-infra/src/main/java/org/apache/lucene/gradle/WrapperDownloader.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ public static void main(String[] args) {
6060

6161
public static void checkVersion() {
6262
int major = Runtime.version().feature();
63-
if (major != 21 && major != 22 && major != 23) {
64-
throw new IllegalStateException("java version must be 21, 22 or 23, your version: " + major);
63+
if (major != 23) {
64+
throw new IllegalStateException("java version must be 23, your version: " + major);
6565
}
6666
}
6767

build.gradle

+5-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,11 @@ ext {
8181
minJavaVersion = JavaVersion.toVersion(deps.versions.minJava.get())
8282

8383
// also change this in extractor tool: ExtractForeignAPI
84-
vectorIncubatorJavaVersions = [ JavaVersion.VERSION_21, JavaVersion.VERSION_22, JavaVersion.VERSION_23 ] as Set
84+
vectorIncubatorJavaVersions = [
85+
JavaVersion.VERSION_21,
86+
JavaVersion.VERSION_22,
87+
JavaVersion.VERSION_23,
88+
JavaVersion.VERSION_24 ] as Set
8589

8690
// snapshot build marker used in scripts.
8791
snapshotBuild = version.contains("SNAPSHOT")

dev-tools/scripts/releaseWizard.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
from scriptutil import BranchType, Version, download, run
6868

6969
# Lucene-to-Java version mapping
70-
java_versions = {6: 8, 7: 8, 8: 8, 9: 11, 10: 21}
70+
java_versions = {6: 8, 7: 8, 8: 8, 9: 11, 10: 21, 11: 23}
7171
editor = None
7272

7373
# Edit this to add other global jinja2 variables or filters

dev-tools/scripts/smokeTestRelease.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
from collections import namedtuple
4040
import scriptutil
4141

42-
BASE_JAVA_VERSION = "21"
42+
BASE_JAVA_VERSION = "23"
4343

4444
# This tool expects to find /lucene off the base URL. You
4545
# must have a working gpg, tar, unzip in your path. This has been

gradle/documentation/check-broken-links/checkJavadocLinks.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ def __init__(self, baseURL):
3939
self.printed = False
4040

4141
def handle_starttag(self, tag, attrs):
42+
# look for explicit broken link
43+
if tag == 'details':
44+
for attName, attValue in attrs:
45+
if attName == 'class' and attValue == 'invalid-tag':
46+
raise RuntimeError('javadoc generated an invalid-tag')
47+
4248
# NOTE: I don't think 'a' should be in here. But try debugging
4349
# NumericRangeQuery.html. (Could be javadocs bug, it's a generic type...)
4450
if tag not in ('link', 'meta', 'frame', 'br', 'wbr', 'hr', 'p', 'li', 'img', 'col', 'a', 'dt', 'dd', 'input'):
@@ -108,7 +114,7 @@ def parse(baseURL, html):
108114
try:
109115
parser.feed(html)
110116
parser.close()
111-
except:
117+
except Exception:
112118
# TODO: Python's html.parser is now always lenient, which is no good for us: we want correct HTML in our javadocs
113119
parser.printFile()
114120
print(' WARNING: failed to parse %s:' % baseURL)
@@ -140,7 +146,7 @@ def checkAll(dirName):
140146
else:
141147
iter = os.walk(dirName)
142148

143-
for root, dirs, files in iter:
149+
for root, _, files in iter:
144150
for f in files:
145151
main, ext = os.path.splitext(f)
146152
ext = ext.lower()
@@ -162,7 +168,7 @@ def checkAll(dirName):
162168
# ... then verify:
163169
print()
164170
print('Verify...')
165-
for fullPath, (links, anchors) in allFiles.items():
171+
for fullPath, (links, _) in allFiles.items():
166172
#print fullPath
167173
printed = False
168174
for link in links:

gradle/template.gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ tests.jvms=@TEST_JVMS@
102102
org.gradle.java.installations.auto-download=true
103103

104104
# Set these to enable automatic JVM location discovery.
105-
org.gradle.java.installations.fromEnv=JAVA21_HOME,JAVA22_HOME,RUNTIME_JAVA_HOME
105+
org.gradle.java.installations.fromEnv=JAVA23_HOME,RUNTIME_JAVA_HOME
106106
#org.gradle.java.installations.paths=(custom paths)
107107

108108
# Opt out of gradle enterprise build scan plugin entire.

gradle/validation/ecj-lint/ecj.javadocs.prefs

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
eclipse.preferences.version=1
2+
org.eclipse.jdt.core.builder.annotationPath.allLocations=enabled
23
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
34
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
45
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
56
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
67
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
78
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
9+
org.eclipse.jdt.core.compiler.annotation.notowning=org.eclipse.jdt.annotation.NotOwning
810
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
911
org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
1012
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
13+
org.eclipse.jdt.core.compiler.annotation.owning=org.eclipse.jdt.annotation.Owning
14+
# TODO: look into it and see if it can provide value, lots of errors
15+
org.eclipse.jdt.core.compiler.annotation.resourceanalysis=disabled
1116
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
1217
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
13-
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
18+
org.eclipse.jdt.core.compiler.codegen.targetPlatform=23
1419
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
15-
org.eclipse.jdt.core.compiler.compliance=21
20+
org.eclipse.jdt.core.compiler.compliance=23
1621
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1722
org.eclipse.jdt.core.compiler.debug.localVariable=generate
1823
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -46,8 +51,10 @@ org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
4651
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
4752
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
4853
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
54+
org.eclipse.jdt.core.compiler.problem.incompatibleOwningContract=error
4955
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
5056
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
57+
org.eclipse.jdt.core.compiler.problem.insufficientResourceAnalysis=error
5158
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
5259
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
5360
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
@@ -130,6 +137,7 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverridin
130137
org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=error
131138
org.eclipse.jdt.core.compiler.problem.unusedImport=error
132139
org.eclipse.jdt.core.compiler.problem.unusedLabel=error
140+
org.eclipse.jdt.core.compiler.problem.unusedLambdaParameter=error
133141
org.eclipse.jdt.core.compiler.problem.unusedLocal=error
134142
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
135143
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
@@ -143,7 +151,7 @@ org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=error
143151
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=ignore
144152
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error
145153
org.eclipse.jdt.core.compiler.release=disabled
146-
org.eclipse.jdt.core.compiler.source=21
154+
org.eclipse.jdt.core.compiler.source=23
147155
org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
148156
org.eclipse.jdt.core.compiler.taskPriorities=HIGH
149157
org.eclipse.jdt.core.compiler.taskTags=nocommit

gradle/validation/error-prone.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ allprojects { prj ->
486486
// '-Xep:NonApiType:OFF', // noisy
487487
// '-Xep:NonAtomicVolatileUpdate:OFF', // TODO: there are problems
488488
// '-Xep:NonCanonicalType:OFF', // noisy
489-
// '-Xep:NonFinalStaticField:OFF', // noisy
489+
'-Xep:NonFinalStaticField:WARN',
490490
'-Xep:NonOverridingEquals:WARN',
491491
'-Xep:NotJavadoc:WARN',
492492
'-Xep:NullOptional:WARN',

gradlew

+1-1
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ if [ ! -e "$GRADLE_WRAPPER_JAR" ]; then
161161
"$JAVACMD" $JAVA_OPTS "$APP_HOME/build-tools/build-infra/src/main/java/org/apache/lucene/gradle/WrapperDownloader.java" "$GRADLE_WRAPPER_JAR"
162162
WRAPPER_STATUS=$?
163163
if [ "$WRAPPER_STATUS" -eq 1 ]; then
164-
echo "ERROR: Something went wrong. Make sure you're using Java version of exactly 21."
164+
echo "ERROR: Something went wrong. Make sure you're using Java version of exactly 23."
165165
exit $WRAPPER_STATUS
166166
elif [ "$WRAPPER_STATUS" -ne 0 ]; then
167167
exit $WRAPPER_STATUS

gradlew.bat

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ goto fail
108108

109109
:failWithJvmMessage
110110
@rem https://github.com/apache/lucene/pull/819
111-
echo Error: Something went wrong. Make sure you're using Java version of exactly 21.
111+
echo Error: Something went wrong. Make sure you're using Java version of exactly 23.
112112

113113
:fail
114114
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of

0 commit comments

Comments
 (0)