Update of aqua CLI Version Manager in 2022
Published: 2023-01-16 13:25:34

In this post, I describe the update of [aqua](https://aquaproj.github.io/) in 2022.

aqua is a Declarative CLI Version Manager written in Go.

https://aquaproj.github.io/

- GitHub Stars increased from about 50 to 250
- aqua was updated from [v0.8.11 (2021-12-31)](https://github.com/aquaproj/aqua/releases/tag/v0.8.11) to [v1.28.0 (2022-12-30)](https://github.com/aquaproj/aqua/releases/tag/v1.28.0)
- aqua-registry was updated from [v0.12.3](https://github.com/aquaproj/aqua-registry/releases/tag/v0.12.3) to [v3.114.0](https://github.com/aquaproj/aqua-registry/releases/tag/v3.114.0)
  - Packages increased from 394 to 1,000

![image](https://user-images.githubusercontent.com/13323303/212687486-67239304-4cd6-45d7-bc72-6788f60c7d49.png)

## Pick up updates

There were too many updates to introduce all of them, so we picked up some important updates.
We have improved aqua keeping the simplicity.

- 2022-01-09 [v0.9.0](https://github.com/aquaproj/aqua/releases/tag/v0.9.0): Remove inline_registry
- :star: 2022-01-10 [v0.10.0](https://github.com/aquaproj/aqua/releases/tag/v0.10.0): Conform XDG Base Directory Specification
- :star: 2022-02-23 [v1.0.0](https://github.com/aquaproj/aqua/releases/tag/v1.0.0): Release v1 :tada:
- 2022-02-25 [v1.1.0](https://github.com/aquaproj/aqua/releases/tag/v1.1.0): Add aqua g's `-i` option
- 2022-04-01 [v1.3.0](https://github.com/aquaproj/aqua/releases/tag/v1.3.0): Support `overrides`
- 2022-04-20 [v1.4.0](https://github.com/aquaproj/aqua/releases/tag/v1.4.0): Support changing `GOOS` and `GOARCH` for testing
- :star: 2022-04-26 [aqua-registry supports more tools than asdf-plugins](https://twitter.com/szkdash/status/1518895119205683201)
- 2022-05-01 [v1.5.0](https://github.com/aquaproj/aqua/releases/tag/v1.5.0): Support package's alias
- 2022-05-12 [v1.6.0](https://github.com/aquaproj/aqua/releases/tag/v1.6.0): Support the experimental feature to execute commands by [execve(2)](https://pkg.go.dev/golang.org/x/sys@v0.0.0-20220503163025-988cb79eb6c6/unix#Exec).
- 2022-06-05 [v1.10.0](https://github.com/aquaproj/aqua/releases/tag/v1.10.0)
  - [Support tracing and CPU profiling for debug of performance issue](https://aquaproj.github.io/docs/reference/trace-profile)
  - :star: Support installing packages by `go install` command
- 2022-06-15 [v1.11.0](https://github.com/aquaproj/aqua/releases/tag/v1.11.0): Support shell completion
- 2022-06-22 [v1.12.0](https://github.com/aquaproj/aqua/releases/tag/v1.12.0)
  - Support `supported_envs`
  - :star: [Support Windows](https://aquaproj.github.io/docs/reference/windows-support)
- :star: 2022-06-26 [v1.14.0](https://github.com/aquaproj/aqua/releases/tag/v1.14.0): [Add a subcommand `generate-registry`](https://aquaproj.github.io/docs/reference/scaffold-registry/)
- 2022-06-29 [v1.15.0](https://github.com/aquaproj/aqua/releases/tag/v1.15.0)
  - Support selecting a version interactively in aqua g command
  - Support showing progress bars when tools are being installed
- :star: 2022-07-30 [v1.18.0](https://github.com/aquaproj/aqua/releases/tag/v1.18.0): Add a subcommand cp
- :star: 2022-08-06 Release [registry-tool](https://github.com/aquaproj/registry-tool)
- :star: 2022-10-10 [v1.20.0](https://github.com/aquaproj/aqua/releases/tag/v1.20.0): [Support Checksum Verification](https://aquaproj.github.io/docs/reference/checksum/)
- 2022-11-04 [v1.22.0](https://github.com/aquaproj/aqua/releases/tag/v1.22.0):
  - [Add update-aqua command](https://aquaproj.github.io/docs/tutorial-extras/update-aqua)
  - aqua generate: Support specifying version
- 2022-11-09 [v1.23.0](https://github.com/aquaproj/aqua/releases/tag/v1.23.0): [Support filtering packages with tags](https://aquaproj.github.io/docs/tutorial-extras/package-tag/)
- :star: 2022-11-15 [v1.24.0](https://github.com/aquaproj/aqua/releases/tag/v1.24.0): [Support Policy as Code](https://aquaproj.github.io/docs/tutorial-extras/policy-as-code/)
- 2022-11-17 [v1.25.0](https://github.com/aquaproj/aqua/releases/tag/v1.25.0): Replace $HOME to the home directory in local registry path
- 2022-12-26 :star: [v1.26.0](https://github.com/aquaproj/aqua/releases/tag/v1.26.0): [Support package verification by Cosign and slsa-verifier](https://aquaproj.github.io/docs/reference/cosign-slsa/)
- 2022-12-26 [Refactor aqua-renovate-config with Jsonnet](https://github.com/aquaproj/aqua-renovate-config/releases/tag/1.5.0)
- 2022-12-30 [v1.28.0](https://github.com/aquaproj/aqua/releases/tag/v1.28.0): Support pruning unused checksums in aqua-checksums.json
- :star: 2022-12-31 [The number of packages in aqua-registry has reached 1,000](https://twitter.com/aquaclivm/status/1609137453662883840)

## Windows Support

We usually don't use Windows and Windows is different from Linux and macOS, so Windows Support was very tough work.
By Windows Support, aqua supports all major platforms (Windows, macOS, and Linux).
This is especially important for unifying tool management in your team. If your team members use different OS, you can install tools in the unified way and unify tool versions.

## Security

In the last few months, we mainly worked on security improvement.

- [Support Checksum Verification](https://aquaproj.github.io/docs/reference/checksum/)
- [Support Policy as Code](https://aquaproj.github.io/docs/tutorial-extras/policy-as-code/)
- [Support package verification by Cosign and slsa-verifier](https://aquaproj.github.io/docs/reference/cosign-slsa/)

These features are so significant for protecting you from security threat, and we believe these features are strength of aqua.
If you haven't used these features, we strongly recommend trying them.

## Evolution of aqua Registry

To make aqua more powerful, we worked on supporting more tools.
To allow users to add new tools to Registry easily, we developed a subcommand and tools to scaffold Registry and create a pull request.
Using them, users could create a pull request to add a new tool easily.
This improved the user experience and many users contributed to [aqua-registry](https://github.com/aquaproj/aqua-registry/pulls).

## Thank you, all contributors

35 contributors contributed to aqua-registry.

https://github.com/aquaproj/aqua-registry/graphs/contributors

Thank you, all contributors.

Thanks for your contribution, aqua-registry has supported over 1,000 packages. It's amazing!

Especially, [@ponkio-o](https://github.com/ponkio-o) and [@4513ECHO](https://github.com/4513ECHO) added many packages to aqua-registry! Thanks a lot!

## Thank you, all sponsors

Recently, we started GitHub Sponsors.
Thank you, all sponsors.

https://github.com/sponsors/aquaproj

## aqua in 2023

2023 has already started. We have already updated aqua from [v1.28.0](https://github.com/aquaproj/aqua/releases/tag/v1.28.0) to [v1.32.0](https://github.com/aquaproj/aqua/releases/tag/v1.32.0) and continuously improved aqua.

We will release [aqua v2](https://github.com/aquaproj/aqua/issues/1399) in near future, which removes some deprecated features and makes aqua secure by default.