CI上でテスト前の型チェックのエラーをGitHubのPRのコメントとして投稿するツールtypesafety-cliのビルドツールを変えようとしています。
具体的にはOASISからjbuilderに移行しようとしています。
開発当初はOASISで良かったのですが、以下の理由で辛く感じるようになってきました。
- 内部的なライブラリのビルド設定を1つのファイルに書く必要がある。
- 新しくライブラリを追加する際に_oasisを別途編集しなければならない。
- _oasisのメタデータから、opam用のファイルをopam2oasisで生成するが面倒である。
- _oasisと.opamファイルの内容重複しているものが多い。
jbuilderはファイルをビルド単位で分割できる
下記の2つに関してjbuilderはファイルを分割できます。
またライブラリを分割したくなっても、ビルド用のファイルを追加するだけなので、変更の差分が基本的に追加だけになりそうである。
- 内部的なライブラリのビルド設定を1つのファイルに書く必要がある。
- 新しくライブラリを追加する際に_oasisを別途編集しなければならない。
.opamファイル一つでいい
OASISの場合、_oasisファイルと.opamファイルが必要になりますが、jbuilderの場合は.opamファイルだけで良いので、 リリース作業もOASISと比べて楽になりそうである。
自動化すればいんですが、あんまり自動化のための作業を増やしくたくないです。
OCamlのビルドツール
OCamlのビルドツールはjbuilder、jenga、ocamlbuild、OMake、OASISなどいろいろありますが、 これ使っておけばOK見たいなのがあるといいですね。