SOURCE_DATE_EPOCH とは何か?
SOURCE_DATE_EPOCH は、build ツールが現在時刻の代わりに使う Unix timestamp を運ぶ、広く採用された環境変数です。設定されると、準拠するコンパイラ、archiver、packager はその固定値を埋め込むため、出力は build を実行した時刻によって変わりません。これは reproducible-builds の取り組みの中核的な慣例です。
なぜ重要か
多くのツールはデフォルトで出力にシステム時計を刻印し、それが再現性を静かに壊します。SOURCE_DATE_EPOCH を尊重すれば、代わりに使うべき唯一の正規の時刻が与えられます。CI で commit 時刻などソース由来の値に設定すると、artifact は runner をまたいでバイト単位で同一になります。これは再現可能な build に向けた最も安価なステップの 1 つです。
関連ガイド
What Is a Deterministic Timestamp?A deterministic timestamp is a fixed, source-derived time used in a build instead of the wall clock, so outpu…
What Is Build Reproducibility?Build reproducibility is the property that building the same source in the same environment yields a bit-for-…
What Are Vendored Dependencies?Vendored dependencies are third-party packages committed directly into a project's repository so builds do no…