aqua - CLI Version Manager

logo

Shunsuke Suzuki

2021-11-23

Overview

The introduction of the tool aqua

  1. What's aqua?
  2. Quick Start
  3. Why is aqua needed?
  4. Feature

What's aqua?

logo

Main Usecases

  1. Install tools for a specific repository (CI and local development)
  2. Install tools for your organization and team
  3. Install tools for your laptops (like dotfiles)

Quick Start

# For Linux
# $ curl -sSfL \
#   https://raw.githubusercontent.com/aquaproj/aqua-installer/v0.3.0/aqua-installer |
#   bash
$ brew install aquaproj/aqua/aqua

$ export PATH=~/.aqua/bin:$PATH
$ vi aqua.yaml
$ aqua i -l

aqua.yaml

registries:
- type: standard
  ref: v0.10.10 # renovate: depName=aquaproj/aqua-registry
packages:
- name: direnv/direnv@v2.28.0
- name: junegunn/fzf@0.27.2

GitHub Actions and CircleCI Orb

Why is aqua needed?

  • Install tools easily with unified way
  • Solve the problem due to the difference of tool version
  • Coexist different versions and fork versions in a laptop

Feature

  • Simple Configuration
  • Lazy Install
  • Renovate Friendly

Simple Configuration

aqua.yaml

registries:
- type: standard
  ref: v0.10.10 # renovate: depName=aquaproj/aqua-registry

packages:
- name: direnv/direnv@v2.28.0
- name: junegunn/fzf@0.27.2

Lazy Install

$ direnv version
2.28.0

# change direnv version
$ sed -i "s/direnv@v2.28.0/direnv@v2.27.0/" aqua.yaml

# direnv v2.27.0 is installed automatically
$ direnv version
INFO[0000] download and unarchive the package            aqua_version=0.7.16 package_name=direnv/direnv package_version=v2.27.0 program=aqua registry=standard
2.27.0

Renovate Friendly

You can update package versions with Renovate.

{
  "extends": [
    "github>aquaproj/aqua-renovate-config",
    "github>aquaproj/aqua-renovate-config:file(aqua/.*\\.ya?ml)"
  ]
}

Additional Feature

  • Registry
  • Standard Registry: Let's add your favorite tools
  • Save installation time and disk by sharing tools across projects
  • Fuzzy Search of packages by command aqua g
  • Read configuration files recursively
  • Split packages configuration to multiple files

Please see the document.

Uninstall aqua

You can install and uninstall aqua easily, so let's try aqua feel free.

Remove aqua and ~/.aqua.

# For Linux
# $ rm /usr/local/bin/aqua
$ brew uninstall aqua

$ rm -R ~/.aqua