rules_scala
rules_scala copied to clipboard
Zinc AnalysisCache outputs are not reproducible
~The *.gz
files contain a timestamp in the gzip header (mtime).~ (See next comment for correction)
This is a problem because the apis.gz
and relations.gz
outputs are used as inputs to downstream actions.
Are those files necessary as inputs? Removing them doesn't seem to break anything, but I'm not sure what Zinc uses them for.
If they are needed, we'll need to find a reproducible way to create them.
After further investigation it is not the timestamp like I thought. Instead it's that the APIs
message has unordered elements, which are sometimes serialized in a different order.
There are used here.
I think they make incremental compilation work more effectively if it is enabled. You could ask on the Zinc Gitter. I am not certain they are necessary.
They are used for sbt test discovery in scala_test
, and they are necessary for that.