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"
+ }
}
}
}