Skip to content
Latchkey

Deterministic Timestamp とは何か?

deterministic timestamp とは、通常は最新の commit 日付などソースから導出される固定の時刻値で、build が現在のシステム時計の時刻の代わりに埋め込むものです。値は入力のみに依存するため、同じソースの 2 つの build は同じ timestamp を埋め込みます。これは、再現不能な出力の最も一般的な原因の 1 つを取り除きます。

なぜ重要か

実際の現在時刻を埋め込むと、ソースに何の変更がなくてもすべての build が異なってしまい、再現性と cache hit が損なわれます。timestamp をソース由来の値に固定すれば、artifact は rebuild をまたいで同一に保たれます。その値をツールに供給する慣例的な方法が SOURCE_DATE_EPOCH 変数です。

関連ガイド