Skip to content

Reorder subproject dependencies #286

@jvican

Description

@jvican

The current state of the subproject dependencies affect us in two ways:

  1. CI is slow because we cannot easily parallelize compilation and test execution.
  2. 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:
projects-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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions