Skip to content
Latchkey

決定論的ビルドとは?

決定論的ビルドは、その出力が入力のみに依存する build であり、同一の入力で繰り返すと同一の出力が得られます。これを実現するには、埋め込まれた build の timestamp、非決定的なファイル順序、絶対パス、制御されない並列性といった非決定性の原因を排除する必要があります。決定論は caching と検証を信頼できるものにします。

なぜ重要か

build が実行ごとに変わると、cache はその出力を安全に再利用できず、正直な build であっても reproducible build の検証は失敗します。決定論は、build cache、インクリメンタルビルド、来歴チェックのすべてを信頼できるものにする実用的な特性です。

関連する概念

  • reproducible build と安全な caching の前提条件
  • timestamp、パス、順序の非決定性を取り除く
  • hermetic build と密接に結びついている

関連ガイド