Skip to content
Draft
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
38 changes: 14 additions & 24 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
import java.time.LocalDate
import kafkatorio.extensions.excludeGeneratedGradleDsl
import kafkatorio.extensions.excludeProjectConfigurationDirs
import kafkatorio.extensions.initIdeProjectLogo

plugins {
idea
base
id("kafkatorio.conventions.base")
// `project-report`
// `build-dashboard`
}

group = "dev.adamko.kafkatorio"
Expand All @@ -24,23 +21,16 @@ val projectTokens: MapProperty<String, String> by extra {
}
}

idea {
module {
isDownloadSources = true
isDownloadJavadoc = true
excludeGeneratedGradleDsl(layout)
excludeDirs = excludeDirs + layout.files(
".idea",
"gradle/kotlin-js-store",
"gradle/wrapper",
)
}
}

tasks.wrapper {
gradleVersion = "7.6"
distributionType = Wrapper.DistributionType.BIN
}
excludeProjectConfigurationDirs(
idea,
dirsToExclude = setOf(
"gradle/kotlin-js-store",
"gradle/wrapper",
".idea",
".gradle",
"build",
)
)

val runKafkatorio by tasks.registering {
group = rootProject.name
Expand All @@ -52,6 +42,6 @@ val runKafkatorio by tasks.registering {
)
}

apply(from = "$projectDir/kt52647.gradle.kts")

initIdeProjectLogo()
tasks.prepareKotlinBuildScriptModel {
initIdeProjectLogo("docs/media/img/kafkatorio-logo.svg")
}
74 changes: 8 additions & 66 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,20 +1,8 @@
import kafkatorio.conventions.overrideKotlinLanguageVersion
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
id("kafkatorio.conventions.kotlin-dsl")
id("kafkatorio.conventions.kotlin-serialization")
// idea
// `kotlin-dsl`
// kotlin("jvm") //version "1.7.20" // embeddedKotlinVersion
// kotlin("plugin.serialization") // version embeddedKotlinVersion
// kotlin("plugin.serialization") version "1.7.20"
}

//val gradleJvmTarget = "11"
//val gradleKotlinTarget = "1.6"


