Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ admin-ui:
- any-glob-to-any-file:
- solr/webapp/**
- solr/ui/**
- ui/**

# Add labels for changes to solr modules
module:analysis-extras:
Expand Down
6 changes: 3 additions & 3 deletions .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
"enabledManagers": ["gradle", "github-actions"],
"labels": ["exempt-stale"],
"milestone": 1,
"includePaths": ["gradle/libs.versions.toml", "versions.*", "build.gradle", ".github/workflows/*"],
"includePaths": ["gradle/libs.versions.toml", "ui/gradle/libs.versions.toml", "versions.*", "build.gradle", ".github/workflows/*"],
"postUpgradeTasks": {
"commands": [
"./gradlew resolveAndLockAll --write-locks",
"./gradlew kotlinUpgradeYarnLock",
"./gradlew updateLicenses"
"./gradlew updateLicenses",
"./gradlew -p ui kotlinUpgradeYarnLock"
],
"fileFilters": ["solr/licenses/*.sha1", "**/gradle.lockfile", "settings-gradle.lockfile"],
"executionMode": "branch"
Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/new-ui-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Solr UI Tests

on:
pull_request:
branches:
- '*'
paths:
- '.github/workflows/new-ui-check.yml'
# the new UI
- 'ui/**'
# the v2 API contract the UI is built against
# - 'solr/api/**'
# the v2 API implementations backing the UI screens
- 'solr/core/src/java/org/apache/solr/handler/admin/api/**'

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
test:
name: Run New UI tests

# ubuntu-latest has Chrome preinstalled
runs-on: ubuntu-latest
timeout-minutes: 40

steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- uses: ./.github/actions/prepare-for-build

- name: Run the New UI checks
run: ./gradlew -p ui check

