Let's assume we have three projects (version in brackets):
A (0.0.1)
B (0.0.1), depends on A (0.0.1)
C (0.0.1), depends on B (0.0.1)
C depends on A & B.
Now we want to use this libraries as dependencies in our new project (D). So we add deps:
C (0.0.1)
Then we understand that A is missing some function, so we create it and increase version of A to 0.0.2 and add this dependency to D:
C (0.0.1)
A (0.0.2)
Sbt will complain about this deps when compiling D, something like
[warn] There may be incompatibilities among your library dependencies. [warn] Here are some of the libraries that were evicted: [warn] * A:0.0.1 -> 0.0.2
So i wonder, what's the best practice for cases like these? I thought that sbt knows about semantic versioning and understands that 0.0.1 is compatible with 0.0.2 and won't show any warnings.