Skip to content

Commit 8b5f085

Browse files
committed
fixup! fixup! tiny fixes for kotlin 2.2 in gradle plugin
1 parent b80bde3 commit 8b5f085

File tree

5 files changed

+45
-10
lines changed

5 files changed

+45
-10
lines changed

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ allprojects {
208208
configure<BuildConfigExtension> {
209209
packageName = "org.jetbrains.kotlinx.dataframe"
210210
className = "BuildConfig"
211+
buildConfigField("KOTLIN_VERSION", libs.versions.kotlin.asProvider().get())
211212
buildConfigField("VERSION", "${project.version}")
212213
buildConfigField("DEBUG", findProperty("kotlin.dataframe.debug")?.toString()?.toBoolean() ?: false)
213214
}

plugins/dataframe-gradle-plugin/build.gradle.kts

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
plugins {
22
`kotlin-dsl`
3-
`java-gradle-plugin`
43
`maven-publish`
5-
alias(libs.plugins.plugin.publish)
6-
alias(libs.plugins.ktlint)
4+
with(libs.plugins) {
5+
alias(buildconfig)
6+
alias(plugin.publish)
7+
alias(ktlint)
8+
}
79
}
810

911
repositories {
@@ -14,26 +16,34 @@ repositories {
1416

1517
group = "org.jetbrains.kotlinx.dataframe"
1618

19+
buildscript {
20+
dependencies {
21+
classpath(embeddedKotlin("gradle-plugin"))
22+
}
23+
}
24+
1725
dependencies {
1826
api(libs.kotlin.reflect)
1927
implementation(projects.dataframe)
2028
// experimental
2129
implementation(projects.dataframeOpenapiGenerator)
2230

31+
compileOnly(embeddedKotlin("gradle-plugin"))
2332
implementation(libs.kotlin.gradle.plugin.api)
24-
compileOnly(libs.kotlin.gradle.plugin)
2533
implementation(libs.serialization.core)
2634
implementation(libs.serialization.json)
2735
implementation(libs.ksp.gradle)
2836
implementation(libs.ksp.api)
2937

30-
testImplementation(libs.junit)
38+
testImplementation(gradleTestKit())
39+
testImplementation(embeddedKotlin("test"))
40+
testImplementation(embeddedKotlin("test-junit"))
3141
testImplementation(libs.kotestAssertions)
3242
testImplementation(libs.android.gradle.api)
3343
testImplementation(libs.android.gradle)
44+
testImplementation(embeddedKotlin("gradle-plugin"))
3445
testImplementation(libs.ktor.server.netty)
3546
testImplementation(libs.h2db)
36-
testImplementation(gradleApi())
3747
}
3848

3949
tasks.withType<ProcessResources> {
@@ -100,6 +110,10 @@ val integrationTestConfiguration by configurations.creating {
100110
extendsFrom(configurations.testImplementation.get())
101111
}
102112

113+
tasks.pluginUnderTestMetadata {
114+
pluginClasspath.from(integrationTestConfiguration)
115+
}
116+
103117
val integrationTestTask = tasks.register<Test>("integrationTest") {
104118
dependsOn(":plugins:symbol-processor:publishToMavenLocal")
105119
dependsOn(":dataframe-arrow:publishToMavenLocal")
@@ -126,3 +140,11 @@ val integrationTestTask = tasks.register<Test>("integrationTest") {
126140
}
127141

128142
tasks.check { dependsOn(integrationTestTask) }
143+
144+
// fixing linter + buildConfig
145+
kotlin.sourceSets.create("buildConfigSources") {
146+
kotlin.srcDir("build/generated/sources/buildConfig/main")
147+
}
148+
tasks.named("runKtlintCheckOverBuildConfigSourcesSourceSet") {
149+
dependsOn(tasks.generateBuildConfig, "runKtlintFormatOverBuildConfigSourcesSourceSet")
150+
}

plugins/dataframe-gradle-plugin/src/main/kotlin/org/jetbrains/dataframe/gradle/SchemaGeneratorPlugin.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.jetbrains.dataframe.gradle
22

3+
import com.google.devtools.ksp.gradle.KspAATask
4+
import com.google.devtools.ksp.gradle.KspTask
35
import com.google.devtools.ksp.gradle.KspTaskJvm
46
import org.gradle.api.Plugin
57
import org.gradle.api.Project
@@ -13,7 +15,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
1315
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
1416
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
1517
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
16-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
18+
import org.jetbrains.kotlin.gradle.tasks.BaseKotlinCompile
1719
import java.io.File
1820
import java.net.URL
1921
import java.nio.file.Path
@@ -42,10 +44,16 @@ class SchemaGeneratorPlugin : Plugin<Project> {
4244
group = GROUP
4345
dependsOn(*generationTasks.toTypedArray())
4446
}
45-
tasks.withType(KspTaskJvm::class.java).configureEach {
47+
tasks.withType(KspTask::class.java).configureEach {
4648
dependsOn(generateAll)
49+
dependsOn(*generationTasks.toTypedArray())
50+
}
51+
tasks.withType(KspAATask::class.java).configureEach {
52+
error(
53+
"Detected KSP2. This is not supported by the DataFrame Gradle/Ksp plugin. Add 'ksp.useKSP2=false' to 'gradle.properties'.",
54+
)
4755
}
48-
tasks.withType<KotlinCompile> {
56+
tasks.withType(BaseKotlinCompile::class.java).configureEach {
4957
dependsOn(generateAll)
5058
}
5159
}

plugins/dataframe-gradle-plugin/src/test/kotlin/org/jetbrains/dataframe/gradle/GradleRunnerDsl.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ fun runGradleBuild(
1616
buildFile.writeText(build(buildDir))
1717
val settingsFile = File(buildDir, "settings.gradle.kts")
1818
settingsFile.writeText(settingsGradle(buildDir))
19+
val propertiesFile = File(buildDir, "gradle.properties")
20+
propertiesFile.writeText("ksp.useKSP2=false")
1921
return Build(buildDir, gradleRunner(buildDir, task).build())
2022
}
2123

plugins/dataframe-gradle-plugin/src/test/kotlin/org/jetbrains/dataframe/gradle/TestData.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.jetbrains.dataframe.gradle
22

3+
import org.jetbrains.kotlinx.dataframe.BuildConfig
4+
35
object TestData {
46

57
val csvSample =
@@ -15,5 +17,5 @@ object TestData {
1517

1618
val jsonName = "test.json"
1719

18-
val kotlinVersion = "1.6.0"
20+
val kotlinVersion = BuildConfig.KOTLIN_VERSION
1921
}

0 commit comments

Comments
 (0)