このプロジェクトについて
Reprobuildは、Dockerfile、Nix flakes、Makefile、CIパイプラインなどの断片的なツールを、単一のコンパイル時検証済みビルドグラフで置き換える統合ビルドシステムです。その核心となる革新性は、ファイルだけでなく、実行中のサービス、システム設定、クラウドリソースなどの「状態」をグラフのノードとしてモデル化することにあります。これにより、ビルド、開発環境、インフラストラクチャ全体で一貫したキャッシュ、密閉性(hermeticity)、およびロールバックが可能になります。
主な機能には、ファイルシステム監視(io-mon経由)による依存関係の自動検出、相互依存するプロジェクト間でのホットコードリロード(例:FirefoxをビルドしながらCairoを編集する)、および`repro develop`によるセットアップ不要の開発環境構築が含まれます。プロジェクトは型付きのNim DSL(`repro.nim`)で定義され、IDEサポートや、ツールバージョン、ビルドステップ、サービス構成のコンパイル時検証を実現します。
Windows、Linux、macOSをサポートし、Terraformプロバイダーと統合されており、分散ビルドとテストシャーディングを提供します。BazelやNixとは異なり、デーモンやリモートサービスを必要とせず、単一のネイティブバイナリとして提供されます。Reprobuildは、入力のコンテンツアドレッシング、バイト単位での出力等価性の検証、およびSBOMとアテステーションの自動生成により、再現性を強制します。
また、同じグラフモデルを使用して完全にソースから構築されたLinuxディストリビューションであるReproOSの基盤にもなっています。CLIコマンドは、ビルド、テスト、サービス管理、ワークスペース同期、およびローカルインフラ管理をカバーしています。本システムはMITライセンスで提供されており、ホスト型キャッシュやエンタープライズ利用向けのオプションとして商用サービスも提供しています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.