Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
ea34cf6
fix ci
May 15, 2023
cd0958d
Merge pull request #2 from liuneng1994/fix_ci
liuneng1994 May 15, 2023
753fe3f
Merge branch 'oap-project:main' into master
liuneng1994 Nov 14, 2023
ae1c21e
[MINOR] Add Gradle build support alongside Maven
liuneng1994 Feb 5, 2026
ef2c406
[MINOR] Fix Gradle build for test execution and formatting
liuneng1994 Feb 6, 2026
7ddb63f
[MINOR] Fix Gradle multi-version build support
liuneng1994 Feb 6, 2026
38185cb
[MINOR] Add Gradle native build tasks for Velox C++ pipeline
liuneng1994 Feb 6, 2026
a594575
[MINOR] Fix spotless formatting for Kotlin Gradle scripts
liuneng1994 Feb 6, 2026
0740f6f
[MINOR] Add test dependencies to optional modules for Gradle build
liuneng1994 Feb 6, 2026
e1020eb
[MINOR] Remove gradle/plugins/.gradle cache files from tracking
liuneng1994 Feb 6, 2026
0e06a87
[MINOR] Fix Gradle entries in .gitignore
liuneng1994 Feb 6, 2026
5afea45
[MINOR] Simplify Gradle build scripts and fix Spark 3.x compatibility
liuneng1994 Feb 6, 2026
cbb8d0c
Replace Maven with Gradle in Velox CI workflow
liuneng1994 Feb 9, 2026
48f614d
Replace Gradle spotless plugin with no-op, reuse Maven spotless-maven…
liuneng1994 Feb 9, 2026
5ce5bdc
Fix Spark 3.x Scala version auto-detection, jackson-bom resolution, a…
liuneng1994 Feb 9, 2026
0bbc345
Fix JDK 21 variant mismatch and javac encoding in mixed Scala/Java co…
liuneng1994 Feb 9, 2026
2ac4a56
Use Arrow 15.0.0-gluten for Spark 3.x and add mavenLocal() repo
liuneng1994 Feb 9, 2026
bc2cbbf
Add publishToMavenLocal support and fix ScalaTest/JDK 21 issues
liuneng1994 Feb 9, 2026
cf655dd
Add gluten-it integration test modules to Gradle build
liuneng1994 Feb 10, 2026
857e06b
Add checkstyle, logging exclusions, and Scala compiler tuning to conv…
liuneng1994 Feb 10, 2026
f7c26ee
Use version-aware FasterXML/ANTLR4 deps and add build info fields
liuneng1994 Feb 10, 2026
3418672
Add test JAR artifacts and backend-specific source dirs to UT modules
liuneng1994 Feb 10, 2026
ad7d582
Add gluten-kafka module support to Gradle build
liuneng1994 Feb 10, 2026
e7ad809
Align Gradle defaults with Maven: Spark 3.5, Scala 2.12, Java 8
liuneng1994 Feb 10, 2026
d624a5e
Replace Maven gluten-it builds with Gradle in CI and fix Scala 2.13 p…
liuneng1994 Feb 10, 2026
17ceca8
Suppress strict Scala -Wconf rules in gluten-it-common module
liuneng1994 Feb 10, 2026
fe1fa41
Fix checkstyle failures in gluten-celeborn and spark-ut profile parsing
liuneng1994 Feb 10, 2026
d48186b
Fix Paimon/Uniffle artifact names, add celeborn/uniffle source dirs t…
liuneng1994 Feb 10, 2026
5856a47
Fix unresolved java.nio reference in Gradle Kotlin DSL
liuneng1994 Feb 10, 2026
9163029
Fix symlink task: use upToDateWhen instead of outputs.file for direct…
liuneng1994 Feb 10, 2026
3df913f
Redirect test resources to Scala classes dir for Maven path compatibi…
liuneng1994 Feb 10, 2026
c347f86
Disable JVM assertions in tests and merge test resources into classes…
liuneng1994 Feb 10, 2026
318f8a9
Increase Gradle download retries to 5 with exponential backoff
liuneng1994 Feb 10, 2026
19e5fd0
Fix Gradle build: classpath ordering, stale build info, and symbol li…
liuneng1994 Feb 10, 2026
aef79f7
Fork a new JVM per test class to isolate Spark test suites
liuneng1994 Feb 10, 2026
696a2af
Replace Maven with Gradle in enhanced and ARM CI pipelines
liuneng1994 Feb 10, 2026
5d86056
Merge remote-tracking branch 'origin/master' into gradle-build-support
liuneng1994 Feb 10, 2026
d47649a
Merge remote-tracking branch 'upstream/main' into gradle-build-support
liuneng1994 Feb 10, 2026
5ebfd5a
Fix ARM native lib path: use aarch64 to match Maven and JNI loader
liuneng1994 Feb 10, 2026
500480b
Fix checkstyle ${config_loc} resolution for both Maven and Gradle
liuneng1994 Feb 10, 2026
2bd74dc
Simplify Gradle scripts: centralize common deps in convention plugin
liuneng1994 Feb 10, 2026
6b5d2ad
Implement Spotless code formatting in Gradle, matching Maven config
liuneng1994 Feb 11, 2026
fa93783
Fix google-java-format version: use 1.17.0 for all JDK 11+ builds
liuneng1994 Feb 11, 2026
5762239
Add 5-minute timeout to ProtobufExtract tasks to fail fast on stalls
liuneng1994 Feb 11, 2026
044a2d5
Add scalatest plugin to all modules with tests and fix extractInclude…
liuneng1994 Feb 11, 2026
cfc439d
Replace gradle-scalatest plugin with JUnit 5 Platform for proper fork…
liuneng1994 Feb 11, 2026
df86ca5
Fix ScalaTest tag filtering and make gluten-ut modules opt-in
liuneng1994 Feb 11, 2026
9c0cbfc
Move build/src symlink to convention plugin for all modules
liuneng1994 Feb 11, 2026
5930cf3
Handle GenerateExample tag in CI script as --tests filter
liuneng1994 Feb 11, 2026
8d1bfa5
Replace JUnit 5 with ScalaTest Runner per-suite forking for test isol…
liuneng1994 Feb 12, 2026
e10be41
Limit per-suite JVM forking to gluten-ut modules only
liuneng1994 Feb 12, 2026
64d1921
Add parallel suite execution support to ScalaTestPerSuiteAction
liuneng1994 Feb 12, 2026
9cacf96
Propagate task environment variables to per-suite JVM processes
liuneng1994 Feb 12, 2026
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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,5 @@ metastore_db/
# GitHub Copilot config (allow local customization)
.github/copilot-instructions.md
.github/copilot-setup-steps.yml
.gradle
gradle
98 changes: 98 additions & 0 deletions backends-clickhouse/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

