注目★★★★★Lobsters
Nix の依存地獄を解消、11,975 個を束ねる omniflake
30秒で把握
- 1fzakaria が約11,975個のNix flakeをomniflakeに集約
- 2必要なflakeだけ遅延取得し、lock時間を約1.5秒に短縮
- 3入力を5つに限定し、依存グラフの重複を統合
要約
fzakaria は、約 11,975 個の Nix flake を 1 つの入力に束ねる omniflake を作成した。disko などを個別に追加して follows を設定する手間を省き、必要な flake だけを遅延評価で取得できる。omniflake 自体が宣言する入力は 5 つで、nix flake lock は約 1.5 秒、6 ノードだけを継承し、未使用の flake はダウンロードしない。各 flake の pin を JSONL に保持し、要求時に元の flake.lock と同様に依存関係を解決する。大量入力で発生したロック処理の二次時間計算量も NixOS/nix#16387 で修正され、4,000 入力時に約 21 倍高速化した。
あなたへの影響
NixOS の構成管理で多数の flake を使う日本のエンジニアは、omniflake を検証環境に導入し、依存関係の統合方針と pinned 構成の差を確認するとよい。
推奨:必要な flake だけを取得する設計はロック時間短縮につながり得るため、既存の個別 input 構成との再現性を比較してから採用したい。