locationtech / geotrellis

GeoTrellis is a geographic data processing engine for high performance applications.
http://geotrellis.io
Other
1.34k stars 361 forks source link

Update SBT up 1.0v #2172

Closed pomadchin closed 6 years ago

pomadchin commented 7 years ago

Update SBT up to 1.0v after its release (current version is 1.0.0-M5), it compiles Scala using Zinc and should significantly reduce compilation times.

pomadchin commented 7 years ago

Tests against 1.0.0-M5

spark > compile
[info] Updating {file:/.../geotrellis/}proj4...
[info] Updating {file:/.../geotrellis/}util...
[info] Updating {file:/.../geotrellis/}macros...
[info] Done updating.
[info] Done updating.
[info] Done updating.
[info] Updating {file:/.../geotrellis/}vector...
[info] Done updating.
[info] Updating {file:/.../geotrellis/}raster...
[info] Updating {file:/.../geotrellis/}vectortile...
[info] Done updating.
[info] Updating {file:/.../geotrellis/}raster-testkit...
[info] Done updating.
[info] Done updating.
[info] Updating {file:/.../geotrellis/}spark...
[info] Done updating.
[info] Compiling 14 Scala sources and 139 Java sources to /.../geotrellis/proj4/target/scala-2.11/classes ...
[info] Compiling 8 Scala sources to /.../geotrellis/macros/target/scala-2.11/classes ...
[info] Compiling 15 Scala sources and 1 Java source to /.../geotrellis/util/target/scala-2.11/classes ...
[info] Done compiling.
[info] /.../geotrellis/proj4/src/main/java/org/osgeo/proj4j/io/Proj4FileReader.java: Some input files use unchecked or unsafe operations.
[info] /.../geotrellis/proj4/src/main/java/org/osgeo/proj4j/io/Proj4FileReader.java: Recompile with -Xlint:unchecked for details.
[info] Done compiling.
[info] Compiling 84 Scala sources and 1 Java source to /.../geotrellis/vector/target/scala-2.11/classes ...
[info] Done compiling.
[info] Done compiling.
[info] Compiling 11 Scala sources to /.../geotrellis/vectortile/target/scala-2.11/classes ...
[info] Compiling 418 Scala sources to /.../geotrellis/raster/target/scala-2.11/classes ...
[info] Done compiling.
[warn] there were 52 inliner warnings; re-run with -Yinline-warnings for details
[warn] one warning found
[info] Done compiling.
[info] Compiling 327 Scala sources to /.../geotrellis/spark/target/scala-2.11/classes ...
[info] Done compiling.
[info] Total time: 152 s, completed May 19, 2017 9:35:47 AM
// to compare, using the current sbt compile time is 215s+ of the same thing on my laptop; not too bad

There are still problems with old sbt plugins support (as sbt 1.0.0+ requires all plugins to have Scala version 12.0+).

To track down update see this branch (not supported plugins were commented out).

pomadchin commented 7 years ago

https://github.com/sbt/sbt/wiki/sbt-1.x-plugin-migration

pomadchin commented 7 years ago

SBT 1.0 Branch works, only dep graph plugin still doesn't support SBT 1.0 but it will be released soon.

pomadchin commented 7 years ago

Dep graph plugin of version 0.8.3-SNAPSHOT is released, but contains come bugs. I'm tracking this, to create an SBT 1.0 PR.

metasim commented 7 years ago

They should just roll the dep graph plugin right into the main code base.

pomadchin commented 7 years ago

https://github.com/jrudolph/sbt-dependency-graph/releases/tag/v0.9.0 Here it is

fosskers commented 7 years ago

Also, GeoTrellis has some custom code somewhere that alters our SBT prompt. SBT 1.0 has this behaviour built-in (e.g. it displays what subproject you're in), so we can remove our custom code.