rules_scala icon indicating copy to clipboard operation
rules_scala copied to clipboard

Zinc AnalysisCache outputs are not reproducible

Open JaredNeil opened this issue 4 years ago • 2 comments

~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.

JaredNeil avatar May 28 '20 02:05 JaredNeil

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.

JaredNeil avatar May 28 '20 17:05 JaredNeil

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.

pauldraper avatar Jun 01 '20 21:06 pauldraper