Open4

aqua の go build サポートの雑まとめ

Shunsuke SuzukiShunsuke Suzuki

aqua v1.7.0 の新機能に関して、ブログを書くのが面倒なので雑に箇条書きまとめ。

https://github.com/aquaproj/aqua/releases/tag/v1.7.0
https://aquaproj.github.io/docs/reference/registry-config#go-package

  • 新しい package type go をサポート
  • package type go では、インストール時に GitHub Repository の archive をダウンロードし、 go build コマンドを実行
  • これまで aqua ではサポートできなかった build された asset が提供されていない Go 製のツールがサポートできるようになった
  • 通常、 go install で雑に最新の revision でインストールされてて version 管理がされてなかったツールもバージョン管理できるようになった
  • 当然 install するには Go が必要
  • ツールの go.mod の go directive によっては、最新の Go じゃないと build に失敗する
  • 環境依存で go build が失敗することもある
    • 個々の環境で go build が失敗したとして、それを問い合わせされてもサポートは難しい。それは aqua の問題ではない(go build の引数のバグとかであれば話は別
  • aqua は原則としてツールのインストール時に任意のコマンド実行はサポートしない方針だが、 go build に限定すれば比較的安全で問題も起こりにくいと判断して導入することにした
  • 現状 version としては tag しか指定できないが、 revision もサポートしたい。 https://github.com/aquaproj/aqua/issues/812
  • aqua は Version Manager なので、 version が固定されない branch や latest 指定はサポートしない