plugins {
id("gluten.scala-library")
id("gluten.protobuf")
id("gluten.spotless")
}

val scalaBinaryVersion: String by project
val scalaVersion: String by project
val protobufVersion: String by project
val effectiveSparkFullVersion: String by rootProject.extra
val effectiveHadoopVersion: String by rootProject.extra

// C++ build directories for ClickHouse
val cppChBuildDir = file("../cpp-ch/build")
val cppChReleasesDir = file("$cppChBuildDir/releases")

dependencies {
// Project dependencies
implementation(project(":gluten-substrait"))

// Protobuf
implementation("com.google.protobuf:protobuf-java:$protobufVersion")

// Spark (provided)
compileOnly("org.apache.spark:spark-sql_$scalaBinaryVersion:$effectiveSparkFullVersion")
compileOnly("org.apache.spark:spark-core_$scalaBinaryVersion:$effectiveSparkFullVersion")
compileOnly("org.apache.spark:spark-catalyst_$scalaBinaryVersion:$effectiveSparkFullVersion")
compileOnly("org.apache.spark:spark-hive_$scalaBinaryVersion:$effectiveSparkFullVersion")

// Hadoop (provided)
compileOnly("org.apache.hadoop:hadoop-client:$effectiveHadoopVersion")

// Scala (provided)
compileOnly("org.scala-lang:scala-library:$scalaVersion")
implementation("org.scala-lang.modules:scala-collection-compat_$scalaBinaryVersion:2.11.0")

// Jackson (provided)
compileOnly("com.fasterxml.jackson.core:jackson-databind:2.18.2")
compileOnly("com.fasterxml.jackson.core:jackson-annotations:2.18.2")
compileOnly("com.fasterxml.jackson.core:jackson-core:2.18.2")
compileOnly("com.fasterxml.jackson.module:jackson-module-scala_$scalaBinaryVersion:2.18.2")

// Test dependencies
testImplementation("org.scalatest:scalatest_$scalaBinaryVersion:3.2.16")
testImplementation("org.scalacheck:scalacheck_$scalaBinaryVersion:1.17.0")
testImplementation("org.mockito:mockito-core:2.23.4")
testImplementation("junit:junit:4.13.1")
testImplementation("org.scalatestplus:scalatestplus-mockito_$scalaBinaryVersion:1.0.0-M2")
testImplementation("org.scalatestplus:scalatestplus-scalacheck_$scalaBinaryVersion:3.1.0.0-RC2")

// Spark test JARs
testImplementation("org.apache.spark:spark-core_$scalaBinaryVersion:$effectiveSparkFullVersion:tests")
testImplementation("org.apache.spark:spark-sql_$scalaBinaryVersion:$effectiveSparkFullVersion:tests")
testImplementation("org.apache.spark:spark-catalyst_$scalaBinaryVersion:$effectiveSparkFullVersion:tests")
testImplementation("org.apache.spark:spark-hive_$scalaBinaryVersion:$effectiveSparkFullVersion:tests")
}

