Replies: 2 comments 2 replies
-
Another option: If we moved this behavior out of pack (or made it not the default) I think it's possible to manually change file properties (such as mtime). In another discussion I proposed a language-independent lint tool that could possibly help catch such issues: run a build, grab all image SHAs, do another build and compare image SHAs then warn/error on the results. I think having consistent image SHAs is really valuable for any app-independent layers such as the Ruby or Node binary layer which could (in theory) be safely shared. |
Beta Was this translation helpful? Give feedback.
-
Question: The Ruby buildpack uses mtime of files to determine least recently used assets. Is that silently broken due to this current behavior? |
Beta Was this translation helpful? Give feedback.
-
Mentioned in #6 (comment). A user might want to know "I built 5 images and can't remember which one was 5 minutes ago and which was 5 days ago" and want to use creation time to answer that question. However, this is not a bug, and pack is doing this intentionally, as @runesoerensen mentioned https://github.com/buildpacks/spec/blob/platform/0.13/platform.md#build-reproducibility.
At a minimum we could call out this behavior in our tutorials. We've been talking about it internally here's some observations:
Also mentioned, that
zip
has date compatibility constraints https://github.com/heroku/buildpacks-python/blob/de378063c83e1eec6302e79f93f189162b5bbbbf/src/layers/python.rs#L416-L419.Beta Was this translation helpful? Give feedback.
All reactions