💧
なぜ aqua を使うのか
CLI ツールを YAML でバージョン管理できるツール aqua を開発しています。
demo と katacoda シナリオもあります。
※ 執筆時点での最新バージョンは aqua v0.8.6 (Standard Registry v0.12.1) です。
これまでも aqua に関する記事は幾つか書いていますが、比較する際はなるべく aqua を推しすぎないように配慮をしながら書いたのもあり、
結局 aqua の良さが伝わりにくい面もあったかなと反省しています。
なので、なぜ自分が aqua を使うのか端的に箇条書きしてみました。
なぜ aqua を使うのか
- ツールのバージョンをチーム及び CI で揃えるため
- プロジェクトに必要なツール及びバージョンをコードで宣言的に管理し、統一的な install 方法 (
aqua i
) を提供するため - CI でツールをインストールするシェルスクリプトや GitHub Actions を書きたくないため
- Renovate で簡単に update するため
- update するためのコードを極力書きたくないし、漏れなく update したい
- private repository のツールを簡単にインストールするため
asdf では駄目なのか
- asdf の plugin が提供されていないツールもある
- asdf と比べて使うのが楽
- plugin を install しなくて良い(asdf だと asdf install の前に態々 plugin をインストールする必要がある)
- 設定ファイルが更新されたら自動で install される(asdf だとコマンドが失敗する)
-
aqua g
によるツールの検索が便利 - asdf と違って、 aqua を使っているプロジェクト外で aqua による管理を強制しない(他のツールと共存できる)
- asdf と比べて新しいツールへの対応が楽
- asdf の plugin 作るより aqua-registry に PR 投げるほうがずっと楽
- 使うのが楽だし、他のツールと共存できるので、チームやプロジェクトに導入しやすい
- Renovate による update が aqua だと楽
- aqua は設定ファイルの分割もサポートしているので、 CI で特定のツールがアップデートされた場合のみ特定の build を実行するのが楽
Discussion