💧

aqua Release Notes (v1.20.0 ~ v1.22.0)

2022/11/07に公開

CLI ツールを YAML でバージョン管理できるツール aqua を開発しています。

https://aquaproj.github.io/

https://zenn.dev/topics/aquaclivm

先日 aqua が v1.20.0 で checksum の検証をサポートしたことについて記事を書きました。

https://zenn.dev/shunsuke_suzuki/articles/aqua-checksum-verification

それからいくつか update を行い先日 v1.22.0 をリリースしたので、変更点を紹介します。
といっても checksum の検証ほど大きな update はありません。

  • v1.20.0
    • checksum の検証のサポート
    • aqua cp でデフォルトですべてのコマンドをコピーするようにしました
  • v1.20.1
    • update-checksum のバグ修正
  • v1.20.2
    • aqua cp でシンボリックリンクを作成しないようになりました (v1.20.0 で入ったバグの修正)
  • v1.21.0
  • v1.22.0
    • update-aqua コマンドのサポート
    • aqua g でバージョンの指定をサポート
      • スクリプトで aqua.yaml を自動生成する場合などに便利

以下の update について説明します。

  • update-aqua コマンドのサポート
  • aqua cp でデフォルトですべてのコマンドをコピーするようにしました
  • aqua g でバージョンの指定をサポート
  • overridestype を上書きできるようになりました

update-aqua コマンドのサポート

https://aquaproj.github.io/docs/tutorial-extras/update-aqua

aqua 自体を update する、 update-aqua というコマンドが追加されました。
次のコマンドで簡単に最新バージョンに update 出来るようになります。

$ aqua update-aqua

バージョンを指定して特定のバージョンにすることも可能です。 prerelease バージョンを試したい場合などに便利です。

$ aqua update-aqua v1.22.0-1

install 先は $AQUA_ROOT_DIR/bin/aqua になります。

この機会に aqua を最新にし、定期的に update-aqua を実行するようにすると良いでしょう。

aqua cp でデフォルトですべてのコマンドをコピーするようにしました

aqua cp はコマンドの実行ファイルを指定したディレクトリにコピーするコマンドです。
Docker Image のビルドでツールの install に aqua を使いたいけど、 Image に aqua は残したくない(ツールを直接 PATH 配下にインストールしたい)場合とかに便利です。

https://aquaproj.github.io/docs/tutorial-extras/build-container-image

元々 aqua cp は引数としてコピー対象のコマンドを指定する必要がありました。

$ aqua cp terraform tfcmt tfsec tflint

数が多いと列挙するのも大変ですし、コピー対象のコマンドが増えるたびに追加するのが面倒でした。
そこで、引数を指定しなければすべてのコマンドがコピーされるようになりました。

$ aqua cp

一つ一つコマンドを指定するのは面倒だけど、全部コピーされるのは困るのでフィルタリングをしたいという場合、
tag によってフィルタリングする機能が近いうちにリリースされる予定なので少々お待ち下さい。

https://github.com/aquaproj/aqua/issues/441

aqua g でバージョンの指定をサポート

aqua g コマンドでバージョンを指定できるようになりました。

$ aqua g cli/cli@v2.0.0
- name: cli/cli@v2.0.0

Renovate と aqua-renovate-config を使っている場合、バージョンを指定しても Renovate によって update されますが、これが望ましくない場合もあるでしょう。
その場合、 -pin オプションをつけると Renovate によって update されない形式で出力されます。

$ aqua g -pin cli/cli@v2.0.0
- name: cli/cli
  version: v2.0.0

あまり使う機会はないかもしれませんが、スクリプトなどで aqua.yaml を自動生成する際にバージョンを指定するといった使い方を想定しています。

overridestype を上書きできるようになりました

overridestype も override 出来るようになりました。
type を override したいユースケースはあまりないと思いますが、 Go 製のツールのビルド済みバイナリが特定のプラットフォームで提供されていない場合に go_install package を使ってそれらのプラットフォームをサポートする場合には便利です。

go_install package については下記の記事も参考にしてください。

https://zenn.dev/shunsuke_suzuki/articles/aqua-go-build-support

次の Pull Request では、 slsa-framework/slsa-verifier のビルド済みバイナリが linux/amd64 のものしか提供されていないのでそれ以外のプラットフォームでは go_isntall package を使うようにしています。

https://github.com/aquaproj/aqua-registry/pull/7157

さいごに

以上、 v1.20.0 から v1.22.0 までの update を紹介しました。
今後も幾つか update を予定しているので、またブログで紹介したいと思います。

Discussion