This is an automated email from the ASF dual-hosted git repository.

malliaridis pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new 2fea839c710 Allow disabling new UI module during builds (#3261)
2fea839c710 is described below

commit 2fea839c7106416b1c5a556b60e20acf91267f5f
Author: Christos Malliaridis <[email protected]>
AuthorDate: Tue May 20 17:31:30 2025 +0300

    Allow disabling new UI module during builds (#3261)
    
    Add disableUiModule gradle property
    
    ---------
    
    Co-authored-by: Nayana-ibm <[email protected]>
---
 build.gradle                      |  3 +++
 gradle/template.gradle.properties |  5 +++++
 settings.gradle                   |  7 ++++++-
 solr/webapp/build.gradle          | 44 +++++++++++++++++++++------------------
 4 files changed, 38 insertions(+), 21 deletions(-)

diff --git a/build.gradle b/build.gradle
index 24c20452362..b412319965f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -117,6 +117,9 @@ ext {
 
   // For testing code
   vectorIncubatorJavaVersions = [ JavaVersion.VERSION_21, 
JavaVersion.VERSION_22, JavaVersion.VERSION_23, JavaVersion.VERSION_24, 
JavaVersion.VERSION_25 ] as Set
+
+  // Use gradle flag in root project for further referencing
+  withUiModule = gradle.ext.withUiModule
 }
 
 // Include smaller chunks configuring dedicated build areas.
diff --git a/gradle/template.gradle.properties 
b/gradle/template.gradle.properties
index 0a9de93a508..bed39bb1743 100644
--- a/gradle/template.gradle.properties
+++ b/gradle/template.gradle.properties
@@ -119,3 +119,8 @@ kotlin.code.style=official
 # This property should be set to true during releases.
 # Value defaults to false if not set to reduce the impact in CI/CD and new 
checkouts.
 production=false
+
+# Option to disable experimental UI module. Some operating systems or 
environments
+# may not support compilation of the UI module, so they can turn it off via 
this
+# parameter.
+disableUiModule=false
diff --git a/settings.gradle b/settings.gradle
index 14b916902c6..4a16234cc52 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -57,7 +57,6 @@ include "solr:modules:s3-repository"
 include "solr:modules:scripting"
 include "solr:modules:sql"
 include "solr:webapp"
-include "solr:ui"
 include "solr:benchmark"
 include "solr:test-framework"
 include "solr:solr-ref-guide"
@@ -68,5 +67,11 @@ include "solr:distribution"
 include "solr:docker"
 include "solr:prometheus-exporter"
 
+def disableUiModuleValue = providers.gradleProperty('disableUiModule').orNull
+gradle.ext.withUiModule = disableUiModuleValue == null || disableUiModuleValue 
!= 'true'
+if (gradle.ext.withUiModule) {
+    include(":solr:ui")
+}
+
 // Configures development for joint Lucene/ Solr composite build.
 apply from: file('gradle/lucene-dev/lucene-dev-repo-composite.gradle')
diff --git a/solr/webapp/build.gradle b/solr/webapp/build.gradle
index bd701b990b8..3ea3607d021 100644
--- a/solr/webapp/build.gradle
+++ b/solr/webapp/build.gradle
@@ -94,22 +94,24 @@ task downloadBrowserify(type: NpmTask) {
   outputs.dir("${nodeProjectDir}/node_modules/browserify")
 }
 
-tasks.register("generateUiDevFiles") {
-  description = "Generate new UI for development and add files to outputs for 
later referencing."
-  group = "build"
-
-  // Development files are larger in size but have shorter compile times.
-  dependsOn 
project(":solr:ui").tasks.wasmJsBrowserDevelopmentExecutableDistribution
-  
outputs.dir(project(":solr:ui").file("build/dist/wasmJs/developmentExecutable/"))
+if (gradle.ext.withUiModule) {
+  tasks.register("generateUiDevFiles") {
+    description = "Generate new UI for development and add files to outputs 
for later referencing."
+    group = "build"
+    dependsOn 
project(":solr:ui").tasks.wasmJsBrowserDevelopmentExecutableDistribution
+    
outputs.dir(project(":solr:ui").file("build/dist/wasmJs/developmentExecutable/"))
+  }
 }
 
-tasks.register("generateUiProdFiles") {
-  description = "Generate new UI for production and add files to outputs for 
later referencing"
-  group = "build"
+if (gradle.ext.withUiModule) {
+  tasks.register("generateUiProdFiles") {
+    description = "Generate new UI for production and add files to outputs for 
later referencing"
+    group = "build"
 
-  // Production files are smaller in size but have longer compile times.
-  dependsOn project(":solr:ui").tasks.wasmJsBrowserDistribution
-  
outputs.dir(project(":solr:ui").file("build/dist/wasmJs/productionExecutable/"))
+    // Production files are smaller in size but have longer compile times.
+    dependsOn project(":solr:ui").tasks.wasmJsBrowserDistribution
+    
outputs.dir(project(":solr:ui").file("build/dist/wasmJs/productionExecutable/"))
+  }
 }
 
 task generateJsClientBundle(type: NpxTask) {
@@ -151,13 +153,15 @@ war {
 
   // Include new Admin UI files in webapp
   // By default, we always build dev that does not optimize generated files 
for release to reduce build times.
-  if (rootProject.ext.development) {
-    from (tasks.generateUiDevFiles) {
-      into "ui"
-    }
-  } else {
-    from (tasks.generateUiProdFiles) {
-      into "ui"
+  if (gradle.ext.withUiModule) {
+    if (rootProject.ext.development) {
+      from (tasks.generateUiDevFiles) {
+        into "ui"
+      }
+    } else {
+      from (tasks.generateUiProdFiles) {
+        into "ui"
+      }
     }
   }
 }

Reply via email to