This is an automated email from the ASF dual-hosted git repository.
magibney pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new b6f9927d006 Improvements to joint Lucene/Solr dev workflow (#1323)
b6f9927d006 is described below
commit b6f9927d006dd9dfa5a14e86f6330c9601113225
Author: Michael Gibney <[email protected]>
AuthorDate: Thu Feb 2 15:46:03 2023 -0500
Improvements to joint Lucene/Solr dev workflow (#1323)
* doclet group is arbitrary; use solr namespace instead to avoid conflicts
* allow reading `lucene.dev.path` from `gradle.properties`
* use luceneBaseVersionProvider for lucene dependency versions, where
possible
* it makes no sense to validate jar checksums for SNAPSHOT (local) versions
* prevent validation tasks from recursing into lucene subdir
* name of included local Lucene build should match Lucene `rootProject.name`
(cherry picked from commit b9a118d8db036188261f215073d77fa3df4505e3)
---
dev-tools/solr-missing-doclet/build.gradle | 2 +-
gradle/documentation/documentation.gradle | 2 +-
gradle/documentation/render-javadoc.gradle | 2 +-
gradle/lucene-dev/lucene-dev-repo-composite.gradle | 10 ++++++++--
gradle/validation/jar-checks.gradle | 5 ++++-
gradle/validation/rat-sources.gradle | 3 +++
gradle/validation/validate-source-patterns.gradle | 1 +
solr/solr-ref-guide/build.gradle | 3 ++-
8 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/dev-tools/solr-missing-doclet/build.gradle
b/dev-tools/solr-missing-doclet/build.gradle
index 3b5d4e1a022..e85f0a037e4 100644
--- a/dev-tools/solr-missing-doclet/build.gradle
+++ b/dev-tools/solr-missing-doclet/build.gradle
@@ -20,7 +20,7 @@ plugins {
}
version = "1.0.0-SNAPSHOT"
-group = "org.apache.lucene.tools"
+group = "org.apache.solr.tools"
description = 'Doclet-based javadoc validation'
sourceCompatibility = JavaVersion.VERSION_11
diff --git a/gradle/documentation/documentation.gradle
b/gradle/documentation/documentation.gradle
index cc3efcb4ad1..c97694eb8f3 100644
--- a/gradle/documentation/documentation.gradle
+++ b/gradle/documentation/documentation.gradle
@@ -26,7 +26,7 @@ configure(rootProject) {
// In the case of a 'SNAPSHOT' luceneDocVersion this URL won't actually
exist, but that shouldn't mater since
// we can't release Solr pointed at a Lucene SNAPSHOT, so we won't be
publishing in this state...
luceneDocUrl = project.propertyOrDefault('lucene.javadoc.url',
- "https://lucene.apache.org/core/${-> getVersion("org.apache.lucene",
"lucene-core").replace('.', '_')}")
+ "https://lucene.apache.org/core/${->
luceneBaseVersionProvider.get().replace('.', '_')}")
solrDocUrl = project.propertyOrDefault('solr.javadoc.url', {
if (project.version != project.baseVersion) {
diff --git a/gradle/documentation/render-javadoc.gradle
b/gradle/documentation/render-javadoc.gradle
index 72cf39a425a..99c4f0eef61 100644
--- a/gradle/documentation/render-javadoc.gradle
+++ b/gradle/documentation/render-javadoc.gradle
@@ -29,7 +29,7 @@ allprojects {
}
dependencies {
- missingdoclet "org.apache.lucene.tools:missing-doclet"
+ missingdoclet "org.apache.solr.tools:missing-doclet"
}
ext {
diff --git a/gradle/lucene-dev/lucene-dev-repo-composite.gradle
b/gradle/lucene-dev/lucene-dev-repo-composite.gradle
index 9d23c731c46..d612b29fe70 100644
--- a/gradle/lucene-dev/lucene-dev-repo-composite.gradle
+++ b/gradle/lucene-dev/lucene-dev-repo-composite.gradle
@@ -32,7 +32,7 @@ def configuringSettings = (rootProject instanceof
org.gradle.api.initialization.
// Accessor for -P properties from settings or at build time.
BiFunction<String, String, String> resolvePropertyValue = { propertyName,
defValue ->
if (configuringSettings) {
- return
settings.startParameter.projectProperties.getOrDefault(propertyName, defValue)
+ return settings.ext.properties.getOrDefault(propertyName, defValue)
} else {
return project.properties.getOrDefault(propertyName, defValue)
}
@@ -109,6 +109,12 @@ if (luceneDevRepo != null) {
// Include Lucene repository as a composite and substitute module names.
includeBuild(luceneDevRepo) {
+ // Explicitly specify project name; otherwise project name is determined
by directory name.
+ // The name of included build should match the `rootProject.name` of
lucene: "lucene-root"
+ // At build time (below) the included build is retrieved by name;
subproject tests in IDE
+ // will also default to run against the root project name of the
included build, so it's
+ // important to have the names match.
+ name = 'lucene-root'
dependencySubstitution {
all { DependencySubstitution dependency ->
if (dependency.requested instanceof ModuleComponentSelector) {
@@ -133,7 +139,7 @@ if (luceneDevRepo != null) {
// replace luceneBaseVersionProvider by one evaluating the included build:
configure(rootProject) {
- def line = new File(gradle.includedBuild('lucene').projectDir,
'build.gradle').readLines("UTF-8").find { it =~ /\bbaseVersion\s*=\s*['"]/ }
+ def line = new File(gradle.includedBuild('lucene-root').projectDir,
'build.gradle').readLines("UTF-8").find { it =~ /\bbaseVersion\s*=\s*['"]/ }
if (!line) {
throw new GradleException('Cannot extract Lucene baseVersion from
build.gradle file.')
}
diff --git a/gradle/validation/jar-checks.gradle
b/gradle/validation/jar-checks.gradle
index 6f502ff407d..cd8dd9cf656 100644
--- a/gradle/validation/jar-checks.gradle
+++ b/gradle/validation/jar-checks.gradle
@@ -165,7 +165,10 @@ subprojects {
def errors = []
jarInfos.each { dep ->
def expectedChecksumFile = file("${licensesDir}/${dep.jarName}.sha1")
- if (!expectedChecksumFile.exists()) {
+ def forceLuceneVersion = project.properties['lucene.dev.version']
+ if (dep.module.id.group == 'org.apache.lucene' && forceLuceneVersion
!= null && forceLuceneVersion.endsWith('-SNAPSHOT')) {
+ logger.log(LogLevel.INFO, "Skipping jar checksum validation for
local SNAPSHOT dependency ('${dep.module}')")
+ } else if (!expectedChecksumFile.exists()) {
errors << "Dependency checksum missing ('${dep.module}'), expected
it at: ${expectedChecksumFile}"
} else {
dep.referencedFiles += expectedChecksumFile
diff --git a/gradle/validation/rat-sources.gradle
b/gradle/validation/rat-sources.gradle
index b96fcdb1b13..4e838807072 100644
--- a/gradle/validation/rat-sources.gradle
+++ b/gradle/validation/rat-sources.gradle
@@ -41,6 +41,9 @@ allprojects {
// Exclude any generated stuff.
exclude "src/generated"
+ // Don't recurse into local Lucene dev repo.
+ exclude "/lucene"
+
// Don't check any of the subprojects - they have their own rat
tasks.
exclude subprojects.collect { it.projectDir.name }
diff --git a/gradle/validation/validate-source-patterns.gradle
b/gradle/validation/validate-source-patterns.gradle
index 0d22b9c0706..d1756ff7d9c 100644
--- a/gradle/validation/validate-source-patterns.gradle
+++ b/gradle/validation/validate-source-patterns.gradle
@@ -78,6 +78,7 @@ allprojects {
}
// default excludes.
+ exclude '/lucene/**'
exclude '**/build/**'
exclude '**/.idea/**'
exclude '**/.gradle/**'
diff --git a/solr/solr-ref-guide/build.gradle b/solr/solr-ref-guide/build.gradle
index 5ef2ade7e60..f6fac9d98bf 100644
--- a/solr/solr-ref-guide/build.gradle
+++ b/solr/solr-ref-guide/build.gradle
@@ -127,7 +127,8 @@ task buildLocalAntoraYaml {
["dep_version_zookeeper", "org.apache.zookeeper", "zookeeper"],
["dep_version_lucene", "org.apache.lucene", "lucene-core"],
["dep_version_opentelemetry", "io.opentelemetry",
"opentelemetry-sdk"],
- ].collectEntries { propKey, depGroup, depId -> [propKey, "${->
project.getVersion(depGroup, depId)}"] })
+ ].collectEntries { propKey, depGroup, depId ->
+ [propKey, "${-> depGroup == 'org.apache.lucene' ?
luceneBaseVersionProvider.get() : project.getVersion(depGroup, depId)}"] })
copy {