Hi
I used this branch and it works for me (I know that incremental compilation issue will be fixed, so it's not a problem ATM)
First, I would change Zinc version from "0.3.10-SNAPSHOT" to eg. "0.4.0-SNAPSHOT" (or "0.4-SNAPSHOT") because of huge internal changes.
As I wrote before, I have problems with dependencies:
1. `sbinary`
Sbinary is not available in Maven central repository. I had to install it locally. It's used by `incrementalcompiler-persist` module. I wonder where. Analysis cache file format hasn't changed since SBT 0.13.9, `sbinary` is used in classes handling analysis cache persistence, but it wasn't used in 0.13.9. Anyway, I cannot exclude it.
2. zinc's runtime dependency tree is very large comparing it to previous version.
Zinc 0.3.9 deps:
+- com.typesafe.zinc:zinc:jar:0.3.9:compile
+- org.scala-lang:scala-library:jar:2.10.5:compile
+- com.typesafe.sbt:incremental-compiler:jar:0.13.9:compile
| +- org.scala-lang:scala-compiler:jar:2.10.5:compile
| | \- org.scala-lang:scala-reflect:jar:2.10.5:compile
| \- com.typesafe.sbt:sbt-interface:jar:0.13.9:compile
\- com.typesafe.sbt:compiler-interface:jar:sources:0.13.9:compile
Zinc 0.3.10-SNAPSHOT deps:
+- com.typesafe.zinc:zinc:jar:0.3.10-SNAPSHOT:compile
+- org.scala-lang:scala-library:jar:2.10.5:compile
+- org.scala-sbt:incrementalcompiler_2.10:jar:0.1.0-M1:compile
| +- org.scala-sbt:incrementalcompiler-core_2.10:jar:0.1.0-M1:compile
| | +- org.scala-sbt:incrementalcompiler-apiinfo_2.10:jar:0.1.0-M1:compile
| | +- org.scala-sbt:incrementalcompiler-classpath_2.10:jar:0.1.0-M1:compile
| | \- org.scala-sbt:util-relation_2.10:jar:0.1.0-M6:compile
| +- org.scala-sbt:incrementalcompiler-persist_2.10:jar:0.1.0-M1:compile
| | \- org.scala-tools.sbinary:sbinary_2.10:jar:0.4.2:compile
| +- org.scala-sbt:incrementalcompiler-compile-core_2.10:jar:0.1.0-M1:compile
| | +- org.scala-sbt:launcher-interface:jar:1.0.0-M1:compile
| | +- org.scala-sbt:util-logging_2.10:jar:tests:0.1.0-M6:compile
| | \- org.scala-sbt:util-control_2.10:jar:0.1.0-M6:compile
| +- org.scala-sbt:incrementalcompiler-classfile_2.10:jar:0.1.0-M1:compile
| \- org.scala-sbt:incrementalcompiler-ivy-integration_2.10:jar:0.1.0-M1:compile
| \- org.scala-sbt:librarymanagement_2.10:jar:0.1.0-M2:compile
| +- org.scala-sbt:io_2.10:jar:tests:1.0.0-M3:compile
| +- org.scala-sbt:util-collection_2.10:jar:0.1.0-M3:compile
| +- org.scala-sbt.ivy:ivy:jar:2.3.0-sbt-927bc9ded7f8fba63297cddd0d5a3d01d6ad5d8d:compile
| +- com.jcraft:jsch:jar:0.1.46:compile
| \- org.scala-sbt:serialization_2.10:jar:0.1.2:compile
| +- org.scala-lang.modules:scala-pickling_2.10:jar:0.10.1:compile
| | \- org.scalamacros:quasiquotes_2.10:jar:2.0.1:compile
| +- org.json4s:json4s-core_2.10:jar:3.2.10:compile
| | +- org.json4s:json4s-ast_2.10:jar:3.2.10:compile
| | \- com.thoughtworks.paranamer:paranamer:jar:2.6:compile
| +- org.spire-math:jawn-parser_2.10:jar:0.6.0:compile
| \- org.spire-math:json4s-support_2.10:jar:0.6.0:compile
+- org.scala-sbt:compiler-interface:jar:0.1.0-M1:compile
| \- org.scala-sbt:util-interface:jar:0.1.0-M6:compile
+- org.scala-sbt:compiler-bridge_2.10:jar:sources:0.1.0-M1:compile
| +- org.scala-lang:scala-compiler:jar:2.10.5:compile
| | \- org.scala-lang:scala-reflect:jar:2.10.5:compile
| +- org.scala-sbt:io_2.10:jar:1.0.0-M3:compile
| \- org.scala-sbt:util-logging_2.10:jar:0.1.0-M6:compile
| \- jline:jline:jar:2.11:compile
\- org.scala-sbt:compiler-bridge_2.11:jar:sources:0.1.0-M1:compile
+- org.scala-sbt:io_2.11:jar:1.0.0-M3:compile
\- org.scala-sbt:util-logging_2.11:jar:0.1.0-M6:compile
I tried to reduce this tree by excluding subtrees in Maven:
a) org.scala-sbt:incrementalcompiler-ivy-integration_2.10
b) org.scala-sbt:compiler-bridge_2.10
c) org.scala-sbt:compiler-bridge_2.11
and it works, reduced dependency tree:
+- com.typesafe.zinc:zinc:jar:0.3.10-SNAPSHOT:compile
+- org.scala-lang:scala-library:jar:2.10.5:compile
+- org.scala-sbt:incrementalcompiler_2.10:jar:0.1.0-M1:compile
| +- org.scala-sbt:incrementalcompiler-core_2.10:jar:0.1.0-M1:compile
| | +- org.scala-sbt:incrementalcompiler-apiinfo_2.10:jar:0.1.0-M1:compile
| | +- org.scala-sbt:incrementalcompiler-classpath_2.10:jar:0.1.0-M1:compile
| | | \- org.scala-lang:scala-compiler:jar:2.10.5:compile
| | | \- org.scala-lang:scala-reflect:jar:2.10.5:compile
| | +- org.scala-sbt:io_2.10:jar:1.0.0-M3:compile
| | +- org.scala-sbt:util-logging_2.10:jar:0.1.0-M6:compile
| | | \- jline:jline:jar:2.11:compile
| | \- org.scala-sbt:util-relation_2.10:jar:0.1.0-M6:compile
| +- org.scala-sbt:incrementalcompiler-persist_2.10:jar:0.1.0-M1:compile
| | \- org.scala-tools.sbinary:sbinary_2.10:jar:0.4.2:compile
| +- org.scala-sbt:incrementalcompiler-compile-core_2.10:jar:0.1.0-M1:compile
| | +- org.scala-sbt:launcher-interface:jar:1.0.0-M1:compile
| | +- org.scala-sbt:util-logging_2.10:jar:tests:0.1.0-M6:compile
| | \- org.scala-sbt:util-control_2.10:jar:0.1.0-M6:compile
| \- org.scala-sbt:incrementalcompiler-classfile_2.10:jar:0.1.0-M1:compile
\- org.scala-sbt:compiler-interface:jar:0.1.0-M1:compile
\- org.scala-sbt:util-interface:jar:0.1.0-M6:compile
- excluding `incrementalcompiler-ivy-integration` reduced deps tree largely. Is it really needed in runtime?
- what about `compiler-bridge` dependencies, why are they present? They should be resolved dynamically (at least I do so on Maven side)
- what about `jline` (I didn't try to remove it yet)?
- what is `launcher-interface` for?
- `org.scala-sbt:util-logging_2.10:jar:tests:0.1.0-M6` looks weird, this should be test-scoped dependency, but has default scope in pom file (
http://repo1.maven.org/maven2/org/scala-sbt/incrementalcompiler-compile-core_2.10/0.1.0-M1/incrementalcompiler-compile-core_2.10-0.1.0-M1.pom)
Comment my findings, please, if you have time.
Cheers
Grzegorz