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 {

Reply via email to