Skip to content

Compatibility

This page covers language and framework versions. For the database and driver test matrix, see Supported Platforms.

API stability policy

Since version 1.0.0, Kuery Client follows Semantic Versioning. Backward-incompatible changes to the public API are only introduced in major releases.

The public API surface is verified mechanically: Kotlin's explicit API mode and the Kotlin Gradle plugin's ABI validation run in CI, so unintended API changes are caught before release.

The following are not covered by the compatibility guarantee:

  • Declarations annotated with @KueryClientInternalApi. These are internal APIs that are technically public only because they are shared across Kuery Client modules.
  • kuery-client-compiler internals. The compiler plugin depends on Kotlin compiler internal APIs and its implementation may change at any time.

Declarations annotated with @DelicateKueryClientApi (such as addUnsafe() and bind()) are covered by the guarantee, but require care in use as documented.

Kotlin version policy

kuery-client-compiler (applied automatically via the Gradle plugin) depends on the Kotlin compiler's internal IR APIs, which can change between Kotlin releases. Therefore, please align the Kotlin version of your project with the Kotlin version listed in the table below for the kuery-client version you use.

When a new Kotlin version is released, we follow up with a kuery-client release built against it (as a minor or patch release, as long as there are no other breaking changes).

Java version

Kuery Client is built with a Java 17 toolchain, so Java 17 or later is required at runtime.

Gradle version

The Gradle plugin supports Gradle 8.4 or later — the first version where the Kotlin DSL property assignment syntax used throughout this documentation (e.g. autoTrimIndent = true) is enabled by default. The minimum version is exercised in CI by running the published plugin against it, so it only changes deliberately and will be noted here when it does.

Compatibility matrix

The following table lists the versions of Kotlin, Spring Boot, and Spring Data that each kuery-client release was built against. Aligning your project's dependencies with the versions listed below is recommended for the best compatibility.

kuery-clientKotlinSpring BootSpring Data
1.2.02.4.104.1.04.1.0
1.1.02.4.104.1.04.1.0
1.0.02.4.104.1.04.1.0
0.17.02.4.04.1.04.1.0
0.16.02.4.04.0.64.0.5
0.15.02.3.214.0.64.0.5
0.14.02.3.214.0.64.0.5
0.13.02.3.104.0.34.0.3
0.12.02.3.103.5.103.5.9
0.11.02.2.203.5.63.5.4
0.10.02.2.03.5.33.5.1
0.9.12.1.213.5.33.5.1
0.9.02.1.213.5.03.5.0
0.8.02.1.213.4.53.4.5
0.7.22.0.213.4.43.4.4
0.7.12.0.213.4.23.4.2
0.7.02.0.213.4.13.4.1
0.6.12.0.213.4.13.4.1
0.6.02.0.213.3.63.4.1
0.4.11.9.243.3.13.3.1
0.4.01.9.243.3.13.3.1
0.3.01.9.243.3.03.3.1
0.2.11.9.243.3.03.3.1
0.2.01.9.243.3.03.3.1
0.1.11.9.243.3.03.3.1
0.1.01.9.243.3.03.3.1
0.0.11.9.243.2.63.2.6