// Configure protobuf compilation
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:$protobufVersion"
}
}

sourceSets {
main {
proto {
srcDir("src/main/resources/org/apache/gluten/proto")
}
}
}

// Include native libraries in the JAR
val platform = rootProject.extra.get("platform") as String
val arch = rootProject.extra.get("arch") as String

tasks.processResources {
from(cppChReleasesDir) {
into("$platform/$arch")
}
}
155 changes: 155 additions & 0 deletions backends-velox/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

plugins {
id("gluten.scala-library")
id("gluten.protobuf")
id("gluten.spotless")
id("gluten.scalatest")
}

val scalaBinaryVersion: String by project
val scalaVersion: String by project
val protobufVersion: String by project
val effectiveSparkFullVersion: String by rootProject.extra
val effectiveHadoopVersion: String by rootProject.extra
val effectiveArrowVersion: String by rootProject.extra

// C++ build directories
val cppBuildDir = file("../cpp/build")
val cppReleasesDir = file("$cppBuildDir/releases")

dependencies {
// Project dependencies
implementation(project(":gluten-substrait"))
implementation(project(":gluten-arrow"))

// Test JARs from other modules
testImplementation(project(":gluten-substrait", "testArtifacts"))
testImplementation(project(":gluten-ras-common", "testArtifacts"))

// Protobuf
implementation("com.google.protobuf:protobuf-java:$protobufVersion")

// Spark (provided)
compileOnly("org.apache.spark:spark-sql_$scalaBinaryVersion:$effectiveSparkFullVersion")
compileOnly("org.apache.spark:spark-core_$scalaBinaryVersion:$effectiveSparkFullVersion")
compileOnly("org.apache.spark:spark-catalyst_$scalaBinaryVersion:$effectiveSparkFullVersion")
compileOnly("org.apache.spark:spark-network-common_$scalaBinaryVersion:$effectiveSparkFullVersion")
compileOnly("org.apache.spark:spark-hive_$scalaBinaryVersion:$effectiveSparkFullVersion")

// Hadoop (provided)
compileOnly("org.apache.hadoop:hadoop-client:$effectiveHadoopVersion")

// Scala (provided)
compileOnly("org.scala-lang:scala-library:$scalaVersion")
implementation("org.scala-lang.modules:scala-collection-compat_$scalaBinaryVersion:2.11.0")

// Jackson (provided)
compileOnly("com.fasterxml.jackson.core:jackson-databind:2.18.2")
compileOnly("com.fasterxml.jackson.core:jackson-annotations:2.18.2")
compileOnly("com.fasterxml.jackson.core:jackson-core:2.18.2")
compileOnly("com.fasterxml.jackson.module:jackson-module-scala_$scalaBinaryVersion:2.18.2")

// Commons IO (provided)
compileOnly("commons-io:commons-io:2.14.0")

// Jimfs for file system testing
implementation("com.google.jimfs:jimfs:1.3.0")

// Test dependencies
testImplementation("org.scalatest:scalatest_$scalaBinaryVersion:3.2.16")
testImplementation("org.scalacheck:scalacheck_$scalaBinaryVersion:1.17.0")
testImplementation("org.mockito:mockito-core:2.23.4") {
exclude(group = "net.bytebuddy", module = "byte-buddy")
}
testImplementation("net.bytebuddy:byte-buddy:1.9.3")
testImplementation("junit:junit:4.13.1")
testImplementation("org.scalatestplus:scalatestplus-mockito_$scalaBinaryVersion:1.0.0-M2")
testImplementation("org.scalatestplus:scalatestplus-scalacheck_$scalaBinaryVersion:3.1.0.0-RC2")
testImplementation("com.github.javafaker:javafaker:1.0.2")
testImplementation("com.vladsch.flexmark:flexmark-all:0.62.2")

// Spark test JARs
testImplementation("org.apache.spark:spark-core_$scalaBinaryVersion:$effectiveSparkFullVersion:tests")
testImplementation("org.apache.spark:spark-sql_$scalaBinaryVersion:$effectiveSparkFullVersion:tests")
testImplementation("org.apache.spark:spark-catalyst_$scalaBinaryVersion:$effectiveSparkFullVersion:tests")
testImplementation("org.apache.spark:spark-hive_$scalaBinaryVersion:$effectiveSparkFullVersion:tests")
testImplementation("org.apache.spark:spark-tags_$scalaBinaryVersion:$effectiveSparkFullVersion:tests")

// Spark common-utils needed for SparkBuildInfo (contains version info)
testImplementation("org.apache.spark:spark-common-utils_$scalaBinaryVersion:$effectiveSparkFullVersion")

// ScalaTest JUnit runner
testRuntimeOnly("org.scalatestplus:junit-4-13_$scalaBinaryVersion:3.2.16.0")

// JUnit 5 platform
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.3")
testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.9.3")
}

// Configure protobuf compilation
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:$protobufVersion"
}
}

sourceSets {
main {
proto {
srcDir("src/main/resources/org/apache/gluten/proto")
}
}
}

// Task to build native libraries
val buildNative by tasks.registering(Exec::class) {
group = "build"
description = "Build native C++ libraries using CMake"

workingDir = file("../cpp")

doFirst {
file("../cpp/build").mkdirs()
}

commandLine(
"cmake",
"--build",
"build",
"--parallel",
Runtime.getRuntime().availableProcessors().toString(),
)

outputs.dir(cppReleasesDir)
}

// Include native libraries in the JAR
val platform = rootProject.extra.get("platform") as String
val arch = rootProject.extra.get("arch") as String

tasks.processResources {
from(cppReleasesDir) {
into("$platform/$arch")
}
}

// Configure ScalaTest
tasks.withType<Test>().configureEach {
systemProperty("velox.udf.lib.path", "$cppBuildDir/velox/udf/examples/libmyudf.so,$cppBuildDir/velox/udf/examples/libmyudaf.so")
}
Loading
Loading