aqua Release Notes (v1.20.0 ~ v1.22.0)
CLI ツールを YAML でバージョン管理できるツール aqua を開発しています。
先日 aqua が v1.20.0 で checksum の検証をサポートしたことについて記事を書きました。
それからいくつか 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
-
overrides
でtype
を上書きできるようになりました- Go でビルド済みバイナリが提供されていない環境でも go_install を使ってサポートできる
-
- v1.22.0
- update-aqua コマンドのサポート
- aqua g でバージョンの指定をサポート
- スクリプトで aqua.yaml を自動生成する場合などに便利
以下の update について説明します。
- update-aqua コマンドのサポート
- aqua cp でデフォルトですべてのコマンドをコピーするようにしました
- aqua g でバージョンの指定をサポート
-
overrides
でtype
を上書きできるようになりました
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 配下にインストールしたい)場合とかに便利です。
元々 aqua cp は引数としてコピー対象のコマンドを指定する必要がありました。
$ aqua cp terraform tfcmt tfsec tflint
数が多いと列挙するのも大変ですし、コピー対象のコマンドが増えるたびに追加するのが面倒でした。
そこで、引数を指定しなければすべてのコマンドがコピーされるようになりました。
$ aqua cp
一つ一つコマンドを指定するのは面倒だけど、全部コピーされるのは困るのでフィルタリングをしたいという場合、
tag によってフィルタリングする機能が近いうちにリリースされる予定なので少々お待ち下さい。
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 を自動生成する際にバージョンを指定するといった使い方を想定しています。
overrides
で type
を上書きできるようになりました
overrides で type
も override 出来るようになりました。
type
を override したいユースケースはあまりないと思いますが、 Go 製のツールのビルド済みバイナリが特定のプラットフォームで提供されていない場合に go_install package を使ってそれらのプラットフォームをサポートする場合には便利です。
go_install package については下記の記事も参考にしてください。
次の Pull Request では、 slsa-framework/slsa-verifier のビルド済みバイナリが linux/amd64 のものしか提供されていないのでそれ以外のプラットフォームでは go_isntall package を使うようにしています。
さいごに
以上、 v1.20.0 から v1.22.0 までの update を紹介しました。
今後も幾つか update を予定しているので、またブログで紹介したいと思います。
Discussion