- name: Archive test output
if: ${{ failure() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: test-output
path: |
ui/shared/build/test-results/**
6 changes: 0 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ plugins {
alias(libs.plugins.owasp.dependencycheck)
alias(libs.plugins.barfuin.jacocolog) apply false
alias(libs.plugins.benmanes.versions)
alias(libs.plugins.kotlin.multiplatform) apply false
alias(libs.plugins.littlerobots.versioncatalogupdate) apply false
alias(libs.plugins.thetaphi.forbiddenapis) apply false
alias(libs.plugins.ltgt.errorprone) apply false
Expand All @@ -39,10 +38,6 @@ plugins {
rootProject.ext.minJavaVersionDefault = JavaVersion.toVersion(libs.versions.java.min.get())
rootProject.ext.minJavaVersionSolrJ = JavaVersion.toVersion(libs.versions.java.solrj.get())

// Check development mode for entire project (defaults to true if 'production' not provided and set to true)
rootProject.ext.development =
!project.hasProperty('production') || project.findProperty('production') != 'true'

apply from: file('gradle/globals.gradle')

// General metadata.
Expand Down Expand Up @@ -132,7 +127,6 @@ ext {
] as Set

// Use gradle flag in root project for further referencing
withUiModule = gradle.ext.withUiModule
withJsClient = gradle.ext.withJsClient
}

Expand Down
8 changes: 8 additions & 0 deletions changelog/unreleased/extract-ui-module.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
title: Make the new UI module standalone and load artifacts during development to speed up builds
type: other
authors:
- name: Christos Malliaridis
nick: malliaridis
links:
- name: GITHUB#4650
url: https://github.com/apache/solr/pull/4650
69 changes: 1 addition & 68 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@
[versions]
adobe-testing-s3mock = "5.2.0"
amazon-awssdk = "2.54.6"
androidx-adaptive = "1.3.0-rc01"
androidx-lifecycle = "2.11.0"
androidx-navigation3 = "1.1.1"
# @keep Antora version used in ref-guide
antora = "3.1.12"
# @keep Most recent commit as of 2025-08-03, this repo does not have tags
Expand Down Expand Up @@ -77,10 +74,8 @@ codehaus-woodstox = "4.3.0"
commons-cli = "1.11.0"
commons-codec = "1.22.1"
commons-io = "2.22.0"
compose = "1.12.0"
cuvs-java = "26.08.1"
cuvs-lucene = "25.12.0"
decompose = "3.5.0"
diffplug-spotless = "8.10.0"
# @keep Use for dockerfile JRE version
dockerfile-baseimage-java = "25"
Expand All @@ -89,7 +84,6 @@ eclipse-ecj = "3.46.0"
eclipse-jetty = "12.1.12"
# @keep jgit version used by git-status.gradle
eclipse-jgit = "7.7.1.202607240634-r"
essenty = "2.6.0"
fasterxml = "2.22.2"
fasterxml-woodstox = "7.2.2"
# @keep Flexmark used in classpath
Expand Down Expand Up @@ -142,34 +136,22 @@ jna = "5.19.1"
# @keep for version alignment
joda-time = "2.14.3"
junit = "4.13.2"
kotlin = "2.4.20"
# @keep for version alignment
kotlinx-atomicfu = "0.33.0"
# @keep for version alignment
kotlinx-browser = "0.5.0"
kotlinx-coroutines = "1.11.0"
kotlinx-datetime = "0.8.0-0.6.x-compat"
kotlinx-serialization = "1.11.0"
# @keep used by spotless
ktlint = "1.8.0"
ktor = "3.5.2"
kotlin = "2.4.20"
langchain4j-bom = "1.19.0"
# @keep Link checker version used in ref-guide
link-checker = "1.4.2"
littlerobots-versioncatalogupdate = "1.1.1"
lmax-disruptor = "4.0.0"
logchange = "1.19.16"
ltgt-errorprone = "5.1.1"
material3 = "1.10.0-alpha05"
mockito = "5.23.0"
morethan-jmhreport = "0.9.6"
mvikotlin = "4.4.0"
navsecurity = "6.0.2"
netty = "4.2.17.Final"
# @keep for version alignment
netty-tcnative = "2.0.82.Final"
nimbusds-josejwt = "10.9.1"
nlopez-compose = "0.6.4"
nodegradle-node = "7.1.0"
# @keep Node JS version used in node.gradle (LTS)
nodejs = "22.18.0"
Expand All @@ -193,7 +175,6 @@ slf4j = "2.0.18"
spatial4j = "0.8"
spotbugs = "4.10.4"
squareup-okhttp3-okhttp = "5.5.0"
squareup-okio = "3.18.1"
stephenc-jcip = "1.0-1"
swagger3 = "2.2.54"
tdunning-tdigest = "3.3"
Expand All @@ -207,11 +188,7 @@ xerial-snappy = "1.1.10.8"
[plugins]
barfuin-jacocolog = { id = "org.barfuin.gradle.jacocolog", version.ref = "barfuin-jacocolog" }
benmanes-versions = { id = "io.github.ben-manes.versions", version.ref = "benmanes-versions" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
diffplug-spotless = { id = "com.diffplug.spotless", version.ref = "diffplug-spotless" }
jetbrains-compose = { id = "org.jetbrains.compose", version.ref = "compose" }
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
littlerobots-versioncatalogupdate = { id = "nl.littlerobots.version-catalog-update", version.ref = "littlerobots-versioncatalogupdate" }
logchange = { id = "dev.logchange", version.ref = "logchange" }
ltgt-errorprone = { id = "net.ltgt.errorprone", version.ref = "ltgt-errorprone" }
Expand All @@ -235,12 +212,6 @@ amazon-awssdk-retries-spi = { module = "software.amazon.awssdk:retries-spi", ver
amazon-awssdk-s3 = { module = "software.amazon.awssdk:s3", version.ref = "amazon-awssdk" }
amazon-awssdk-sdkcore = { module = "software.amazon.awssdk:sdk-core", version.ref = "amazon-awssdk" }
amazon-awssdk-sts = { module = "software.amazon.awssdk:sts", version.ref = "amazon-awssdk" }
androidx-lifecycle-runtimeCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
androidx-lifecycle-viewModelNav3 = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-navigation3", version.ref = "androidx-lifecycle" }
androidx-lifecycle-viewmodelCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
androidx-material3-adaptive = { module = "org.jetbrains.compose.material3.adaptive:adaptive", version.ref = "androidx-adaptive" }
androidx-material3-adaptive-nav3 = { module = "org.jetbrains.compose.material3.adaptive:adaptive-navigation3", version.ref = "androidx-adaptive" }
androidx-navigation3-ui = { module = "org.jetbrains.androidx.navigation3:navigation3-ui", version.ref = "androidx-navigation3" }
apache-calcite-avatica-core = { module = "org.apache.calcite.avatica:avatica-core", version.ref = "apache-calcite-avatica" }
apache-calcite-core = { module = "org.apache.calcite:calcite-core", version.ref = "apache-calcite" }
apache-calcite-linq4j = { module = "org.apache.calcite:calcite-linq4j", version.ref = "apache-calcite" }
Expand Down Expand Up @@ -314,17 +285,8 @@ codehaus-woodstox-stax2api = { module = "org.codehaus.woodstox:stax2-api", versi
commonscli-commonscli = { module = "commons-cli:commons-cli", version.ref = "commons-cli" }
commonscodec-commonscodec = { module = "commons-codec:commons-codec", version.ref = "commons-codec" }
commonsio-commonsio = { module = "commons-io:commons-io", version.ref = "commons-io" }
compose-components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "compose" }
compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "compose" }
compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "material3" }
compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "compose" }
compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "compose" }
compose-uiTest = { module = "org.jetbrains.compose.ui:ui-test", version.ref = "compose" }
compose-uiToolingPreview = { module = "org.jetbrains.compose.ui:ui-tooling-preview", version.ref = "compose" }
cuvs-java = { module = "com.nvidia.cuvs:cuvs-java", version.ref = "cuvs-java" }
cuvs-lucene = { module = "com.nvidia.cuvs.lucene:cuvs-lucene", version.ref = "cuvs-lucene" }
decompose-decompose = { module = "com.arkivanov.decompose:decompose", version.ref = "decompose" }
decompose-extensions-compose = { module = "com.arkivanov.decompose:extensions-compose", version.ref = "decompose" }
dropwizard-metrics-core = { module = "io.dropwizard.metrics:metrics-core", version.ref = "dropwizard-metrics" }
eclipse-jdt-ecj = { module = "org.eclipse.jdt:ecj", version.ref = "eclipse-ecj" }
eclipse-jetty-alpnjavaclient = { module = "org.eclipse.jetty:jetty-alpn-java-client", version.ref = "eclipse-jetty" }
Expand All @@ -351,7 +313,6 @@ eclipse-jetty-start = { module = "org.eclipse.jetty:jetty-start", version.ref =
eclipse-jetty-util = { module = "org.eclipse.jetty:jetty-util", version.ref = "eclipse-jetty" }
eclipse-jetty-xml = { module = "org.eclipse.jetty:jetty-xml", version.ref = "eclipse-jetty" }
eclipse-jgit-jgit = { module = "org.eclipse.jgit:org.eclipse.jgit", version.ref = "eclipse-jgit" }
essenty-lifecycle = { module = "com.arkivanov.essenty:lifecycle", version.ref = "essenty" }
fasterxml-jackson-bom = { module = "com.fasterxml.jackson:jackson-bom", version.ref = "fasterxml" }
fasterxml-jackson-core-annotations = { module = "com.fasterxml.jackson.core:jackson-annotations" }
fasterxml-jackson-core-core = { module = "com.fasterxml.jackson.core:jackson-core" }
Expand Down Expand Up @@ -432,27 +393,6 @@ jodatime-jodatime = { module = "joda-time:joda-time", version.ref = "joda-time"
junit-junit = { module = "junit:junit", version.ref = "junit" }
# @keep transitive dependency for version alignment
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" }
# @keep transitive dependency for version alignment
kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version.ref = "kotlinx-atomicfu" }
# @keep transitive dependency for version alignment
kotlinx-browser = { module = "org.jetbrains.kotlinx:kotlinx-browser", version.ref = "kotlinx-browser" }
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" }
kotlinx-coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" }
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" }
kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinx-serialization" }
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
ktor-bom = { module = "io.ktor:ktor-bom", version.ref = "ktor" }
ktor-client-auth = { module = "io.ktor:ktor-client-auth" }
ktor-client-cio = { module = "io.ktor:ktor-client-cio" }
ktor-client-contentNegotiation = { module = "io.ktor:ktor-client-content-negotiation" }
ktor-client-core = { module = "io.ktor:ktor-client-core" }
ktor-client-js = { module = "io.ktor:ktor-client-js" }
ktor-client-mock = { module = "io.ktor:ktor-client-mock" }
ktor-client-serialization-json = { module = "io.ktor:ktor-serialization-kotlinx-json" }
ktor-server-cio = { module = "io.ktor:ktor-server-cio" }
ktor-server-core = { module = "io.ktor:ktor-server-core" }
ktor-server-htmlBuilder = { module = "io.ktor:ktor-server-html-builder" }
langchain4j-anthropic = { module = "dev.langchain4j:langchain4j-anthropic" }
langchain4j-bom = { module = "dev.langchain4j:langchain4j-bom", version.ref = "langchain4j-bom" }
langchain4j-cohere = { module = "dev.langchain4j:langchain4j-cohere" }
Expand All @@ -466,10 +406,6 @@ lmax-disruptor = { module = "com.lmax:disruptor", version.ref = "lmax-disruptor"
locationtech-spatial4j = { module = "org.locationtech.spatial4j:spatial4j", version.ref = "spatial4j" }
mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" }
mockito-subclass = { module = "org.mockito:mockito-subclass", version.ref = "mockito" }
mvikotlin-extensions-coroutines = { module = "com.arkivanov.mvikotlin:mvikotlin-extensions-coroutines", version.ref = "mvikotlin" }
mvikotlin-logging = { module = "com.arkivanov.mvikotlin:mvikotlin-logging", version.ref = "mvikotlin" }
mvikotlin-main = { module = "com.arkivanov.mvikotlin:mvikotlin-main", version.ref = "mvikotlin" }
mvikotlin-mvikotlin = { module = "com.arkivanov.mvikotlin:mvikotlin", version.ref = "mvikotlin" }
navsecurity-mockoauth2server = { module = "no.nav.security:mock-oauth2-server", version.ref = "navsecurity" }
netty-bom = { module = "io.netty:netty-bom", version.ref = "netty" }
netty-codechttp = { module = "io.netty:netty-codec-http", version.ref = "netty" }
Expand All @@ -483,7 +419,6 @@ netty-transport-classes-epoll = { module = "io.netty:netty-transport-classes-epo
# @keep transitive dependency for version alignment
netty-transport-native-epoll = { module = "io.netty:netty-transport-native-epoll", version.ref = "netty" }
nimbusds-josejwt = { module = "com.nimbusds:nimbus-jose-jwt", version.ref = "nimbusds-josejwt" }
nlopez-compose-ktlintrules = { module = "io.nlopez.compose.rules:ktlint", version.ref = "nlopez-compose" }
onnxruntime = { module = "com.microsoft.onnxruntime:onnxruntime", version.ref = "onnx" }
openjdk-jmh-core = { module = "org.openjdk.jmh:jmh-core", version.ref = "openjdk-jmh" }
openjdk-jmh-generatorannprocess = { module = "org.openjdk.jmh:jmh-generator-annprocess", version.ref = "openjdk-jmh" }
Expand All @@ -500,7 +435,6 @@ opentelemetry-sdk-extension-autoconfigure-spi = { module = "io.opentelemetry:ope
opentelemetry-sdk-metrics = { module = "io.opentelemetry:opentelemetry-sdk-metrics", version.ref = "opentelemetry" }
opentelemetry-sdk-testing = { module = "io.opentelemetry:opentelemetry-sdk-testing", version.ref = "opentelemetry" }
opentelemetry-sdk-trace = { module = "io.opentelemetry:opentelemetry-sdk-trace", version.ref = "opentelemetry" }
oshai-logging = { module = "io.github.oshai:kotlin-logging", version.ref = "oshai-logging" }
# @keep transitive dependency for version alignment
ow2-asm-asm = { module = "org.ow2.asm:asm", version.ref = "ow2-asm" }
# @keep transitive dependency for version alignment
Expand All @@ -522,7 +456,6 @@ spotbugs-annotations = { module = "com.github.spotbugs:spotbugs-annotations", ve
squareup-okhttp3-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "squareup-okhttp3-okhttp" }
squareup-okhttp3-okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "squareup-okhttp3-okhttp" }
squareup-okhttp3-okhttp-jvm = { module = "com.squareup.okhttp3:okhttp-jvm", version.ref = "squareup-okhttp3-okhttp" }
squareup-okio = { module = "com.squareup.okio:okio", version.ref = "squareup-okio" }
stephenc-jcip-annotations = { module = "com.github.stephenc.jcip:jcip-annotations", version.ref = "stephenc-jcip" }
swagger3-annotations-jakarta = { module = "io.swagger.core.v3:swagger-annotations-jakarta", version.ref = "swagger3" }
swagger3-jaxrs2-jakarta = { module = "io.swagger.core.v3:swagger-jaxrs2-jakarta", version.ref = "swagger3" }
Expand Down
Loading
Loading