-
Notifications
You must be signed in to change notification settings - Fork 127
Closed
Description
The current state of the subproject dependencies affect us in two ways:
- CI is slow because we cannot easily parallelize compilation and test execution.
- Cross-compilation of projects is inconsistent.
[zinc Root@1.0]> crossScalaVersions
[info] zinc/*:crossScalaVersions
[info] List(2.11.8, 2.12.1)
[info] zincTesting/*:crossScalaVersions
[info] List(2.11.8, 2.12.1)
[info] zincBenchmarks/*:crossScalaVersions
[info] List(2.11.8, 2.12.1)
[info] zincCore/*:crossScalaVersions
[info] List(2.11.8, 2.12.1)
[info] zincCompileCore/*:crossScalaVersions
[info] List(2.11.8, 2.12.1)
[info] compilerBridge/*:crossScalaVersions
[info] List(2.12.1, 2.11.8, 2.10.6)
[info] zincClassfile/*:crossScalaVersions
[info] List(2.12.1, 2.11.8, 2.10.6)
[info] zincPersist/*:crossScalaVersions
[info] List(2.11.8, 2.12.1)
[info] zincClasspath/*:crossScalaVersions
[info] List(2.12.1, 2.11.8, 2.10.6)
[info] compilerInterface/*:crossScalaVersions
[info] List(2.12.1)
[info] zincCompile/*:crossScalaVersions
[info] List(2.11.8, 2.12.1)
[info] zincScripted/*:crossScalaVersions
[info] List(2.11.8, 2.12.1)
[info] zincIvyIntegration/*:crossScalaVersions
[info] List(2.11.8, 2.12.1)
[info] zincApiInfo/*:crossScalaVersions
[info] List(2.12.1, 2.11.8, 2.10.6)
[info] zincRoot/*:crossScalaVersions
[info] List(2.11.8, 2.12.1)
@dwijnand has provided this graph:

In it, we can see that the compiler bridge tests depend on zincApiInfo and zincClassfile, and that's the reason why those projects have to cross-compile to 2.10.
A way to solve this issue would be to disentagle the dependencies between the projects by moving the necessary bits to independent projects or even to the dependent projects, depending on the nature of the code.
This issue was pointed out by @smarter.
Reactions are currently unavailable