runIvyDeps are currently not transitive. Should they be? #3722
Replies: 2 comments 9 replies
-
IIRC one goal was that artifacts published to maven central and used via We probably aren't 100% strict in adhering to that equivalence relationship, but IIRC that was one of the considerations when making it and |
Beta Was this translation helpful? Give feedback.
-
Related to this, from what I understand maven allows you to specify the scope of module dependencies, which is why they have the matrix in their documentation. Basically a AFAIK Mill doesn't do anything like that and I'm not even sure it's a good idea, but is it something that has been considered? |
Beta Was this translation helpful? Give feedback.
-
Let's say we have the modules
A <- B <- C
where<-
denotes a "depends on" relationshipSo
C
introduces slf4j andB
a logging implementation.mill A.ivyDepsTree --withRuntime
showsWhile the example may seem a little contrived—why not define the runtime dependency in the A module?—this has consequences with for instance assemblies. At work we have a project of several Spark applications (as separate modules) that are packaged into one single assembly for easy shipping. These modules have different but non-conflicting [runtime] dependencies, and the assembly won't collect the runtime parts without overriding for instance
transitiveIvyDeps
(which solves one level of transitivity—it has to be overridden in all modules to include "deep" runIvyDeps.)Aside from backwards compatibility, would making runIvyDeps transitive be an issue?
Beta Was this translation helpful? Give feedback.
All reactions