4 ms·
> Well, debian sets the "version.BuildTime" option when it compiles it to a constant value each time it compiles it: https://salsa.debian.org/go-team/packages/d
by KronisLV 4y ago
> Well, debian sets the "version.BuildTime" option when it compiles it to a constant value each time it compiles it: https://salsa.debian.org/go-team/packages/docker/-/blob/4f1f https://salsa.debian.org/go-team/packages/docker/-/blob/4f1f...
I feel like I understand why this is done, but it still feels extremely odd. We're making tools and such lie to us in the pursuit of reproducibility and oftentimes this means erasing certain information, that we might be interested in actually keeping!
Surely, we should be able to do better than that, something like:
/my-package
/reproducible
[CONSISTENT_BUILD_OUTPUT_FOR_CODE_INPUT]
/non-reproducible
build-time.txt
build-system-information.txt
build-log-with-timestamps.txt
build-package-mirrors-that-were-contacted.txt
build-step-timing-information-and-traces.txt
[OTHER_STUFF_GOES_HERE]
Of course, I don't think I can answer the question for where information like this should go for every tech stack and package type out there.
That said, it's absolutely annoying to build a container image with Jib (just an example from when I last tried) and then see in Docker that its build time was supposedly decades ago. While having incorrect timestamps isn't the worst thing ever, I can imagine other pieces of information mattering more.
- Hizonner 4y agoIf you have reproducible binaries, then you don't care about the build time, because all builds of the same version will be identical, regardless of when they were made. The simpler solution is to leave the build time out of the binary/package/whatever entirely.