label | name | web | github | origin | contributors | status | type | active | priority | category | home | hide-from-homepage | description | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
scalac-direct-dependencies |
Scalac & Direct dependencies |
|
Completed |
project |
false |
-1 |
tooling |
true |
true |
Improving scalac to improve the experience for builds using direct dependencies. |
When developers or organizations want to distribute the compilation of their Scala projects, they have to send all the project dependencies across the wire. The process to send these dependencies is slower as the projects grow and it become a bottleneck for fast compiles.
It is often the case that most of those dependencies are not required for compilation because they don't leak to the public API of the Scala projects to be compiled. As a result, they can be removed from the classpath and developers can avoid the cost of sending them across the network.
This initiative consisted in the creation of a scalac plugin to detect unused classpath entries so that users can have fine-grained control on the compilation classpath, thus enabling faster distributed compilation of Scala projects. This plugin is available for both 2.12.x and 2.11.x and will be most useful to those build tools that allow you to control the library dependencies explicitly.
More information is available in the Classpath Shrinker repository.