type holyshared = Engineer<mixed>

PHP、Hack、Ruby、OCaml、Rust、Javascript周りの技術ブログ

typesafety_cliのビルドツールの変更計画

CI上でテスト前の型チェックのエラーをGitHubのPRのコメントとして投稿するツールtypesafety-cliのビルドツールを変えようとしています。

具体的にはOASISからjbuilderに移行しようとしています。
開発当初はOASISで良かったのですが、以下の理由で辛く感じるようになってきました。

  1. 内部的なライブラリのビルド設定を1つのファイルに書く必要がある。
  2. 新しくライブラリを追加する際に_oasisを別途編集しなければならない。
  3. _oasisメタデータから、opam用のファイルをopam2oasisで生成するが面倒である。
  4. _oasisと.opamファイルの内容重複しているものが多い。

jbuilderはファイルをビルド単位で分割できる

下記の2つに関してjbuilderはファイルを分割できます。
またライブラリを分割したくなっても、ビルド用のファイルを追加するだけなので、変更の差分が基本的に追加だけになりそうである。

  1. 内部的なライブラリのビルド設定を1つのファイルに書く必要がある。
  2. 新しくライブラリを追加する際に_oasisを別途編集しなければならない。

.opamファイル一つでいい

OASISの場合、_oasisファイルと.opamファイルが必要になりますが、jbuilderの場合は.opamファイルだけで良いので、 リリース作業もOASISと比べて楽になりそうである。

自動化すればいんですが、あんまり自動化のための作業を増やしくたくないです。

  1. _oasisメタデータから、opam用のファイルをopam2oasisで生成するのが面倒である。
  2. _oasisと.opamファイルの内容重複しているものが多い。

OCamlのビルドツール

OCamlのビルドツールはjbuilderjengaocamlbuildOMakeOASISなどいろいろありますが、 これ使っておけばOK見たいなのがあるといいですね。

今だとOMakejbuilderになりそうですが。
OASIS使用しているプロジェクト減っている気がします。