From eee94209446ef9381a87d634b3dfa47d3515d602 Mon Sep 17 00:00:00 2001 From: Alexandru Nedelcu Date: Tue, 26 May 2026 11:30:15 +0300 Subject: [PATCH] Start new project: jdbc4k --- gradle/libs.versions.toml | 1 + jdbc4k/AGENTS.md | 19 +++++++++++++++++++ jdbc4k/api/jdbc4k.api | 0 jdbc4k/build.gradle.kts | 24 ++++++++++++++++++++++++ settings.gradle.kts | 1 + 5 files changed, 45 insertions(+) create mode 100644 jdbc4k/AGENTS.md create mode 100644 jdbc4k/api/jdbc4k.api create mode 100644 jdbc4k/build.gradle.kts diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9b565bb..12b3dab 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,6 +18,7 @@ vanniktech-publish-plugin = { module = "com.vanniktech:gradle-maven-publish-plug ktfmt-gradle-plugin = { module = "com.ncorti.ktfmt.gradle:com.ncorti.ktfmt.gradle.gradle.plugin", version.ref = "ktfmt-plugin" } # Libraries +kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } funfix-tasks-jvm = { module = "org.funfix:tasks-jvm", version = "0.4.1" } hikaricp = { module = "com.zaxxer:HikariCP", version = "7.0.2" } logback-classic = { module = "ch.qos.logback:logback-classic", version = "1.5.32" } diff --git a/jdbc4k/AGENTS.md b/jdbc4k/AGENTS.md new file mode 100644 index 0000000..8bb0017 --- /dev/null +++ b/jdbc4k/AGENTS.md @@ -0,0 +1,19 @@ +# Agents Guide: JDBC4K + +This is a **Kotlin/JVM** utility library for working with JDBC. It is designed for internal use by other Funfix projects. + +## Rules +- **Kotlin-first**: Public APIs are Kotlin idiomatic. No Java interop constraints. +- **Dependencies**: Only `kotlin-stdlib` is allowed for now. No external dependencies unless explicitly approved. +- **TDD**: Write tests before implementation. +- **Binary Compatibility**: Do not change or remove published public members. Add overloads instead. +- **Code Style**: Follow repository conventions (ktfmt, official Kotlin style). + +## Testing +- Use Kotlin for internal tests (`src/test/kotlin`). +- Use Java for public API tests (`src/test/java`) if the API is intended for Java consumers. +- Strive for full test coverage. + +## Publishing +- This project is published to Maven Central via the `delayedqueue.publish` plugin. +- Version is inherited from the root project (`gradle.properties`). diff --git a/jdbc4k/api/jdbc4k.api b/jdbc4k/api/jdbc4k.api new file mode 100644 index 0000000..e69de29 diff --git a/jdbc4k/build.gradle.kts b/jdbc4k/build.gradle.kts new file mode 100644 index 0000000..247b4f5 --- /dev/null +++ b/jdbc4k/build.gradle.kts @@ -0,0 +1,24 @@ +plugins { + id("delayedqueue.base") + id("delayedqueue.publish") + id("delayedqueue.versions") +} + +mavenPublishing { + pom { + name.set("Funfix JDBC4K") + description.set( + "Kotlin utilities for working with JDBC, designed for internal use by Funfix projects." + ) + } +} + +dependencies { + implementation(libs.kotlin.stdlib) + + testImplementation(platform(libs.junit.bom)) + testImplementation(libs.junit.jupiter) + testRuntimeOnly(libs.junit.platform.launcher) +} + +tasks.test { useJUnitPlatform() } diff --git a/settings.gradle.kts b/settings.gradle.kts index 9435291..665485f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,6 +1,7 @@ rootProject.name = "delayedqueue" include("delayedqueue-jvm") +include("jdbc4k") pluginManagement { repositories {