dependencies {
implementation(platform(libs.kotlin.bom))
implementation("org.jetbrains.kotlin:kotlin-serialization:${libs.versions.kotlin.get()}")
Expand Down Expand Up @@ -56,64 +44,18 @@ dependencies {
implementation(libs.ktorClient.resources)
implementation(libs.ktorSerialization.kotlinxJson)

// https://github.com/avast/gradle-docker-compose-plugin
// implementation("com.avast.gradle:gradle-docker-compose-plugin:${Versions.gradleDockerComposePlugin}")

// https://github.com/gradle/gradle/issues/15383#issuecomment-779893192
// https://youtrack.jetbrains.com/issue/IDEA-262280#focus=Comments-27-5397040.0-0
// implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
}


//tasks.compileKotlin {
// kotlinOptions {
// // needed by IntelliJ? Even though below does the same?
// languageVersion = "1.6"
// }
//}

tasks.withType<KotlinCompile>().configureEach {

kotlinOptions {
// jvmTarget = gradleJvmTarget
// apiVersion = gradleKotlinTarget
// languageVersion = gradleKotlinTarget
kotlin {
compilerOptions {
optIn.addAll(
"kotlin.ExperimentalStdlibApi",
"kotlin.time.ExperimentalTime",
//"kotlinx.coroutines.ExperimentalCoroutinesApi",
"kotlinx.serialization.ExperimentalSerializationApi",
)
}

kotlinOptions.freeCompilerArgs += listOf(
// "-Xcontext-receivers",
"-opt-in=kotlin.RequiresOptIn",
"-opt-in=kotlin.ExperimentalStdlibApi",
"-opt-in=kotlin.time.ExperimentalTime",
// "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
)
}


overrideKotlinLanguageVersion("1.6")
//afterEvaluate {
// tasks.withType<KotlinCompile>().configureEach {
// kotlinOptions {
// apiVersion = gradleKotlinTarget
// languageVersion = gradleKotlinTarget
// }
// }
//}

//kotlin {
// jvmToolchain {
// (this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(gradleJvmTarget))
// }
//}
//
//kotlinDslPluginOptions {
// jvmTarget.set(gradleJvmTarget)
//}

//idea {
// module {
// isDownloadSources = true
// isDownloadJavadoc = true
// }
//}
4 changes: 2 additions & 2 deletions buildSrc/repositories.settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ fun RepositoryHandler.jitpack() {
}


fun RepositoryHandler.myMavenLocal(enabled: Boolean = true) {
fun RepositoryHandler.myMavenLocal(enabled: Boolean = false) {
if (enabled) {
logger.lifecycle("Maven local is enabled")
logger.warn("Maven local is enabled")
mavenLocal {
content {
// includeGroup("dev.adamko")
Expand Down
16 changes: 8 additions & 8 deletions gradle-plugins/builder-plugins/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
id("kafkatorio.conventions.kotlin-dsl")
}
Expand Down Expand Up @@ -34,10 +32,12 @@ dependencies {
}


tasks.withType<KotlinCompile>().configureEach {
kotlinOptions.freeCompilerArgs += listOf(
"-opt-in=kotlin.ExperimentalStdlibApi",
"-opt-in=kotlin.time.ExperimentalTime",
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
)
kotlin {
compilerOptions {
optIn.addAll(
"kotlin.ExperimentalStdlibApi",
"kotlin.time.ExperimentalTime",
"kotlinx.serialization.ExperimentalSerializationApi",
)
}
}
Original file line number Diff line number Diff line change
@@ -1,70 +1,15 @@
package kafkatorio.conventions.lang

//import dev.adamko.kafkatorio.Versions
import kafkatorio.conventions.relocateKotlinJsStore
//import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
//import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
//import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
//import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnRootExtension

//import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask


plugins {
kotlin("js")
kotlin("multiplatform")
id("kafkatorio.conventions.base")
}

//dependencies {
// implementation(
// project.dependencies.platform(
// "org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom:${Versions.kotlinWrappers}"
// )
// )
//}

//val rootPackageJson by rootProject.tasks.getting(RootPackageJsonTask::class)

//fun NpmTask.setNodeModulesPath(path: String): Unit =
// environment.put("NODE_PATH", path)
//
//fun NpmTask.setNodeModulesPath(folder: File): Unit =
// setNodeModulesPath(folder.normalize().absolutePath)

// https://github.com/node-gradle/gradle-node-plugin/issues/150
// https://github.com/lamba92/kotlingram/blob/master/examples/js-bot/build.gradle.kts

//val nodePath: Directory by extra {
// val file = rootPackageJson.rootPackageJson.parentFile.normalize()
// logger.info("Kotlin/JS NODE_PATH: $file")
// project.layout.dir(project.provider { file }).get()
//}

//val nodeModulesDir: Directory by extra {
// val file = nodePath.dir(NpmProject.NODE_MODULES)
// logger.info("Kotlin/JS NODE_MODULES: $file")
// file
//}

kotlin {
js()
}

relocateKotlinJsStore()


//plugins.withType<NodeJsRootPlugin> {
// configure<NodeJsRootExtension> {
// nodeVersion = "16.0.0"
// }
//}


//afterEvaluate {
// rootProject.extensions.configure<NodeJsRootExtension> {
// // https://github.com/rjaros/kvision/issues/410
// versions.webpackCli.version = "4.10.0"
// versions.webpackDevServer.version = "4.9.2"
// }
//
// rootProject.extensions.configure<YarnRootExtension> {
// resolution("http-proxy-middleware", "^2.0.6")
// }
//}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package kafkatorio.conventions.lang

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
id("kafkatorio.conventions.base")
kotlin("jvm")
}

val projectKotlinTarget = "1.7"
//val projectKotlinTarget = "1.7"
val projectJvmTarget = "11"


Expand All @@ -22,38 +22,35 @@ dependencies {
testImplementation("io.mockk:mockk")
}


tasks.withType<KotlinCompile>().configureEach {

kotlinOptions {
jvmTarget = projectJvmTarget
apiVersion = projectKotlinTarget
languageVersion = projectKotlinTarget
kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(projectJvmTarget))
}

kotlinOptions.freeCompilerArgs += listOf(
// "-Xcontext-receivers",
"-opt-in=kotlin.RequiresOptIn",
"-opt-in=kotlin.ExperimentalStdlibApi",
"-opt-in=kotlin.time.ExperimentalTime",
// "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
// "-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
)
compilerOptions {
jvmTarget = JvmTarget.fromTarget(projectJvmTarget)
// apiVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.fromVersion(projectKotlinTarget)
// languageVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.fromVersion(projectKotlinTarget)

optIn.addAll(
//"kotlin.RequiresOptIn",
"kotlin.ExperimentalStdlibApi",
"kotlin.time.ExperimentalTime",
//"kotlinx.coroutines.ExperimentalCoroutinesApi",
//"kotlinx.serialization.ExperimentalSerializationApi",
)
}
}


tasks.compileTestKotlin {
kotlinOptions.freeCompilerArgs += "-opt-in=io.kotest.common.ExperimentalKotest"
}


kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(projectJvmTarget))
compilerOptions {
optIn.addAll(
"io.kotest.common.ExperimentalKotest",
)
}
}


tasks.withType<Test>().configureEach {
useJUnitPlatform()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,26 +34,6 @@ operator fun <T> Spec<T>.not(): NotSpec<T> = NotSpec(this)
//


/** exclude generated Gradle code, so it doesn't clog up search results */
fun IdeaModule.excludeGeneratedGradleDsl(layout: ProjectLayout) {

val generatedSrcDirs = listOf(
"kotlin-dsl-accessors",
"kotlin-dsl-external-plugin-spec-builders",
"kotlin-dsl-plugins",
)

excludeDirs.addAll(
layout.projectDirectory.asFile.walk()
.filter { it.isDirectory }
.filter { it.parentFile.name in generatedSrcDirs }
.flatMap { file ->
file.walk().maxDepth(1).filter { it.isDirectory }.toList()
}
)
}


// https://stackoverflow.com/a/70317110/4161471
fun Project.execCapture(spec: ExecSpec.() -> Unit): String {
return ByteArrayOutputStream().use { outputStream ->
Expand Down

This file was deleted.

Loading