Hi, any idea why I’m getting these dependency vers...
# kotlin-toolchain
s
Hi, any idea why I’m getting these dependency version override warnings (using the latest dev version), even though I’ve explicitly set the versions to
0.8.0
?
Copy code
╭─ WARNING: Declared version 0.8.0 of dependency org.jetbrains.kotlinx:kotlinx-datetime is overridden, the actual version is 0.8.0-0.6.x-compat.
    │ → module.yaml:112:5
message has been deleted
a
hi @suresh It seems that
0.8.0-0.6.x-compat
is meant to be used instead of
0.8.0
whenever it is presented in the graph.
direct dependency doesn't force the version, it is a subject of conflict resolution as well as all other dependencies are
thank you color 1
s
Got it..By the way, do we have any documentation on how dependency resolution works in the Kotlin Toolchain, including things like conflict resolution strategy?
AI shows the following .is this correct?
Copy code
Maven
Nearest-wins (shallowest depth; first-declared breaks ties)

Gradle
Highest-version-wins across the whole graph

Kotlin Toolchain
Highest-version-wins (Gradle-style), built on top of Maven Resolver's graph machinery, with BOM versions deferred into the same comparison once resolved
Would be great if we can add some documentation on this.
a
everything is true except this > built on top of Maven Resolver's graph machinery We have our own resolution implemented inside
dependency-resolution
module of the project. It takes Maven/Gradle metadata into account.
> with BOM versions deferred into the same comparison once resolved this is true, version declared in BOMs are applied to the module graph (the same way as platform or maven BOM in Gradle)
> By the way, do we have any documentation on how dependency resolution works in the Kotlin Toolchain, including things like conflict resolution strategy? no, we doesn't have a detailed public documentation on that yet, but the main principle regarding conflicts is the same as in Gradle - highest wins
thank you color 1