rules_scala
rules_scala copied to clipboard
Use Zinc for dependency checking
trafficstars
This issue is part of a broader proposal to merge some of the features in lucidsoftware/rules_scala into this ruleset.
The tracking issue for this effort
The relevant proposal section.
If we compiled with Zinc, we could use Zinc's analysis file to check for unused dependencies and used transitive dependencies not declared as direct dependencies. You can read the details of the proposed architecture, its pros and cons, and a comparison between it and the existing architecture here.
TL;DR is that by using Zinc for dependency checking, we can:
- Greatly simplify this repository's dependency checking code
- No longer have to patch the compiler to report which depedendencies were used. This should enable any compiler to be used with the ruleset, regardless of this repository's support for it
- No longer have to rely on a compiler plugin for dependency checking
- Move dependency checking to a worker and make it a validation action, speeding up compilation