tap / caskを整理した

色々ぐちゃぐちゃとPythonやSwiftで書いてるんだけど、

brew tap rioriost/my_module
brew intall my_module

3連休の合間を縫って、この形式をやめて整理した。

# tap
brew install rioriost/tap/my_module
# cask
brew intall --cask rioriost/cask/my_module

んで、このリリース形式に合わせるために、ツールを2つ作った。

1つはFormulaを生成するツールで、依存関係をたどって、プラットフォーム(macOS / Linux)とCPU(x86_64 / arm64)それぞれの組み合わせに適したモジュールと、インストール方法を自動的に生成するgenformulaというコマンド。経験的に、こう書けばこのモジュールはインストールできる、みたいな曖昧なFormulaの書き方をしてたけど、やめた。

もう1つはリリース用のツールで、ビルドまでは各プロジェクトの責務にして、そのビルドの成果物(tar.gzとか他のバイナリ)が定義されたrelease.tomlを読み込んで、PyPI / GitHub releaseを作り、rioriost/homebrew-tapかrioriost/homebrew-caskにFormulaをpushするshipというコマンド。dry-runするとチェックするようにしたので、事故も減るはず。

GitHub Actionでやるという手もあるんだけど、結局のところPythonを書かないとならないので、ローカルで回るようにした。

タイトルとURLをコピーしました