From f12a505d22141dd533ee7664a738b8d60a24563d Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Sun, 18 Sep 2022 20:49:32 +0200 Subject: [PATCH] migrate buildSrc plugins to includedBuild plugins --- .gitignore | 3 ++ build.gradle.kts | 3 +- buildSrc/build.gradle.kts | 4 +- .../builder-plugins/build.gradle.kts | 29 ++++++++++++ .../builder-plugins/settings.gradle.kts | 8 ++++ .../kafkatorio/conventions}/base.gradle.kts | 2 +- .../kotlin/kafkatorio/conventions}/common.kt | 2 +- .../infra/docker-compose.gradle.kts | 9 ++-- .../infra/process-runner.gradle.kts | 7 ++- .../conventions}/lang/kotlin-js.gradle.kts | 6 +-- .../conventions}/lang/kotlin-jvm.gradle.kts | 4 +- .../lang/kotlin-multiplatform.gradle.kts | 6 +-- .../conventions}/lang/node.gradle.kts | 8 ++-- .../distributions}/artifactDistributions.kt | 2 +- .../kotlin/kafkatorio/extensions/gradle.kt | 2 +- .../kafkatorio/tasks}/DockerComposeExec.kt | 4 +- .../kafkatorio/tasks}/DockerEnvUpdateTask.kt | 4 +- .../tasks}/GenerateTypeScriptTask.kt | 2 +- .../tasks}/JsonPropertiesUpToDateSpec.kt | 6 +-- .../tasks}/KafkaConsumerGroupsTask.kt | 4 +- .../kafkatorio/tasks}/ProcessRunningSpec.kt | 3 +- .../kafkatorio/tasks}/TypescriptToLuaTask.kt | 2 +- .../kafkatorio/tasks}/UpdatePackageJson.kt | 4 +- .../docker-compose/settings.gradle.kts | 2 +- .../factorio-mod-manager/build.gradle.kts | 27 +++++++++++ .../factorio-mod-manager/settings.gradle.kts | 8 ++++ modules/events-library/build.gradle.kts | 8 ++-- modules/events-mod/build.gradle.kts | 12 ++--- .../events-processor-core/build.gradle.kts | 2 +- modules/events-processors/build.gradle.kts | 2 +- modules/events-server-syslog/build.gradle.kts | 2 +- modules/events-server-web/build.gradle.kts | 2 +- modules/events-server/build.gradle.kts | 4 +- .../infra-factorio-client/build.gradle.kts | 10 ++-- .../infra-factorio-server/build.gradle.kts | 6 +-- modules/infra-kafka-cluster/build.gradle.kts | 2 +- modules/infra-kafka-pipe/build.gradle.kts | 4 +- modules/kt-rcon/build.gradle.kts | 2 +- modules/web-map/build.gradle.kts | 47 ++----------------- settings.gradle.kts | 7 ++- 40 files changed, 159 insertions(+), 112 deletions(-) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions}/base.gradle.kts (91%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions}/common.kt (96%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions}/infra/docker-compose.gradle.kts (84%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions}/infra/process-runner.gradle.kts (71%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions}/lang/kotlin-js.gradle.kts (93%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions}/lang/kotlin-jvm.gradle.kts (95%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions}/lang/kotlin-multiplatform.gradle.kts (87%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions}/lang/node.gradle.kts (91%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/distributions}/artifactDistributions.kt (97%) rename buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/extensions.kt => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/extensions/gradle.kt (99%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks}/DockerComposeExec.kt (96%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks}/DockerEnvUpdateTask.kt (86%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks}/GenerateTypeScriptTask.kt (95%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks}/JsonPropertiesUpToDateSpec.kt (88%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks}/KafkaConsumerGroupsTask.kt (96%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks}/ProcessRunningSpec.kt (94%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks}/TypescriptToLuaTask.kt (97%) rename {buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task => gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks}/UpdatePackageJson.kt (98%) diff --git a/.gitignore b/.gitignore index fc1afcd..0ec58ab 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,9 @@ .state/ +# Docker .env files are generated from a Gradle task +.env + .idea/ !.idea/icon.svg diff --git a/build.gradle.kts b/build.gradle.kts index 51241c3..078d29c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,9 +1,10 @@ -import dev.adamko.kafkatorio.gradle.excludeGeneratedGradleDsl import java.time.LocalDate +import kafkatorio.extensions.excludeGeneratedGradleDsl plugins { idea base + id("kafkatorio.conventions.base") // `project-report` // `build-dashboard` } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 4c2e332..b98a725 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -3,8 +3,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { idea `kotlin-dsl` - kotlin("jvm") version "1.6.21" - kotlin("plugin.serialization") version "1.6.21" + kotlin("jvm") version embeddedKotlinVersion + kotlin("plugin.serialization") version embeddedKotlinVersion } val gradleJvmTarget = "11" diff --git a/gradle-plugins/builder-plugins/build.gradle.kts b/gradle-plugins/builder-plugins/build.gradle.kts index cf30adb..0f6d586 100644 --- a/gradle-plugins/builder-plugins/build.gradle.kts +++ b/gradle-plugins/builder-plugins/build.gradle.kts @@ -5,6 +5,35 @@ plugins { kotlin("jvm") version embeddedKotlinVersion } +dependencies { + implementation(platform(libs.kotlin.bom)) + implementation("org.jetbrains.kotlin:kotlin-serialization") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation("org.jetbrains.kotlin:kotlin-compiler-embeddable") + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${libs.versions.kotlin.get()}") + + implementation(platform(libs.kotlinx.coroutines.bom)) + implementation(libs.kotlinx.coroutines.core) + + implementation(platform(libs.kotlinxSerialization.bom)) + implementation(libs.kotlinxSerialization.core) + implementation(libs.kotlinxSerialization.json) + + implementation("com.github.node-gradle:gradle-node-plugin:${libs.versions.gradleNodePlugin.get()}") + + implementation(platform(libs.kotest.bom)) + implementation("io.kotest:kotest-framework-multiplatform-plugin-gradle") + + implementation("io.kvision:io.kvision.gradle.plugin:${libs.versions.kvision.get()}") + + implementation("net.swiftzer.semver:semver:${libs.versions.semver.get()}") + + implementation(platform(libs.okio.bom)) + implementation(libs.okio.core) + + implementation(libs.kotlinx.cli) +} + val gradleJvmTarget = "11" kotlin { diff --git a/gradle-plugins/builder-plugins/settings.gradle.kts b/gradle-plugins/builder-plugins/settings.gradle.kts index c5b5c98..fa59505 100644 --- a/gradle-plugins/builder-plugins/settings.gradle.kts +++ b/gradle-plugins/builder-plugins/settings.gradle.kts @@ -8,3 +8,11 @@ pluginManagement { plugins { id("kafkatorio.convention.settings.repositories") } + +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + from(files("../../gradle/libs.versions.toml")) + } + } +} diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/base.gradle.kts b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/base.gradle.kts similarity index 91% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/base.gradle.kts rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/base.gradle.kts index 19385e5..1bd1049 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/base.gradle.kts +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/base.gradle.kts @@ -1,4 +1,4 @@ -package dev.adamko.kafkatorio +package kafkatorio.conventions plugins { diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/common.kt b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/common.kt similarity index 96% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/common.kt rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/common.kt index 97a009a..7956955 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/common.kt +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/common.kt @@ -1,4 +1,4 @@ -package dev.adamko.kafkatorio +package kafkatorio.conventions import io.kvision.gradle.KVisionExtension import org.gradle.api.Project diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/docker-compose.gradle.kts b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/infra/docker-compose.gradle.kts similarity index 84% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/docker-compose.gradle.kts rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/infra/docker-compose.gradle.kts index 58819be..0de989b 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/docker-compose.gradle.kts +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/infra/docker-compose.gradle.kts @@ -1,12 +1,12 @@ -package dev.adamko.kafkatorio.infra +package kafkatorio.conventions.infra -import dev.adamko.kafkatorio.gradle.DOCKER_COMPOSE_TASK_GROUP -import dev.adamko.kafkatorio.task.DockerEnvUpdateTask +import kafkatorio.tasks.DockerEnvUpdateTask +import kafkatorio.extensions.DOCKER_COMPOSE_TASK_GROUP import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { base - id("dev.adamko.kafkatorio.infra.process-runner") + id("kafkatorio.conventions.infra.process-runner") } @@ -55,6 +55,7 @@ val dockerEnvUpdate by tasks.registering(DockerEnvUpdateTask::class) { properties( "COMPOSE_PROJECT_NAME" to dockerComposeProjectName, "KAFKATORIO_VERSION" to project.version, + "REGISTRY_HOST" to providers.gradleProperty("dockerContainerRegistryHost"), ) } diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/process-runner.gradle.kts b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/infra/process-runner.gradle.kts similarity index 71% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/process-runner.gradle.kts rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/infra/process-runner.gradle.kts index 25d5231..5b5b04a 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/process-runner.gradle.kts +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/infra/process-runner.gradle.kts @@ -1,7 +1,10 @@ -package dev.adamko.kafkatorio.infra +package kafkatorio.conventions.infra + +import org.gradle.kotlin.dsl.extra +import org.gradle.kotlin.dsl.registering plugins { - id("dev.adamko.kafkatorio.base") + id("kafkatorio.conventions.base") } val processRunnerTaskGroup: String by extra("processes") diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-js.gradle.kts b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/kotlin-js.gradle.kts similarity index 93% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-js.gradle.kts rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/kotlin-js.gradle.kts index 4ff9e92..f84a3cb 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-js.gradle.kts +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/kotlin-js.gradle.kts @@ -1,7 +1,7 @@ -package dev.adamko.kafkatorio.lang +package kafkatorio.conventions.lang //import dev.adamko.kafkatorio.Versions -import dev.adamko.kafkatorio.relocateKotlinJsStore +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 @@ -12,7 +12,7 @@ import dev.adamko.kafkatorio.relocateKotlinJsStore plugins { kotlin("js") - id("dev.adamko.kafkatorio.base") + id("kafkatorio.conventions.base") } //dependencies { diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-jvm.gradle.kts b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/kotlin-jvm.gradle.kts similarity index 95% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-jvm.gradle.kts rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/kotlin-jvm.gradle.kts index dbb4b66..1393be0 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-jvm.gradle.kts +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/kotlin-jvm.gradle.kts @@ -1,9 +1,9 @@ -package dev.adamko.kafkatorio.lang +package kafkatorio.conventions.lang import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - id("dev.adamko.kafkatorio.base") + id("kafkatorio.conventions.base") kotlin("jvm") } diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-multiplatform.gradle.kts b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/kotlin-multiplatform.gradle.kts similarity index 87% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-multiplatform.gradle.kts rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/kotlin-multiplatform.gradle.kts index f9f0d11..3b90834 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/kotlin-multiplatform.gradle.kts +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/kotlin-multiplatform.gradle.kts @@ -1,13 +1,13 @@ -package dev.adamko.kafkatorio.lang +package kafkatorio.conventions.lang -import dev.adamko.kafkatorio.relocateKotlinJsStore +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.yarn.YarnRootExtension plugins { - id("dev.adamko.kafkatorio.base") + id("kafkatorio.conventions.base") // id("dev.adamko.kafkatorio.lang.node") kotlin("multiplatform") // id("io.kotest.multiplatform") // disabled because of https://github.com/kotest/kotest/issues/3141 diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/node.gradle.kts b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/node.gradle.kts similarity index 91% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/node.gradle.kts rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/node.gradle.kts index 8e07427..f9128c8 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/lang/node.gradle.kts +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/conventions/lang/node.gradle.kts @@ -1,14 +1,14 @@ -package dev.adamko.kafkatorio.lang +package kafkatorio.conventions.lang import com.github.gradle.node.npm.task.NpmInstallTask -import dev.adamko.kafkatorio.Versions -import dev.adamko.kafkatorio.task.UpdatePackageJson +import kafkatorio.conventions.Versions +import kafkatorio.tasks.UpdatePackageJson import kotlinx.serialization.json.put plugins { id("com.github.node-gradle.node") - id("dev.adamko.kafkatorio.base") + id("kafkatorio.conventions.base") } diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/artifactDistributions.kt b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/distributions/artifactDistributions.kt similarity index 97% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/artifactDistributions.kt rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/distributions/artifactDistributions.kt index b2f9beb..56ca202 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/artifactDistributions.kt +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/distributions/artifactDistributions.kt @@ -1,4 +1,4 @@ -package dev.adamko.kafkatorio.gradle +package kafkatorio.distributions import org.gradle.api.artifacts.Configuration import org.gradle.api.attributes.Bundling diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/extensions.kt b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/extensions/gradle.kt similarity index 99% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/extensions.kt rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/extensions/gradle.kt index f3c0743..e6dc6bb 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/extensions.kt +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/extensions/gradle.kt @@ -1,4 +1,4 @@ -package dev.adamko.kafkatorio.gradle +package kafkatorio.extensions import java.io.ByteArrayOutputStream import org.gradle.api.Project diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/DockerComposeExec.kt b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/DockerComposeExec.kt similarity index 96% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/DockerComposeExec.kt rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/DockerComposeExec.kt index 1fc0ba4..8bc28eb 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/DockerComposeExec.kt +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/DockerComposeExec.kt @@ -1,6 +1,6 @@ -package dev.adamko.kafkatorio.task +package kafkatorio.tasks -import dev.adamko.kafkatorio.gradle.filesChecksum +import kafkatorio.extensions.filesChecksum import javax.inject.Inject import org.gradle.api.DefaultTask import org.gradle.api.file.DirectoryProperty diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/DockerEnvUpdateTask.kt b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/DockerEnvUpdateTask.kt similarity index 86% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/DockerEnvUpdateTask.kt rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/DockerEnvUpdateTask.kt index cda0978..a5a335f 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/DockerEnvUpdateTask.kt +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/DockerEnvUpdateTask.kt @@ -1,7 +1,7 @@ -package dev.adamko.kafkatorio.task +package kafkatorio.tasks -import dev.adamko.kafkatorio.gradle.DOCKER_COMPOSE_TASK_GROUP import javax.inject.Inject +import kafkatorio.extensions.DOCKER_COMPOSE_TASK_GROUP import org.gradle.api.file.RegularFileProperty import org.gradle.api.logging.LogLevel import org.gradle.api.model.ObjectFactory diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/GenerateTypeScriptTask.kt b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/GenerateTypeScriptTask.kt similarity index 95% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/GenerateTypeScriptTask.kt rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/GenerateTypeScriptTask.kt index 331275b..6cf739a 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/GenerateTypeScriptTask.kt +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/GenerateTypeScriptTask.kt @@ -1,4 +1,4 @@ -package dev.adamko.kafkatorio.task +package kafkatorio.tasks import javax.inject.Inject import org.gradle.api.file.DirectoryProperty diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/JsonPropertiesUpToDateSpec.kt b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/JsonPropertiesUpToDateSpec.kt similarity index 88% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/JsonPropertiesUpToDateSpec.kt rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/JsonPropertiesUpToDateSpec.kt index 8b61b06..271cced 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/JsonPropertiesUpToDateSpec.kt +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/JsonPropertiesUpToDateSpec.kt @@ -1,7 +1,7 @@ -package dev.adamko.kafkatorio.task +package kafkatorio.tasks -import dev.adamko.kafkatorio.task.UpdatePackageJson.Companion.foldParseToJsonObject -import dev.adamko.kafkatorio.task.UpdatePackageJson.Companion.parseToJsonObject +import kafkatorio.tasks.UpdatePackageJson.Companion.foldParseToJsonObject +import kafkatorio.tasks.UpdatePackageJson.Companion.parseToJsonObject import kotlinx.serialization.json.JsonObject import org.gradle.api.Task import org.gradle.api.internal.specs.ExplainingSpec diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/KafkaConsumerGroupsTask.kt b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/KafkaConsumerGroupsTask.kt similarity index 96% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/KafkaConsumerGroupsTask.kt rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/KafkaConsumerGroupsTask.kt index e9599f3..c4c88b4 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/KafkaConsumerGroupsTask.kt +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/KafkaConsumerGroupsTask.kt @@ -1,6 +1,6 @@ -package dev.adamko.kafkatorio.task +package kafkatorio.tasks -import dev.adamko.kafkatorio.gradle.execCapture +import kafkatorio.extensions.execCapture import org.gradle.api.DefaultTask import org.gradle.api.logging.LogLevel import org.gradle.api.tasks.Input diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/ProcessRunningSpec.kt b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/ProcessRunningSpec.kt similarity index 94% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/ProcessRunningSpec.kt rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/ProcessRunningSpec.kt index a677735..629c727 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/ProcessRunningSpec.kt +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/ProcessRunningSpec.kt @@ -1,7 +1,6 @@ -package dev.adamko.kafkatorio.task +package kafkatorio.tasks import java.io.ByteArrayOutputStream -import javax.inject.Inject import org.gradle.api.Task import org.gradle.api.internal.specs.ExplainingSpec import org.gradle.api.tasks.Exec diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/TypescriptToLuaTask.kt b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/TypescriptToLuaTask.kt similarity index 97% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/TypescriptToLuaTask.kt rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/TypescriptToLuaTask.kt index 0624185..d3c090d 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/TypescriptToLuaTask.kt +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/TypescriptToLuaTask.kt @@ -1,4 +1,4 @@ -package dev.adamko.kafkatorio.task +package kafkatorio.tasks import com.github.gradle.node.npm.task.NpmTask import javax.inject.Inject diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/UpdatePackageJson.kt b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/UpdatePackageJson.kt similarity index 98% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/UpdatePackageJson.kt rename to gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/UpdatePackageJson.kt index 5674046..bcbd523 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/UpdatePackageJson.kt +++ b/gradle-plugins/builder-plugins/src/main/kotlin/kafkatorio/tasks/UpdatePackageJson.kt @@ -1,7 +1,7 @@ -package dev.adamko.kafkatorio.task +package kafkatorio.tasks import com.github.gradle.node.NodePlugin -import dev.adamko.kafkatorio.* +import kafkatorio.* import java.io.File import javax.inject.Inject import kotlinx.serialization.encodeToString diff --git a/gradle-plugins/docker-compose/settings.gradle.kts b/gradle-plugins/docker-compose/settings.gradle.kts index f0000bc..c0f0cd1 100644 --- a/gradle-plugins/docker-compose/settings.gradle.kts +++ b/gradle-plugins/docker-compose/settings.gradle.kts @@ -9,7 +9,7 @@ plugins { id("kafkatorio.convention.settings.repositories") } - dependencyResolutionManagement { +dependencyResolutionManagement { versionCatalogs { create("libs") { from(files("../../gradle/libs.versions.toml")) diff --git a/gradle-plugins/factorio-mod-manager/build.gradle.kts b/gradle-plugins/factorio-mod-manager/build.gradle.kts index cf30adb..ae27420 100644 --- a/gradle-plugins/factorio-mod-manager/build.gradle.kts +++ b/gradle-plugins/factorio-mod-manager/build.gradle.kts @@ -5,6 +5,33 @@ plugins { kotlin("jvm") version embeddedKotlinVersion } +dependencies { + implementation(platform(libs.kotlin.bom)) + + implementation(platform(libs.kotlinx.coroutines.bom)) + implementation(libs.kotlinx.coroutines.core) + + implementation(platform(libs.kotlinxSerialization.bom)) + implementation(libs.kotlinxSerialization.core) + implementation(libs.kotlinxSerialization.json) + + implementation(platform(libs.okio.bom)) + implementation(libs.okio.core) + + implementation(libs.kotlinx.cli) + + implementation(platform(libs.ktor.bom)) + implementation(libs.ktorClient.auth) + implementation(libs.ktorClient.contentNegotiation) + implementation(libs.ktorClient.core) + implementation(libs.ktorClient.encoding) + implementation(libs.ktorClient.logging) + implementation(libs.ktorClient.cio) + implementation(libs.ktorClient.resources) + implementation(libs.ktorSerialization.kotlinxJson) +} + + val gradleJvmTarget = "11" kotlin { diff --git a/gradle-plugins/factorio-mod-manager/settings.gradle.kts b/gradle-plugins/factorio-mod-manager/settings.gradle.kts index d95228b..d6f8766 100644 --- a/gradle-plugins/factorio-mod-manager/settings.gradle.kts +++ b/gradle-plugins/factorio-mod-manager/settings.gradle.kts @@ -10,3 +10,11 @@ pluginManagement { plugins { id("kafkatorio.convention.settings.repositories") } + +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + from(files("../../gradle/libs.versions.toml")) + } + } +} diff --git a/modules/events-library/build.gradle.kts b/modules/events-library/build.gradle.kts index 0c5f892..ac2a956 100644 --- a/modules/events-library/build.gradle.kts +++ b/modules/events-library/build.gradle.kts @@ -1,13 +1,13 @@ -import dev.adamko.kafkatorio.gradle.asProvider -import dev.adamko.kafkatorio.gradle.typescriptAttributes -import dev.adamko.kafkatorio.task.GenerateTypeScriptTask +import kafkatorio.distributions.asProvider +import kafkatorio.distributions.typescriptAttributes +import kafkatorio.tasks.GenerateTypeScriptTask import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - dev.adamko.kafkatorio.lang.`kotlin-multiplatform` + id("kafkatorio.conventions.lang.kotlin-multiplatform") kotlin("plugin.serialization") distribution } diff --git a/modules/events-mod/build.gradle.kts b/modules/events-mod/build.gradle.kts index c3398d7..faa546e 100644 --- a/modules/events-mod/build.gradle.kts +++ b/modules/events-mod/build.gradle.kts @@ -1,9 +1,9 @@ import dev.adamko.kafkatorio.factoriomod.portal.FactorioModPublishTask -import dev.adamko.kafkatorio.gradle.asConsumer -import dev.adamko.kafkatorio.gradle.asProvider -import dev.adamko.kafkatorio.gradle.factorioModAttributes -import dev.adamko.kafkatorio.gradle.typescriptAttributes -import dev.adamko.kafkatorio.task.TypescriptToLuaTask +import kafkatorio.distributions.asConsumer +import kafkatorio.distributions.asProvider +import kafkatorio.distributions.factorioModAttributes +import kafkatorio.distributions.typescriptAttributes +import kafkatorio.tasks.TypescriptToLuaTask import kotlinx.serialization.json.put import kotlinx.serialization.json.putJsonObject import net.swiftzer.semver.SemVer @@ -12,7 +12,7 @@ import org.gradle.plugins.ide.idea.model.Module as IdeaImlModule import org.gradle.plugins.ide.idea.model.Path as IdeaImlPath plugins { - dev.adamko.kafkatorio.lang.node + id("kafkatorio.conventions.lang.node") distribution } diff --git a/modules/events-processor-core/build.gradle.kts b/modules/events-processor-core/build.gradle.kts index f681852..3a2cab4 100644 --- a/modules/events-processor-core/build.gradle.kts +++ b/modules/events-processor-core/build.gradle.kts @@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - dev.adamko.kafkatorio.lang.`kotlin-jvm` + id("kafkatorio.conventions.lang.kotlin-jvm") kotlin("plugin.serialization") // application } diff --git a/modules/events-processors/build.gradle.kts b/modules/events-processors/build.gradle.kts index 01ae8d4..3134526 100644 --- a/modules/events-processors/build.gradle.kts +++ b/modules/events-processors/build.gradle.kts @@ -1,7 +1,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - dev.adamko.kafkatorio.lang.`kotlin-jvm` + id("kafkatorio.conventions.lang.kotlin-jvm") kotlin("plugin.serialization") application } diff --git a/modules/events-server-syslog/build.gradle.kts b/modules/events-server-syslog/build.gradle.kts index d746d17..e46fa72 100644 --- a/modules/events-server-syslog/build.gradle.kts +++ b/modules/events-server-syslog/build.gradle.kts @@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - dev.adamko.kafkatorio.lang.`kotlin-jvm` + id("kafkatorio.conventions.lang.kotlin-jvm") kotlin("plugin.serialization") application } diff --git a/modules/events-server-web/build.gradle.kts b/modules/events-server-web/build.gradle.kts index f65b0ae..d0ebc85 100644 --- a/modules/events-server-web/build.gradle.kts +++ b/modules/events-server-web/build.gradle.kts @@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - dev.adamko.kafkatorio.lang.`kotlin-jvm` + id("kafkatorio.conventions.lang.kotlin-jvm") kotlin("plugin.serialization") application } diff --git a/modules/events-server/build.gradle.kts b/modules/events-server/build.gradle.kts index c865d61..32abda4 100644 --- a/modules/events-server/build.gradle.kts +++ b/modules/events-server/build.gradle.kts @@ -1,5 +1,5 @@ -import dev.adamko.kafkatorio.task.DockerEnvUpdateTask -import dev.adamko.kafkatorio.task.KafkaConsumerGroupsTask +import kafkatorio.tasks.DockerEnvUpdateTask +import kafkatorio.tasks.KafkaConsumerGroupsTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile diff --git a/modules/infra-factorio-client/build.gradle.kts b/modules/infra-factorio-client/build.gradle.kts index 4c694a9..622ba2b 100644 --- a/modules/infra-factorio-client/build.gradle.kts +++ b/modules/infra-factorio-client/build.gradle.kts @@ -1,13 +1,13 @@ import dev.adamko.kafkatorio.factoriomod.FactorioMod -import dev.adamko.kafkatorio.gradle.asConsumer -import dev.adamko.kafkatorio.gradle.factorioModAttributes -import dev.adamko.kafkatorio.gradle.not -import dev.adamko.kafkatorio.task.ProcessRunningSpec +import kafkatorio.distributions.asConsumer +import kafkatorio.distributions.factorioModAttributes +import kafkatorio.extensions.not +import kafkatorio.tasks.ProcessRunningSpec import org.gradle.kotlin.dsl.support.serviceOf import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { - dev.adamko.kafkatorio.infra.`process-runner` + id("kafkatorio.conventions.infra.process-runner") } description = "Start the Factorio game client" diff --git a/modules/infra-factorio-server/build.gradle.kts b/modules/infra-factorio-server/build.gradle.kts index a97e76b..d97aeab 100644 --- a/modules/infra-factorio-server/build.gradle.kts +++ b/modules/infra-factorio-server/build.gradle.kts @@ -1,10 +1,10 @@ import dev.adamko.kafkatorio.factoriomod.FactorioMod -import dev.adamko.kafkatorio.gradle.asConsumer -import dev.adamko.kafkatorio.gradle.factorioModAttributes +import kafkatorio.distributions.asConsumer +import kafkatorio.distributions.factorioModAttributes import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { - dev.adamko.kafkatorio.infra.`docker-compose` + id("kafkatorio.conventions.infra.docker-compose") } diff --git a/modules/infra-kafka-cluster/build.gradle.kts b/modules/infra-kafka-cluster/build.gradle.kts index e5f2040..f56f49f 100644 --- a/modules/infra-kafka-cluster/build.gradle.kts +++ b/modules/infra-kafka-cluster/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - dev.adamko.kafkatorio.infra.`docker-compose` + id("kafkatorio.conventions.infra.docker-compose") } description = "Kafka cluster" diff --git a/modules/infra-kafka-pipe/build.gradle.kts b/modules/infra-kafka-pipe/build.gradle.kts index 58301f1..4bfb356 100644 --- a/modules/infra-kafka-pipe/build.gradle.kts +++ b/modules/infra-kafka-pipe/build.gradle.kts @@ -1,7 +1,7 @@ -import dev.adamko.kafkatorio.task.DockerComposeExec +import kafkatorio.tasks.DockerComposeExec plugins { - dev.adamko.kafkatorio.infra.`docker-compose` + id("kafkatorio.conventions.infra.docker-compose") } description = "Send events from a Factorio server to a Kafka topic " diff --git a/modules/kt-rcon/build.gradle.kts b/modules/kt-rcon/build.gradle.kts index 375e7b6..c25f5b7 100644 --- a/modules/kt-rcon/build.gradle.kts +++ b/modules/kt-rcon/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - dev.adamko.kafkatorio.lang.`kotlin-jvm` + id("kafkatorio.conventions.lang.kotlin-jvm") } dependencies { diff --git a/modules/web-map/build.gradle.kts b/modules/web-map/build.gradle.kts index d82c67a..c83c02f 100644 --- a/modules/web-map/build.gradle.kts +++ b/modules/web-map/build.gradle.kts @@ -1,11 +1,10 @@ -import dev.adamko.kafkatorio.task.DockerEnvUpdateTask +import kafkatorio.tasks.DockerEnvUpdateTask import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig plugins { - dev.adamko.kafkatorio.lang.`kotlin-js` -// dev.adamko.kafkatorio.lang.`kotlin-multiplatform` + id("kafkatorio.conventions.lang.kotlin-js") id("io.kvision") kotlin("plugin.serialization") } @@ -35,9 +34,7 @@ kotlin { ), "/kafkatorio/ws" to mapOf( "target" to "ws://localhost:12080", -// "secure" to false, "ws" to true, -// "changeOrigin" to true, ), ), // static = mutableListOf("$buildDir/processedResources/frontend/main") @@ -53,15 +50,12 @@ kotlin { } } } -// compilations["main"].packageJson { -// this.devDependencies["webpack-dev-server"] = "4.9.1" -// } } sourceSets { - all { - languageSettings.apply { + configureEach { + languageSettings { optIn("kotlin.RequiresOptIn") optIn("kotlinx.serialization.ExperimentalSerializationApi") } @@ -93,18 +87,6 @@ kotlin { kvision("kvision-redux") kvision("kvision-state-flow") kvision("kvision-routing-navigo-ng") - -// implementation(devNpm("http-proxy-middleware", "^2.0.6")) -// implementation(dependencies.platform(devNpm("http-proxy-middleware", "^2.0.6"))) - -// implementation(dependencies.platform(npm("follow-redirects", "^1.14.8"))) -// implementation(dependencies.platform(npm("nanoid", "^3.1.31"))) -// implementation(dependencies.platform(npm("minimist", "^1.2.6"))) -// implementation(dependencies.platform(npm("async", "^2.6.4"))) -// implementation(dependencies.platform(npm("node-forge", "^1.3.0"))) -// implementation(dependencies.platform(npm("socket.io", "^4.5.1"))) -// implementation(dependencies.platform(devNpm("http-proxy-middleware", "^3.0.0-beta.0"))) -// implementation(dependencies.platform(devNpm("webpack-dev-server", "4.9.1"))) } resources.srcDir("src/main/web") @@ -133,21 +115,6 @@ fun KotlinDependencyHandler.kvision( implementation("io.kvision:$module:${version.get()}", configure) } -////// https://youtrack.jetbrains.com/issue/KT-42420 -//afterEvaluate { -// yarn { -//// resolution("mocha", "9.2.2") -//// resolution("follow-redirects", "1.14.8") -//// resolution("nanoid", "3.1.31") -//// resolution("minimist", "1.2.6") -//// resolution("async", "2.6.4") -//// resolution("node-forge", "1.3.0") -//// resolution("socket.io", "^4.5.1") -//// resolution("http-proxy-middleware", "^3.0.0-beta.0") -// resolution("webpack-dev-server", "4.9.1") -// } -//} - val dockerEnvUpdate by tasks.registering(DockerEnvUpdateTask::class) { dotEnvFile.set(layout.projectDirectory.file("docker/.env")) @@ -155,6 +122,7 @@ val dockerEnvUpdate by tasks.registering(DockerEnvUpdateTask::class) { properties( "COMPOSE_PROJECT_NAME" to rootProject.name, "KAFKATORIO_VERSION" to project.version, + "REGISTRY_HOST" to "dcr.adamko.dev:5000", ) } tasks.assemble { dependsOn(dockerEnvUpdate) } @@ -178,11 +146,6 @@ tasks.matching { it.name == "processResources" }.configureEach { } -tasks.withType().configureEach { - enabled = false -} - - val runWebMap by tasks.registering { group = rootProject.name diff --git a/settings.gradle.kts b/settings.gradle.kts index 879a691..4b7f0b3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -12,6 +12,11 @@ includeBuild("./gradle-plugins/docker-compose/") includeBuild("./gradle-plugins/factorio-mod-manager/") +plugins { + id("kafkatorio.convention.settings.repositories") +} + + include( ":modules:events-library", @@ -46,7 +51,7 @@ include( enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") -apply(from = "./buildSrc/repositories.settings.gradle.kts") +//apply(from = "./buildSrc/repositories.settings.gradle.kts") @Suppress("UnstableApiUsage") // Central declaration of repositories is an incubating feature