決定論的ビルドとは?
決定論的ビルドは、その出力が入力のみに依存する build であり、同一の入力で繰り返すと同一の出力が得られます。これを実現するには、埋め込まれた build の timestamp、非決定的なファイル順序、絶対パス、制御されない並列性といった非決定性の原因を排除する必要があります。決定論は caching と検証を信頼できるものにします。
なぜ重要か
build が実行ごとに変わると、cache はその出力を安全に再利用できず、正直な build であっても reproducible build の検証は失敗します。決定論は、build cache、インクリメンタルビルド、来歴チェックのすべてを信頼できるものにする実用的な特性です。
関連する概念
- reproducible build と安全な caching の前提条件
- timestamp、パス、順序の非決定性を取り除く
- hermetic build と密接に結びついている
関連ガイド
What Is a Reproducible Build?A reproducible build produces bit-for-bit identical output every time from the same source, letting anyone in…
What Is a Hermetic Build?A hermetic build depends only on explicitly declared, pinned inputs and is isolated from the host, so it prod…
What Is an Incremental Build?An incremental build recompiles only the parts of a project affected by a change, reusing prior outputs for e…