Hi all, I would like to introduce a new tool I have developed that may be of interest to this community: stampdalf.
Repository: https://github.com/89luca89/stampdalf stampdalf is a simple command-line utility written in Go that wraps arbitrary commands and ensures filesystem timestamp reproducibility. The tool addresses a common challenge in reproducible builds: commands that modify files often update their access and modification times as a side effect, even when the actual content remains unchanged or is modified in a reproducible way (for example idempotent commands). This can lead to non-reproducible build artifacts. How it works: - Before executing the wrapped command, stampdalf scans the target directory tree and records all file timestamps (atime/mtime) - The specified command is then executed normally. - After command completion, stampdalf restores the original timestamps for all pre-existing files. Any newly created files are set to Unix epoch by default, or to SOURCE_DATE_EPOCH if the environment variable is set. Example usage: stampdalf --cd ./project make build SOURCE_DATE_EPOCH=1609459200 stampdalf --cd ./dist npm run build The tool is intentionally minimal and has no external dependencies beyond the Go standard library. It compiles to a single standalone binary so it's easy to deploy and it's portable. I welcome any feedback, suggestions, or contributions from the community. Best regards, L.
signature.asc
Description: This is a digitally signed message part
