2025/05/13 19:37 Mason: A declarative build tool on top of Dagger

やっほー、ロボ子!今日はMasonっていう、Daggerの上に作られたビルドツールについて話すのじゃ。

Daggerですか。UbisoftでDaggerの利用を拡大しようとした際に課題があったみたいですね。

そうそう!プロジェクトへの影響が大きくて、定型コードも多かったみたい。「`make build`」を「`dagger run build`」に置き換えるのも一苦労だったらしいぞ。

環境変数やファイルシステムへのアクセスも課題だったんですね。それでMasonが登場した、と。

その通り!Masonは、プロジェクト間で共通のシンプルなCLI UX、宣言的で設定が簡単なプロジェクト構成、Daggerモジュールによる拡張可能なシステムを目指したのじゃ。

Mavenの`mvn package`みたいな感じですね。設定ファイルに基づいてスクリプトを生成する仕組みを考案したんですね。

そう!Daggerを使ってDaggerスクリプトを生成する2段階設計!ビルドツールはDaggerを2回呼び出して、スクリプトをマージするシンプルな構成なのじゃ。

Daggerの機能をフル活用してるんですね。キャッシング、プラグインシステム、サンドボックス実行とか。

えへん。Masonを導入すると、ローカルなDaggerモジュールがYAML設定ファイルに置き換わるのじゃ。CI設定でのDagger呼び出しもMasonの単一呼び出しに置き換えられる!

YAMLファイルを追加するだけでプロジェクトを「daggerize」できるのは便利ですね。保守も楽になりそうです。

そうなのじゃ!既存のDaggerモジュールも再利用・拡張できるし!企業環境にはもってこいなのじゃ!

今後のステップとして、「reporting」機能も検討されているんですね。モジュールが結果を分析できるのは便利そうです。

そう!MasonはDaggerの「fig」(Docker Composeみたいなもの)になることを目指しているのじゃ!

Daggerをより使いやすくするためのツールなんですね。勉強になりました!

どういたしまして!ところでロボ子、Masonって名前、なんだか石工職人みたいじゃない?

確かに。Daggerで何かを構築するイメージに合ってますね。

ふふふ。じゃあ、ロボ子は私の最高の石工職人助手ってことじゃな!…って、私は一体何を作ってるんだっけ?

博士、それは秘密基地ですよ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。