Skip to content
Merged
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
6 changes: 4 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@ subprojects {
version = "1.2.0"
}

// The runnable example and the benchmark harness are not published libraries — exclude them from
// public-API tracking.
// The runnable example, the benchmark harness and the shared test suite are not published libraries —
// exclude them from public-API tracking.
apiValidation {
ignoredProjects.add("example-rag")
ignoredProjects.add("benchmarks")
ignoredProjects.add("kdrant-testkit")
// The gRPC engine's protobuf and stub classes are generated from Qdrant's own .proto files, so
// their surface is Qdrant's to change, not ours to promise. Tracking them would bury the module's
// real API — the transport factory — under thousands of generated lines. Everything hand-written
Expand All @@ -40,6 +41,7 @@ configure(
project(":kdrant-micrometer"),
project(":kdrant-koog"),
project(":kdrant-transport-grpc"),
project(":kdrant-testkit"),
project(":example-rag"),
),
) {
Expand Down
6 changes: 6 additions & 0 deletions config/detekt/detekt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ naming:
FunctionNaming:
ignoreAnnotated: []
functionPattern: '[a-zA-Z][a-zA-Z0-9]*'
# kdrant-testkit holds the shared client contract, which is a test suite that happens to live in a
# main source set because two other modules' test source sets consume it. Its test names are
# backtick sentences like every other test in the repository, so it gets the exclusion detekt
# already gives src/test.
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/*.Test.kt',
'**/*.Spec.kt', '**/*.Spek.kt', '**/kdrant-testkit/**']
# DSL helpers are grouped by concept into *Dsl.kt files (e.g. PayloadDsl.kt holds PayloadBuilder + payloadOf).
MatchingDeclarationName:
active: false
Expand Down
31 changes: 31 additions & 0 deletions kdrant-testkit/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import org.gradle.api.tasks.testing.logging.TestExceptionFormat

plugins {
alias(libs.plugins.kotlin.jvm)
}

// Not published. This module exists so both engines can be held to the same behaviour, and its only
// consumers are the two transport modules' test source sets. It carries no `mavenPublishing` block and
// is excluded from public-API tracking for that reason.

kotlin {
jvmToolchain(17)
}

dependencies {
// `api` throughout: everything here is part of what a subclass of the contract sees.
api(project(":kdrant-core"))
api(platform(libs.junit.bom))
api(libs.junit.jupiter)
api(platform(libs.testcontainers.bom))
api(libs.testcontainers.qdrant)
api(libs.kotlinx.coroutines.core)
}

tasks.test {
useJUnitPlatform()
testLogging {
events("passed", "skipped", "failed")
exceptionFormat = TestExceptionFormat.FULL
}
}
Loading