Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support installing aqua with Winget on Windows #2401

Closed
suzuki-shunsuke opened this issue Oct 28, 2023 · 2 comments · Fixed by #2483
Closed

Support installing aqua with Winget on Windows #2401

suzuki-shunsuke opened this issue Oct 28, 2023 · 2 comments · Fixed by #2483
Labels
enhancement New feature or request

Comments

@suzuki-shunsuke
Copy link
Member

Feature Overview

Why is the feature needed?

Make Windows Users easy to install aqua.

How to reproduce the issue

No response

Workaround

  • Download aqua from GitHub Releases
  • aqua-installer (shell script)
  • go install

Example Code

No response

Reference

@suzuki-shunsuke suzuki-shunsuke added the enhancement New feature or request label Oct 28, 2023
@suzuki-shunsuke suzuki-shunsuke moved this to Todo in main Oct 28, 2023
@suzuki-shunsuke suzuki-shunsuke moved this from Todo to In Progress in main Nov 17, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in main Nov 17, 2023
@suzuki-shunsuke
Copy link
Member Author

@suzuki-shunsuke suzuki-shunsuke moved this from Done to In Progress in main Nov 17, 2023
scottames referenced this issue in scottames/dots Nov 18, 2023
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [aquaproj/aqua](https://togithub.com/aquaproj/aqua) | minor |
`v2.16.4` -> `v2.17.4` |
|
[aquaproj/aqua-installer](https://togithub.com/aquaproj/aqua-installer)
| minor | `v2.1.3` -> `v2.2.0` |

---

### Release Notes

<details>
<summary>aquaproj/aqua (aquaproj/aqua)</summary>

### [`v2.17.4`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.4)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.3...v2.17.4)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.4)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.4)
| aquaproj/aqua@v2.17.3...v2.17.4

##### Others

[#&#8203;2401](https://togithub.com/aquaproj/aqua/issues/2401)
[#&#8203;2483](https://togithub.com/aquaproj/aqua/issues/2483) Release
aqua to
[Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/)
🎉


[https://github.com/microsoft/winget-pkgs/pull/127174](https://togithub.com/microsoft/winget-pkgs/pull/127174)

### [`v2.17.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.2...v2.17.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.3)
| aquaproj/aqua@v2.17.2...v2.17.3

##### Bug Fixes 🐞

[#&#8203;2476](https://togithub.com/orgs/aquaproj/discussions/2476)
[#&#8203;2479](https://togithub.com/aquaproj/aqua/issues/2479) policy:
fix a bug that the [Git Repository root's policy
file](https://aquaproj.github.io/docs/reference/security/policy-as-code/git-policy/)
doesn't work well in working trees

##### Others

[#&#8203;2470](https://togithub.com/aquaproj/aqua/issues/2470)
[#&#8203;2472](https://togithub.com/aquaproj/aqua/issues/2472) Replace
the third party library github.com/codingsince1985/checksum with
standard libraries

This library caused the bug
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) and we
can replace the library with standard libraries easily.
We should use standard libraries as much as possible.

[#&#8203;2473](https://togithub.com/aquaproj/aqua/issues/2473) Revert
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)

[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469) was
required to resolve
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) , but
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) was
resolved by
[#&#8203;2472](https://togithub.com/aquaproj/aqua/issues/2472) so
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469) is
unnecessary anymore.


[https://github.com/aquaproj/aqua/pull/2472#issuecomment-1812023515](https://togithub.com/aquaproj/aqua/pull/2472#issuecomment-1812023515)

### [`v2.17.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.1...v2.17.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.2)
| aquaproj/aqua@v2.17.1...v2.17.2

##### Bug Fixes

[#&#8203;2457](https://togithub.com/orgs/aquaproj/discussions/2457)
[#&#8203;2458](https://togithub.com/aquaproj/aqua/issues/2458) update:
Fix a panic when trying to update commands unmanaged by aqua
[@&#8203;dreamjz](https://togithub.com/dreamjz)
[#&#8203;2468](https://togithub.com/aquaproj/aqua/issues/2468) policy
init: Fix typo in CLI output [@&#8203;ka2n](https://togithub.com/ka2n)
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467)
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)
update-checksum: Copy an asset to a temporal file to calculate the
checksum correctly

##### update-checksum: Copy an asset to a temporal file to calculate the
checksum correctly

[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467)
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)

This fixes a bug that the checksum verification of aws/aws-cli fails
because the expected checksum of aws/aws-cli is wrong.

If you face the issue already, please remove checksums of aws/aws-cli
from aqua-checksums.json and run `aqua update-checksum` with aqua
v2.17.2 or newer.

aqua-checksums.json

```json
    // Delete this element
    {
      "id": "http/awscli.amazonaws.com/AWSCLIV2-2.13.35.pkg",
      "checksum": "520E1CB49004ECED7DB1CFE70E6FA73EFC6EDDF1CDB38AF535D126F1DB6574C8",
      "algorithm": "sha256"
    },
```

##### 🎉 New Contributors

Thank you for your contribution!

[@&#8203;ka2n](https://togithub.com/ka2n)
[#&#8203;2468](https://togithub.com/aquaproj/aqua/issues/2468)

### [`v2.17.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.0...v2.17.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.1)
| aquaproj/aqua@v2.17.0...v2.17.1

##### Bug Fixes 🐞

[#&#8203;2456](https://togithub.com/aquaproj/aqua/issues/2456)
generate-registry: Fix a bug that the order of versions in pkg.yaml is
wrong

### [`v2.17.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.4...v2.17.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.0)
| aquaproj/aqua@v2.16.4...v2.17.0

##### Features

[#&#8203;2355](https://togithub.com/aquaproj/aqua/issues/2355)
[#&#8203;2447](https://togithub.com/aquaproj/aqua/issues/2447) Limit the
number of versions retrieved by command `generate` and `update`
[@&#8203;dreamjz](https://togithub.com/dreamjz)

With aqua v2.16.4 or earlier, `aqua generate -s` and `aqua update -s`
retrieved all versions and these commands couldn't change the number of
versions.
This release adds the command line option `--limit/-l` to these
commands.
The value of this option is the number of versions.
The default value is `30`.
If the value is less than zero, all versions are retrieved.

This change would reduced useless GitHub API calls and make these
commands faster.

e.g.

```sh
aqua g -s # Retrieve 30 versions
aqua g -s -l 10 # Retrieve 10 versions
aqua g -s -l -1 # Retrieve all versions
```

[#&#8203;2445](https://togithub.com/aquaproj/aqua/issues/2445) Change
the default checksum algorithm from `sha512` to `sha256`

sha256 is enough.
We don't need to use sha512.

[#&#8203;2428](https://togithub.com/aquaproj/aqua/issues/2428) Add an
alias of `update-checksum` command

```sh
aqua upc
```

[#&#8203;2105](https://togithub.com/aquaproj/aqua/issues/2105)
[#&#8203;2425](https://togithub.com/aquaproj/aqua/issues/2425)
[#&#8203;2413](https://togithub.com/aquaproj/aqua/issues/2413)
generate-registry: Improve the format of `version_overrides` and improve
the logic to generate `version_overrides`

##### Bug Fixes 🐞

[#&#8203;2444](https://togithub.com/aquaproj/aqua/issues/2444)
generate-registry: Fix checksum filename for sha1

##### Others

[#&#8203;2436](https://togithub.com/aquaproj/aqua/issues/2436)
chore(deps): update dependency slsa-framework/slsa-verifier to v2.4.1
[#&#8203;2395](https://togithub.com/aquaproj/aqua/issues/2395) change
the format of prebuilt binaries for Windows to zip

Before:

aqua_windows_amd64.tar.gz
aqua_windows_arm64.tar.gz

After:

aqua_windows_amd64.zip
aqua_windows_arm64.zip

On Windows zip is more user friendly than tar.gz.
And to support Winget for Windows, it seems we need to change the format
to zip.

-
[https://github.com/aquaproj/aqua/issues/2401](https://togithub.com/aquaproj/aqua/issues/2401)

<!---->

      • winget
⨯ release failed after 1m11s error=no zip archives found matching
goos=[windows] goarch=[amd64 386] goamd64=v1 ids=[]
    Error: Process completed with exit code 1.

⚠️ To upgrade aqua to v2.17.0 or newer on Windows, you need to upgrade
aqua to v2.16.1 ~ v2.16.4 once.

e.g.

```sh
aqua upa v2.16.4
aqua upa
```

##### New Contributors 🎉

Thank you for your contribution!

[@&#8203;dreamjz](https://togithub.com/dreamjz)
[#&#8203;2447](https://togithub.com/aquaproj/aqua/issues/2447)

</details>

<details>
<summary>aquaproj/aqua-installer (aquaproj/aqua-installer)</summary>

###
[`v2.2.0`](https://togithub.com/aquaproj/aqua-installer/releases/tag/v2.2.0)

[Compare
Source](https://togithub.com/aquaproj/aqua-installer/compare/v2.1.3...v2.2.0)


[Issues](https://togithub.com/aquaproj/aqua-installer/issues?q=is%3Aissue+milestone%3Av2.2.0)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-installer/pulls?q=is%3Apr+milestone%3Av2.2.0)
| aquaproj/aqua-installer@v2.1.3...v2.2.0

##### Features

[#&#8203;365](https://togithub.com/aquaproj/aqua-installer/issues/365)
[#&#8203;550](https://togithub.com/aquaproj/aqua-installer/issues/550)
[#&#8203;551](https://togithub.com/aquaproj/aqua-installer/issues/551)
Output the guide to set the environment variable `PATH`

`aqua-installer` outputs the following guide.

    ===============================================================
[INFO] aqua is installed into /root/.local/share/aquaproj-aqua/bin/aqua
    [INFO] Please add the path to the environment variable "PATH"
[INFO] export
PATH=${AQUA_ROOT_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/aquaproj-aqua}/bin:$PATH
    ===============================================================

[#&#8203;551](https://togithub.com/aquaproj/aqua-installer/issues/551)
Use wget if curl isn't found

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 4pm on thursday" in timezone
America/Los_Angeles, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/scottames/dots).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Scott Ames <[email protected]>
@suzuki-shunsuke
Copy link
Member Author

Now you can install aqua with Winget 🎉
https://aquaproj.github.io/docs/reference/windows-support/#how-to-install
https://twitter.com/aquaclivm/status/1726752999236878611

@github-project-automation github-project-automation bot moved this from In Progress to Done in main Nov 21, 2023
mend-for-github-com bot referenced this issue in DelineaXPM/dsv-gitlab Jan 10, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [aquaproj/aqua](https://togithub.com/aquaproj/aqua) | major |
`v1.33.0` -> `v2.21.3` |

---

### Release Notes

<details>
<summary>aquaproj/aqua (aquaproj/aqua)</summary>

### [`v2.21.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.21.2...v2.21.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.3)
| https://github.com/aquaproj/aqua/compare/v2.21.2...v2.21.3

#### Bug Fixes

[#&#8203;2585](https://togithub.com/aquaproj/aqua/issues/2585)
[#&#8203;2586](https://togithub.com/aquaproj/aqua/issues/2586) Update
checksums of cosign

### [`v2.21.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.21.1...v2.21.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.2)
| https://github.com/aquaproj/aqua/compare/v2.21.1...v2.21.2

#### ⚠️ This release has a bug

The bug was already fixed at v2.21.3

#### Others

[#&#8203;2582](https://togithub.com/aquaproj/aqua/issues/2582) Fix a bug
of release workflow

### [`v2.21.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.21.0...v2.21.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.1)
| https://github.com/aquaproj/aqua/compare/v2.21.0...v2.21.1

#### ⚠️ The release failed


https://github.com/aquaproj/aqua/actions/runs/7260967360/job/19781204828#step:10:147

      ⨯ release failed after 2m26s               error=1 error occurred:
* scoop manifests: could not update "aqua.json": PUT
https://api.github.com/repos/aquaproj/scoop-bucket/contents/aqua.json:
403 Resource not accessible by integration []

We fixed the bug and release v2.21.2.

#### Bug Fixes

[#&#8203;2534](https://togithub.com/aquaproj/aqua/issues/2534) Fix a bug
of root dir on Windows
[#&#8203;2580](https://togithub.com/aquaproj/aqua/issues/2580)
[#&#8203;2581](https://togithub.com/aquaproj/aqua/issues/2581) Fix a bug
that validation fails even if no_asset or error_message is set
[https://github.com/aquaproj/aqua-registry/pull/18326#issuecomment-1862164476](https://togithub.com/aquaproj/aqua-registry/pull/18326#issuecomment-1862164476)

### [`v2.21.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.20.0...v2.21.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.0)
| https://github.com/aquaproj/aqua/compare/v2.20.0...v2.21.0

#### Features

[#&#8203;2517](https://togithub.com/aquaproj/aqua/issues/2517)
[#&#8203;2518](https://togithub.com/aquaproj/aqua/issues/2518) perf:
Convert Standard Registry and github_content Registries from YAML to
JSON when installing them

This update improves the performance to read Registries.
Stanard registry is a huge YAML file over 30,000 lines so it has a
little overhead to read it.
By this update, aqua converts Standard Registry and github_content
Registries from YAML to JSON.
JSON format decreases the overhead.
aqua converts them internally, so we don't need to do anything.

### [`v2.20.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.20.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.19.0...v2.20.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.20.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.20.0)
| https://github.com/aquaproj/aqua/compare/v2.19.0...v2.20.0

#### Features

[#&#8203;2514](https://togithub.com/orgs/aquaproj/discussions/2514)
[#&#8203;2515](https://togithub.com/aquaproj/aqua/issues/2515) Add a
field `windows_arm_emulation` for Windows ARM Emulation

ARM based Windows 11 supports the emulation to run x64 Windows apps.


https://learn.microsoft.com/en-us/windows/arm/add-arm-support#emulation-on-arm-based-devices-for-x86-or-x64-windows-apps

> Windows 11 extends that emulation to run unmodified x64 Windows apps
on Arm-powered devices.

If the field `windows_arm_emulation` is `true`, aqua uses pre built
binaries for Windows amd64 on Windows arm64. `windows_arm_emulation`
must be boolean. By default, `windows_arm_emulation` is false.

`windows_arm_emulation` is similar with
[rosetta2](https://aquaproj.github.io/docs/reference/registry-config/rosetta2).

### [`v2.19.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.19.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.18.0...v2.19.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.19.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.19.0)
| https://github.com/aquaproj/aqua/compare/v2.18.0...v2.19.0

#### Features

[#&#8203;2506](https://togithub.com/orgs/aquaproj/discussions/2506)
[#&#8203;2507](https://togithub.com/aquaproj/aqua/issues/2507) which:
Add the command line option `--version`

e.g.

```console
$ aqua which --version yq
v4.40.2
```

#### Bug Fixes

[#&#8203;2508](https://togithub.com/orgs/aquaproj/discussions/2508)
[#&#8203;2512](https://togithub.com/aquaproj/aqua/issues/2512) Fix a bug
of bash scripts for Git Bash

https://www.shellcheck.net/wiki/SC2086

Bash scripts generated by aqua had a bug that command line arguments
having spaces were separated to multiple arguments incorrectly.

```console
$  curl -sSfL https://jsonplaceholder.typicode.com/todos | jq '.[] | .id'
jq: error: Could not open file |: Invalid argument
jq: error: Could not open file .id: No such file or directory
```

### [`v2.18.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.18.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.4...v2.18.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.18.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.18.0)
| https://github.com/aquaproj/aqua/compare/v2.17.4...v2.18.0

#### Features

[#&#8203;2494](https://togithub.com/aquaproj/aqua/issues/2494) update:
Support specifying new package versions

e.g.

```sh
aqua up [email protected]
```

[#&#8203;2461](https://togithub.com/aquaproj/aqua/issues/2461) Add debug
logs of `update` and `generate` commands
[@&#8203;dreamjz](https://togithub.com/dreamjz)

#### Bug Fixes

[#&#8203;2493](https://togithub.com/aquaproj/aqua/issues/2493)
[#&#8203;2495](https://togithub.com/aquaproj/aqua/issues/2495)
generate-registry: Fix the pagination of GitHub API List Releases

### [`v2.17.4`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.4)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.3...v2.17.4)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.4)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.4)
| https://github.com/aquaproj/aqua/compare/v2.17.3...v2.17.4

#### Others

[#&#8203;2401](https://togithub.com/aquaproj/aqua/issues/2401)
[#&#8203;2483](https://togithub.com/aquaproj/aqua/issues/2483) Release
aqua to
[Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/)
🎉


[https://github.com/microsoft/winget-pkgs/pull/127174](https://togithub.com/microsoft/winget-pkgs/pull/127174)

### [`v2.17.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.2...v2.17.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.3)
| https://github.com/aquaproj/aqua/compare/v2.17.2...v2.17.3

#### Bug Fixes 🐞

[#&#8203;2476](https://togithub.com/orgs/aquaproj/discussions/2476)
[#&#8203;2479](https://togithub.com/aquaproj/aqua/issues/2479) policy:
fix a bug that the [Git Repository root's policy
file](https://aquaproj.github.io/docs/reference/security/policy-as-code/git-policy/)
doesn't work well in working trees

#### Others

[#&#8203;2470](https://togithub.com/aquaproj/aqua/issues/2470)
[#&#8203;2472](https://togithub.com/aquaproj/aqua/issues/2472) Replace
the third party library github.com/codingsince1985/checksum with
standard libraries

This library caused the bug
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) and we
can replace the library with standard libraries easily.
We should use standard libraries as much as possible.

[#&#8203;2473](https://togithub.com/aquaproj/aqua/issues/2473) Revert
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)

[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469) was
required to resolve
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) , but
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) was
resolved by
[#&#8203;2472](https://togithub.com/aquaproj/aqua/issues/2472) so
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469) is
unnecessary anymore.


[https://github.com/aquaproj/aqua/pull/2472#issuecomment-1812023515](https://togithub.com/aquaproj/aqua/pull/2472#issuecomment-1812023515)

### [`v2.17.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.1...v2.17.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.2)
| https://github.com/aquaproj/aqua/compare/v2.17.1...v2.17.2

#### Bug Fixes

[#&#8203;2457](https://togithub.com/orgs/aquaproj/discussions/2457)
[#&#8203;2458](https://togithub.com/aquaproj/aqua/issues/2458) update:
Fix a panic when trying to update commands unmanaged by aqua
[@&#8203;dreamjz](https://togithub.com/dreamjz)
[#&#8203;2468](https://togithub.com/aquaproj/aqua/issues/2468) policy
init: Fix typo in CLI output [@&#8203;ka2n](https://togithub.com/ka2n)
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467)
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)
update-checksum: Copy an asset to a temporal file to calculate the
checksum correctly

##### update-checksum: Copy an asset to a temporal file to calculate the
checksum correctly

[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467)
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)

This fixes a bug that the checksum verification of aws/aws-cli fails
because the expected checksum of aws/aws-cli is wrong.

If you face the issue already, please remove checksums of aws/aws-cli
from aqua-checksums.json and run `aqua update-checksum` with aqua
v2.17.2 or newer.

aqua-checksums.json

```json
    // Delete this element
    {
      "id": "http/awscli.amazonaws.com/AWSCLIV2-2.13.35.pkg",
      "checksum": "520E1CB49004ECED7DB1CFE70E6FA73EFC6EDDF1CDB38AF535D126F1DB6574C8",
      "algorithm": "sha256"
    },
```

#### 🎉 New Contributors

Thank you for your contribution!

[@&#8203;ka2n](https://togithub.com/ka2n)
[#&#8203;2468](https://togithub.com/aquaproj/aqua/issues/2468)

### [`v2.17.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.0...v2.17.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.1)
| https://github.com/aquaproj/aqua/compare/v2.17.0...v2.17.1

#### Bug Fixes 🐞

[#&#8203;2456](https://togithub.com/aquaproj/aqua/issues/2456)
generate-registry: Fix a bug that the order of versions in pkg.yaml is
wrong

### [`v2.17.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.4...v2.17.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.0)
| https://github.com/aquaproj/aqua/compare/v2.16.4...v2.17.0

#### Features

[#&#8203;2355](https://togithub.com/aquaproj/aqua/issues/2355)
[#&#8203;2447](https://togithub.com/aquaproj/aqua/issues/2447) Limit the
number of versions retrieved by command `generate` and `update`
[@&#8203;dreamjz](https://togithub.com/dreamjz)

With aqua v2.16.4 or earlier, `aqua generate -s` and `aqua update -s`
retrieved all versions and these commands couldn't change the number of
versions.
This release adds the command line option `--limit/-l` to these
commands.
The value of this option is the number of versions.
The default value is `30`.
If the value is less than zero, all versions are retrieved.

This change would reduced useless GitHub API calls and make these
commands faster.

e.g.

```sh
aqua g -s # Retrieve 30 versions
aqua g -s -l 10 # Retrieve 10 versions
aqua g -s -l -1 # Retrieve all versions
```

[#&#8203;2445](https://togithub.com/aquaproj/aqua/issues/2445) Change
the default checksum algorithm from `sha512` to `sha256`

sha256 is enough.
We don't need to use sha512.

[#&#8203;2428](https://togithub.com/aquaproj/aqua/issues/2428) Add an
alias of `update-checksum` command

```sh
aqua upc
```

[#&#8203;2105](https://togithub.com/aquaproj/aqua/issues/2105)
[#&#8203;2425](https://togithub.com/aquaproj/aqua/issues/2425)
[#&#8203;2413](https://togithub.com/aquaproj/aqua/issues/2413)
generate-registry: Improve the format of `version_overrides` and improve
the logic to generate `version_overrides`

#### Bug Fixes 🐞

[#&#8203;2444](https://togithub.com/aquaproj/aqua/issues/2444)
generate-registry: Fix checksum filename for sha1

#### Others

[#&#8203;2436](https://togithub.com/aquaproj/aqua/issues/2436)
chore(deps): update dependency slsa-framework/slsa-verifier to v2.4.1
[#&#8203;2395](https://togithub.com/aquaproj/aqua/issues/2395) change
the format of prebuilt binaries for Windows to zip

Before:

aqua_windows_amd64.tar.gz
aqua_windows_arm64.tar.gz

After:

aqua_windows_amd64.zip
aqua_windows_arm64.zip

On Windows zip is more user friendly than tar.gz.
And to support Winget for Windows, it seems we need to change the format
to zip.

-
[https://github.com/aquaproj/aqua/issues/2401](https://togithub.com/aquaproj/aqua/issues/2401)

<!---->

      • winget
⨯ release failed after 1m11s error=no zip archives found matching
goos=[windows] goarch=[amd64 386] goamd64=v1 ids=[]
    Error: Process completed with exit code 1.

⚠️ To upgrade aqua to v2.17.0 or newer on Windows, you need to upgrade
aqua to v2.16.1 ~ v2.16.4 once.

e.g.

```sh
aqua upa v2.16.4
aqua upa
```

#### New Contributors 🎉

Thank you for your contribution!

[@&#8203;dreamjz](https://togithub.com/dreamjz)
[#&#8203;2447](https://togithub.com/aquaproj/aqua/issues/2447)

### [`v2.16.4`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.4)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.3...v2.16.4)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.4)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.4)
| https://github.com/aquaproj/aqua/compare/v2.16.3...v2.16.4

#### Bug Fixes

[#&#8203;2420](https://togithub.com/aquaproj/aqua/issues/2420)
generate-registry: Get latest versions of cargo packages

### [`v2.16.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.2...v2.16.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.3)
| https://github.com/aquaproj/aqua/compare/v2.16.2...v2.16.3

#### Bug Fixes

[#&#8203;2414](https://togithub.com/orgs/aquaproj/discussions/2414)
[#&#8203;2415](https://togithub.com/aquaproj/aqua/issues/2415) fix a bug
that AQUA_DISABLE_POLIDY doesn't work
[#&#8203;2412](https://togithub.com/aquaproj/aqua/issues/2412)
generate-registry: Improve the judgement of OS by file extensions such
as `.exe`, `.pkg`, and `.dmg`

#### Others

Refactoring

### [`v2.16.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.1...v2.16.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.2)
| https://github.com/aquaproj/aqua/compare/v2.16.1...v2.16.2

#### Others

[#&#8203;2399](https://togithub.com/aquaproj/aqua/issues/2399)
[#&#8203;2400](https://togithub.com/aquaproj/aqua/issues/2400) Support
[Scoop](https://scoop.sh/) 🎉

You can install aqua by [Scoop](https://scoop.sh/) on Windows.

```sh
scoop bucket add aquaproj https://github.com/aquaproj/scoop-bucket
scoop install aqua
```

### [`v2.16.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.0...v2.16.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.1)
| https://github.com/aquaproj/aqua/compare/v2.16.0...v2.16.1

#### Bug Fixes

[#&#8203;2393](https://togithub.com/aquaproj/aqua/issues/2393)
generate-registry: Fix the usage of `-cmd` option

#### Others

[#&#8203;2394](https://togithub.com/aquaproj/aqua/issues/2394)
[#&#8203;2396](https://togithub.com/aquaproj/aqua/issues/2396) Change
the format to zip on Windows at aqua v2.17.0

This is a preparation for the future change.
At aqua v2.17.0, the format of prebuilt binaries for Windows will be
changed from `tar.gz` to `zip`.
This is because `zip` is more user friendly for Windows Users and some
tools such as Winget expects zip.


https://github.com/goreleaser/goreleaser/blob/b1271d2559e05711e31c6d39c9cbf9eb3e808d5a/internal/pipe/winget/winget.go#L41

To upgrade aqua to v2.17.0 or later on Windows, you need to upgrade aqua
to v2.16.1 or later first.
aqua can't upgrade aqua from v2.16.0 or earlier to v2.17.0 or later on
Windows.

```console
$ aqua update-aqua v2.16.1
$ aqua update-aqua
```

### [`v2.16.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.15.1...v2.16.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.0)
| https://github.com/aquaproj/aqua/compare/v2.15.1...v2.16.0

#### Features

[#&#8203;2380](https://togithub.com/aquaproj/aqua/issues/2380) Support
removing packages by command names

e.g.

```sh
aqua rm tfcmt # Remove suzuki-shunsuke/tfcmt
```

### [`v2.15.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.15.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.15.0...v2.15.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.15.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.15.1)
| https://github.com/aquaproj/aqua/compare/v2.15.0...v2.15.1

#### Bug Fixes

[#&#8203;2376](https://togithub.com/aquaproj/aqua/issues/2376) Fix a bug
that aqua stops searching configuration files if files are located in
either aqua or .aqua directory

##### How to reproduce the issue

Directory structure

    /workspace/
      aqua.yaml
      foo/ # current directory
        aqua/
          aqua.yaml

Run `aqua i`.

```sh
aqua i
```

##### Expected behaviour

aqua installs packages with `/workspace/aqua.yaml` and
`/workspace/foo/aqua/aqua.yaml`.

##### Actual behaviour

aqua installs packages with only `/workspace/foo/aqua/aqua.yaml`, and
ignores `/workspace/aqua.yaml`.

### [`v2.15.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.15.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.14.1...v2.15.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.15.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.15.0)
| https://github.com/aquaproj/aqua/compare/v2.14.1...v2.15.0

#### Overview

-   Features
- [#&#8203;2351](https://togithub.com/aquaproj/aqua/issues/2351)
[#&#8203;2366](https://togithub.com/aquaproj/aqua/issues/2366)
generate-registry: Get all GitHub Releases by default
- [#&#8203;2349](https://togithub.com/aquaproj/aqua/issues/2349)
[#&#8203;2362](https://togithub.com/aquaproj/aqua/issues/2362)
generate-registry: Add an option `-cmd`
-   Others
- [#&#8203;2359](https://togithub.com/aquaproj/aqua/issues/2359)
update-aqua: Add an alias `upa` to the command

#### generate-registry: Get all GitHub Releases by default

[#&#8203;2351](https://togithub.com/aquaproj/aqua/issues/2351)
[#&#8203;2366](https://togithub.com/aquaproj/aqua/issues/2366)

The behaviour of `generate-registry` command was changed.
The command gets all GitHub Releases by default to generate
`version_overrides`.

The option `--deep` is deprecated. The option has no meaning anymore.
The option is kept only for the compatibility.
The option will be removed at aqua v3.

The option `--limit (-l)` is added. This option takes an integer, which
is the maximum number of releases.

e.g.

```sh
aqua gr --limit 100
```

#### generate-registry: Add an option `-cmd`

[#&#8203;2349](https://togithub.com/aquaproj/aqua/issues/2349)
[#&#8203;2362](https://togithub.com/aquaproj/aqua/issues/2362)

If `-cmd` is set, `files` is set.

e.g.

```console
$ aqua gr -cmd gh cli/cli
```

```yaml

### ...
  files:
    - name: gh
```

You can specify multiple commands with commas `,`.

e.g.

```console
$ aqua gr -cmd age,age-keygen FiloSottile/age
```

```yaml

### ...
  files:
    - name: age
    - name: age-keygen
```

#### update-aqua: Add an alias `upa` to the command

[#&#8203;2359](https://togithub.com/aquaproj/aqua/issues/2359)

`update-aqua` is too long.

```console
$ aqua upa # update-aqua
```

### [`v2.14.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.14.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.14.0...v2.14.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.14.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.14.1)
| https://github.com/aquaproj/aqua/compare/v2.14.0...v2.14.1

#### Fixes

[#&#8203;2354](https://togithub.com/aquaproj/aqua/issues/2354)
[#&#8203;2356](https://togithub.com/aquaproj/aqua/issues/2356) generate:
Fixed a bug that sometimes `aqua g` outputs non latest version

versiongetter: Fix getting the latest version

Use GetLatestRelease API before using ListReleases API

[#&#8203;2245](https://togithub.com/aquaproj/aqua/issues/2245)
[#&#8203;2358](https://togithub.com/aquaproj/aqua/issues/2358) generate:
Fixed a bug that `aqua g -i` fails when a comment exists in the same
line with `packages:`

Get string values from `*ast.StringNode.Value` instead of
`ast.MapKeyNode.String()`

#### Others

[#&#8203;2340](https://togithub.com/aquaproj/aqua/issues/2340)
fix(deps): update module github.com/google/go-github/v55 to v56

### [`v2.14.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.14.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.13.1...v2.14.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.14.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.14.0)
| https://github.com/aquaproj/aqua/compare/v2.13.1...v2.14.0

[#&#8203;1657](https://togithub.com/aquaproj/aqua/issues/1657)
[#&#8203;2329](https://togithub.com/aquaproj/aqua/issues/2329) Update
registries and packages by update command

Finally `aqua update` command is supported 🎉
You can update all packages and registries, or select updated packages.
You can also select packages and versions with fuzzy finder.

[Document](https://aquaproj.github.io/docs/guides/update-command/)

> \[!NOTE]\
> You can update registries and packages by Renovate too.
> Please see [Update packages by
Renovate](https://aquaproj.github.io/docs/guides/renovate).

You can update registries and packages by `aqua update (up)` command.

If no argument is passed, all registries and packages are updated to the
latest.

```sh

### Update all packages and registries to the latest versions
aqua update
```

This command has an alias "up"

```sh
aqua up
```

This command

- gets the latest version from GitHub Releases, GitHub Tags, and
crates.io and updates aqua.yaml
-   doesn't install packages

#### Updated configuration file paths

This command finds a configuration file `aqua.yaml` according to [the
rule](https://aquaproj.github.io/docs/reference/config/#configuration-file-path)
and updates only one file.
Once this command finds one file, it stops searching other aqua.yaml.

So if you want to update other files, please change the current
directory or specify the configuration file path with the option `-c`.

```sh
aqua -c foo/aqua.yaml update
```

#### Update only registries

If you want to update only registries, please use the `--only-registry
[-r]` option.

```sh

### Update only registries
aqua update -r
```

#### Update only packages

If you want to update only packages, please use the `--only-package
[-p]` option.

```sh

### Update only packages
aqua update -p
```

#### Update only specific commands

You can specify packages with command names. aqua finds packages that
have these commands and updates them.

```sh
aqua update <command name> [<command name> ...]
```

e.g.

```sh

### Update cli/cli
aqua update gh
```

#### Select packages with Fuzzy Finder

If you want to update only specific packages, please use the `-i`
option.
You can select packages with the fuzzy finder.
If `-i` option is used, registries aren't updated.

```sh

### Select updated packages with fuzzy finder
aqua update -i
```

#### Select the package version with Fuzzy Finder

If you want to select versions, please use the `-s` option.
You can select versions with the fuzzy finder. You can not only update
but also downgrade packages.

```sh

### Select updated packages and versions with fuzzy finder
aqua update -i -s
```

#### The field `version` is ignored

This command doesn't update packages if the `version` field is used.

```yaml
packages:
  - name: cli/[email protected] # Update
  - name: gohugoio/hugo
    version: v0.118.0 # Doesn't update
```

So if you don't want to update specific packages, the `version` field is
useful.

#### commit hashes are ignored

This command doesn't update commit hashes.

```yaml
packages:
  - name: google/pprof@d04f2422c8a17569c14e84da0fae252d9529826b # Doesn't update
```

#### ⚠️ Known Issues

There are some known issues related to the third party library
[goccy/go-yaml](https://togithub.com/goccy/go-yaml).

##### `null` is set to `packages` wrongly if registries are updated and
`packages` is empty

This issue is because of the third party library
[goccy/go-yaml](https://togithub.com/goccy/go-yaml).

Before

```yaml
registries:
- ref: v4.60.0
  type: standard
packages:
```

Run `aqua up`.

```console
$ aqua up
INFO[0000] updating a registry                           aqua_version= env=darwin/arm64 new_version=v4.65.0 old_version=v4.60.0 program=aqua registry_name=standard
```

After

```yaml
registries:
- ref: v4.65.0
  type: standard
packages: null
```

##### Newlines are removed wrongly

This issue is because of the third party library
[goccy/go-yaml](https://togithub.com/goccy/go-yaml).

-
[https://github.com/goccy/go-yaml/issues/285](https://togithub.com/goccy/go-yaml/issues/285)

Before

```yaml
registries:
- ref: v4.60.0
  type: standard

packages:
- name: suzuki-shunsuke/[email protected]
```

Run `aqua up`.

```console
$ aqua up
INFO[0000] updating a registry                           aqua_version= env=darwin/arm64 new_version=v4.65.0 old_version=v4.60.0 program=aqua registry_name=standard
```

After

```yaml
registries:
- ref: v4.65.0
  type: standard
packages:
- name: suzuki-shunsuke/[email protected]
```

#### Discord Channel was open 🎉

This has nothing to do with this release, but we opened a Discord
channel 🎉

https://discord.com/channels/1141777454164365382/1162444533959757955

### [`v2.13.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.13.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.13.0...v2.13.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.13.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.13.1)
| https://github.com/aquaproj/aqua/compare/v2.13.0...v2.13.1

#### Others

[#&#8203;2332](https://togithub.com/aquaproj/aqua/issues/2332)
chore(deps): update dependency golang/go to v1.21.3
[#&#8203;2335](https://togithub.com/aquaproj/aqua/issues/2335)
fix(deps): update module github.com/google/go-cmp to v0.6.0

### [`v2.13.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.13.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.12.2...v2.13.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.13.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.13.0)
| https://github.com/aquaproj/aqua/compare/v2.12.2...v2.13.0

This release includes several improvement of Registry settings.
This updates affect Registry developers including aqua-registry's
contributors.
There is no direct change for almost all aqua users.

To keep the compatibility and minimize the effect to users, we won't use
new features in
[aqua-registry](https://togithub.com/aquaproj/aqua-registry) for at
least one month after v2.13.0 is released.
If we apply new features to existing packages of aqua-registry, this
requires a major update of aqua-registry because this is a breaking
change.

#### Features

[#&#8203;2318](https://togithub.com/aquaproj/aqua/issues/2318)
[#&#8203;2320](https://togithub.com/aquaproj/aqua/issues/2320) Add a new
field `envs` to `overrides` instead of `goos` and `goarch`
[#&#8203;2132](https://togithub.com/aquaproj/aqua/issues/2132)
[#&#8203;2317](https://togithub.com/aquaproj/aqua/issues/2317) Support
using `go_install` or `go_build` if the platform isn't included in
`supported_envs`
[#&#8203;1774](https://togithub.com/aquaproj/aqua/issues/1774)
[#&#8203;2314](https://togithub.com/aquaproj/aqua/issues/2314) Support
omitting `.{{.Format}}` in `asset` and `url`
[#&#8203;1876](https://togithub.com/aquaproj/aqua/issues/1876)
[#&#8203;2313](https://togithub.com/aquaproj/aqua/issues/2313) Support
short file extensions in `format`
[#&#8203;1774](https://togithub.com/aquaproj/aqua/issues/1774)
[#&#8203;2310](https://togithub.com/aquaproj/aqua/issues/2310) Add the
template variable `AssetWithoutExt` to `files[].src`

##### Add a new field `envs` to `overrides` instead of `goos` and
`goarch`

[#&#8203;2318](https://togithub.com/aquaproj/aqua/issues/2318)
[#&#8203;2320](https://togithub.com/aquaproj/aqua/issues/2320)

Add a new field `envs` to `overrides`.
The syntax of `envs` is same with `supported_envs`.

The syntax of `envs` is more flexible than the combination of `goos` and
`goarch`.
In some cases we can simplify the code.

For example, the combination of `goos` and `goarch` can't express the
pair of `linux/arm64` and `windows/arm64`.

```yaml
overrides:
  - goos: windows
    goarch: arm64

### ...
  - goos: linux
    goarch: arm64

### ...
```

`envs` can simplify the code.

```yaml
overrides:
  - envs:
      - windows/arm64
      - linux/arm64

### ...
```

##### Support using `go_install` or `go_build` if the platform isn't
included in `supported_envs`

[#&#8203;2132](https://togithub.com/aquaproj/aqua/issues/2132)
[#&#8203;2317](https://togithub.com/aquaproj/aqua/issues/2317)

A new field `build` is added to Registry settings.
This enables to install packages by `go_install` or `go_build` on
platforms where prebuilt binaries aren't published.

This is an example usage of the new field `build`.

```yaml
packages:
  - type: github_release
    repo_owner: suzuki-shunsuke
    repo_name: tfcmt
    asset: tfcmt_{{.OS}}_{{.Arch}}.{{.Format}}
    format: tar.gz
    supported_envs:
      - linux
    build:
      type: go_build
      files:
        - name: tfcmt
          src: ./cmd/tfcmt
          dir: tfcmt-{{trimV .Version}}
```

`supported_envs` is `linux`, so on platforms other than linux aqua
installs tfcmt by `go_build`.

`go_install` is also available.

```yaml
    build:
      type: go_install
      path: github.com/suzuki-shunsuke/tfcmt/v4/cmd/tfcmt
```

If `go_build` failed on windows/arm64 and you'd like to exclude
windows/arm64, `excluded_envs` is available.

```yaml
    build:
      type: go_build
      excluded_envs:
        - windows/arm64
      files:
        - name: tfcmt
          src: ./cmd/tfcmt
          dir: tfcmt-{{trimV .Version}}
```

If you'd like to disable `build` in version_overrides, `enabled` is
available.

```yaml
build:
  enabled: false
```

##### Why not `overrides`?

Of course, we can do the same thing with `overrides`.
But `build` makes the intension of the code clear and simplify the code.

##### Support omitting `.{{.Format}}` in `asset` and `url`

[#&#8203;1774](https://togithub.com/aquaproj/aqua/issues/1774)
[#&#8203;2314](https://togithub.com/aquaproj/aqua/issues/2314)

The file extension is complemented if it isn't included in `asset` and
`url`.

e.g.

```yaml
asset: foo # This is same with `foo.tar.gz` and `foo.{{.Format}}`
format: tar.gz
```

The benefit is that you can unify the setting of `raw` format and non
`raw` format.

Before

```yaml
asset: kalker-{{.OS}}.{{.Format}}
format: zip
overrides:
  - goos: linux
    format: raw
    asset: kalker-{{.OS}}
```

After

```yaml
asset: kalker-{{.OS}}
format: zip
overrides:
  - goos: linux
    format: raw
```

You can disable the complementation by setting `append_ext: false`.

```yaml
append_ext: false
```

##### Support short file extensions in `format`

[#&#8203;1876](https://togithub.com/aquaproj/aqua/issues/1876)
[#&#8203;2313](https://togithub.com/aquaproj/aqua/issues/2313)

The following short file extensions can be available in `format`.

-   tbr
-   tbz
-   tbz2
-   tgz
-   tlz4
-   tsz
-   txz

e.g.

```yaml
format: tbz2
```

##### Add the template variable `AssetWithoutExt` to `files[].src`

[#&#8203;1774](https://togithub.com/aquaproj/aqua/issues/1774)
[#&#8203;2310](https://togithub.com/aquaproj/aqua/issues/2310)

The new template variable `AssetWithoutExt` is a string that a file
extension is removed from `Asset`.

e.g.

```yaml
    asset: aks-engine-{{.Version}}-{{.OS}}-{{.Arch}}.tar.gz
    files:
      - name: aks-engine
        src: "{{.AssetWithoutExt}}/aks-engine" # "{{.AssetWithoutExt}}" == "aks-engine-{{.Version}}-{{.OS}}-{{.Arch}}"
```

### [`v2.12.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.12.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.12.1...v2.12.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.12.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.12.2)
| https://github.com/aquaproj/aqua/compare/v2.12.1...v2.12.2

#### Bug Fixes

[#&#8203;2303](https://togithub.com/aquaproj/aqua/issues/2303) Fix a bug
that `path` isn't overriden by `overrides`

#### Others

[#&#8203;2304](https://togithub.com/aquaproj/aqua/issues/2304) Update
aqua-proxy to
[v1.2.4](https://togithub.com/aquaproj/aqua-proxy/releases/tag/v1.2.4)
[#&#8203;2302](https://togithub.com/aquaproj/aqua/issues/2302) Update Go
to v1.21.2
[#&#8203;2286](https://togithub.com/aquaproj/aqua/issues/2286)
[#&#8203;2287](https://togithub.com/aquaproj/aqua/issues/2287)
[#&#8203;2289](https://togithub.com/aquaproj/aqua/issues/2289)
[#&#8203;2290](https://togithub.com/aquaproj/aqua/issues/2290)
[#&#8203;2291](https://togithub.com/aquaproj/aqua/issues/2291)
Refactoring

### [`v2.12.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.12.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.12.0...v2.12.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.12.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.12.1)
| https://github.com/aquaproj/aqua/compare/v2.12.0...v2.12.1

#### Bug Fixes

[#&#8203;2282](https://togithub.com/aquaproj/aqua/issues/2282) Fix a bug
that `supported_envs` gets true even if darwin isn't supported on
darwin/arm64

This bug was introduced in aqua v1.30.0.

-
[https://github.com/aquaproj/aqua-registry/pull/15753#issuecomment-1736716809](https://togithub.com/aquaproj/aqua-registry/pull/15753#issuecomment-1736716809)

We found an original issue and a pull request.

-
[https://github.com/aquaproj/aqua/issues/1512](https://togithub.com/aquaproj/aqua/issues/1512)
-
[https://github.com/aquaproj/aqua/pull/1514](https://togithub.com/aquaproj/aqua/pull/1514)

> Add darwin/arm64 to supported_envs if rosetta2 is enabled.
> Currently, we have to add darwin/arm64 explicitly even if rosetta2 is
enabled.

We remembered the intention, but this should be applied only if
darwin/amd64 is included in `supported_envs`.

### [`v2.12.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.12.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.11.0...v2.12.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.12.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.12.0)
| https://github.com/aquaproj/aqua/compare/v2.11.0...v2.12.0

#### Features

[#&#8203;2251](https://togithub.com/aquaproj/aqua/issues/2251)
[#&#8203;2254](https://togithub.com/aquaproj/aqua/issues/2254) Support
selecting packages interactively with a fuzzy finder when uninstalling
packages

Added `-i` option to `remove` command

```console
$ aqua rm -i
```

If enabling this option, you can select packages interactively with a
fuzzy finder.

#### Others

[#&#8203;2255](https://togithub.com/aquaproj/aqua/issues/2255) Update
aqua-proxy to v1.2.3

### [`v2.11.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.11.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.10.1...v2.11.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.11.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.11.0)
| https://github.com/aquaproj/aqua/compare/v2.10.1...v2.11.0

#### Features

[#&#8203;538](https://togithub.com/aquaproj/aqua/issues/538)
[#&#8203;2249](https://togithub.com/aquaproj/aqua/issues/2249) Support
uninstalling packages
[#&#8203;2131](https://togithub.com/aquaproj/aqua/issues/2131)
[#&#8203;2065](https://togithub.com/aquaproj/aqua/issues/2065) Support
`go_build` package

##### Support uninstalling packages

[#&#8203;538](https://togithub.com/aquaproj/aqua/issues/538)
[#&#8203;2249](https://togithub.com/aquaproj/aqua/issues/2249)

Add a subcommand `rm` to uninstall packages

##### Usage

```console
$ aqua rm --all [-a] # Uninstall all packages
```

```console
$ aqua rm [<registry name>,]<package name> [...] # Uninstall packages
```

##### Example

```console
$ aqua rm -a
```

```console
$ aqua rm cli/cli direnv/direnv
```

##### ⚠️ Limitation

The following package types can't be removed without `--all` option.

-   `http`
-   `go_install`

##### Support `go_build` package

[#&#8203;2039](https://togithub.com/orgs/aquaproj/discussions/2039)
[#&#8203;2131](https://togithub.com/aquaproj/aqua/issues/2131)
[#&#8203;2065](https://togithub.com/aquaproj/aqua/issues/2065)

The new package type `go_build` has been supported.

##### Example

```yaml
packages:
  - type: go_build
    repo_owner: suzuki-shunsuke
    repo_name: github-comment
    files:
      - name: github-comment
        src: ./cmd/github-comment
        dir: github-comment-{{trimV .Version}}
```


$AQUA_ROOT_DIR/pkgs/go_build/github.com/suzuki-shunsuke/github-comment/v4.0.0/
      bin/
        github-comment
      src/github-comment-4.0.0/
        cmd/github-comment/main.go
        ...

##### Why is the feature needed?

Because some packages couldn't be installed by `go install` but could be
installed by `go build`.

aqua ever supported `go` type package, but it was abandoned at aqua v2
because we thought we could replace it to `go_install` type package.

-   https://aquaproj.github.io/docs/reference/registry-config/go-package
-
https://aquaproj.github.io/docs/reference/upgrade-guide/v2/remove-type-go

But we found that some packages couldn't be installed by `go install`
but could be installed by `go build`.

For example, suzuki-shunsuke/github-comment v5 can't be installed by `go
install`.

```console
$ go install github.com/suzuki-shunsuke/github-comment/v5/cmd/[email protected]
go: github.com/suzuki-shunsuke/github-comment/v5/cmd/[email protected]: github.com/suzuki-shunsuke/[email protected]: invalid version: module contains a go.mod file, so module path must match major version ("github.com/suzuki-shunsuke/github-comment/v5")

$ go install github.com/suzuki-shunsuke/github-comment/cmd/[email protected] 
go: github.com/suzuki-shunsuke/github-comment/cmd/[email protected]: github.com/suzuki-shunsuke/[email protected]: invalid version: module contains a go.mod file, so module path must match major version ("github.com/suzuki-shunsuke/github-comment/v5")
```

This is because github-comment's go.mod was wrong.


https://github.com/suzuki-shunsuke/github-comment/blob/e5fd429b4d1bd84e8b825a2c7b693d6ac570022f/go.mod#L1

    module github.com/suzuki-shunsuke/github-comment

This issue was solved by github-comment v6, but github-comment v2 ~ v5
can't still be installed by `go install`.

-
[https://github.com/suzuki-shunsuke/github-comment/pull/900](https://togithub.com/suzuki-shunsuke/github-comment/pull/900)

There are many Go tools that can't be installed by `go install`.

#### Bug Fixes

[#&#8203;2120](https://togithub.com/aquaproj/aqua/issues/2120) Fix the
default checksum parser to support a tab character as separator
[#&#8203;2147](https://togithub.com/aquaproj/aqua/issues/2147) Use the
basename of the package name as the default command name
[#&#8203;2176](https://togithub.com/aquaproj/aqua/issues/2176)
generate-registry: Fix the format of `.tar.zst`
[#&#8203;2202](https://togithub.com/aquaproj/aqua/issues/2202)
generate-registry: Remove empty `error_message`
[#&#8203;2215](https://togithub.com/aquaproj/aqua/issues/2215) fix a log
field `version_constraint`

#### Others

[#&#8203;2151](https://togithub.com/aquaproj/aqua/issues/2151)
[#&#8203;2163](https://togithub.com/aquaproj/aqua/issues/2163)
[#&#8203;2227](https://togithub.com/aquaproj/aqua/issues/2227) Update Go
1.20.6 to 1.21.1

### [`v2.10.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.10.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.10.0...v2.10.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.10.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.10.1)
| https://github.com/aquaproj/aqua/compare/v2.10.0...v2.10.1

#### Bug Fixes

[#&#8203;2119](https://togithub.com/aquaproj/aqua/issues/2119) Stop
outputting checksum file paths except for `aqua update-checksum`

This is a bug of aqua
[v2.10.0](https://togithub.com/aquaproj/aqua/releases/tag/v2.10.0)
[#&#8203;2108](https://togithub.com/aquaproj/aqua/issues/2108)

### [`v2.10.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.10.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.9.1...v2.10.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.10.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.10.0)
| https://github.com/aquaproj/aqua/compare/v2.9.1...v2.10.0

#### Features

[#&#8203;2111](https://togithub.com/aquaproj/aqua/issues/2111) Add a
subcommand `info`
[#&#8203;2108](https://togithub.com/aquaproj/aqua/issues/2108)
update-checksum: Output created or updated file names

#### Others

[#&#8203;2110](https://togithub.com/aquaproj/aqua/issues/2110) Update
aqua-proxy v1.2.0 to v1.2.1

https://github.com/aquaproj/aqua-proxy/releases/tag/v1.2.1

##### Features - Add a subcommand `info`

[#&#8203;2111](https://togithub.com/aquaproj/aqua/issues/2111)

e.g.

```console
$ aqua info
{
  "version": "2.10.0",
  "commit_hash": "b80f805489c317d83d7fe0b182f3ef5c82a06725",
  "os": "darwin",
  "arch": "arm64",
  "pwd": "/Users/(USER)/Documents/aqua/info",
  "root_dir": "/Users/(USER)/.local/share/aquaproj-aqua",
  "env": {
    "AQUA_GITHUB_TOKEN": "(masked)",
    "AQUA_GLOBAL_CONFIG": "/Users/(USER)/repos/src/github.com/aquaproj/aqua-registry/aqua-all.yaml"
  },
  "config_files": [
    {
      "path": "/Users/(USER)/Documents/aqua/info/aqua/aqua.yaml"
    }
  ]
}
```

GitHub Access Token and user name are masked.

This is useful for troubleshooting.
Please paste the result of this command to your support issues.

##### Features - update-checksum: Output created or updated file names

[#&#8203;2108](https://togithub.com/aquaproj/aqua/issues/2108)

```console
$ aqua update-checksum
```

This is useful to commit and push created or updated files in CI.

### [`v2.9.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.9.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.9.0...v2.9.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.9.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.9.1)
| https://github.com/aquaproj/aqua/compare/v2.9.0...v2.9.1

#### Bug Fixes

[#&#8203;2098](https://togithub.com/aquaproj/aqua/issues/2098) Fix the
Windows support. Fix a bug that aqua skips renaming files mistakenly on
Windows.

This bug affects only Windows.
Windows can't execute files without file extension, but some packages
release executable files without file extension.
So aqua renames files to add file extension such as `.exe` on Windows
when aqua installs them.

This release fixes a bug that this feature doesn't work well.

#### Others

[#&#8203;2091](https://togithub.com/aquaproj/aqua/issues/2091) Update Go
1.20.5 to 1.20.6

### [`v2.9.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.9.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.8.0...v2.9.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.9.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.9.0)
| https://github.com/aquaproj/aqua/compare/v2.8.0...v2.9.0

#### Features

[#&#8203;2058](https://togithub.com/orgs/aquaproj/discussions/2058)
[#&#8203;2063](https://togithub.com/aquaproj/aqua/issues/2063) Support
disabling Lazy Install
[#&#8203;2027](https://togithub.com/orgs/aquaproj/discussions/2027)
[#&#8203;2062](https://togithub.com/aquaproj/aqua/issues/2062) Add
`-detail` option to "generate" command

##### Support disabling Lazy Install

[#&#8203;2058](https://togithub.com/orgs/aquaproj/discussions/2058)
[#&#8203;2063](https://togithub.com/aquaproj/aqua/issues/2063)

Lazy Install is enabled by default, but you can disable it with the
environment variable `AQUA_DISABLE_LAZY_INSTALL`.

e.g.

```sh
export AQUA_DISABLE_LAZY_INSTALL=true
```

If Lazy Install is disabled, the command would fail if the package isn't
installed in advance.

e.g.

```console
$ tfcmt -v
FATA[0000] aqua failed                                   aqua_version= doc="https://aquaproj.github.io/docs/reference/codes/006" env=darwin/arm64 error="the executable file isn't installed yet. Lazy Install is disabled" exe_name=tfcmt package=suzuki-shunsuke/tfcmt package_version=v1.0.0 program=aqua
```

Disabling Lazy Install is useful to improve the security and keep the
governance. You can prevent malicious commands from being installed and
executed via Lazy Install. And you can also prevent aqua.yaml from being
overwritten.

This is especially useful for CI of Monorepo.

The purpose is same with aqua's Policy, but disabling Lazy Install is
simpler than Policy.

##### Add `-detail` option to "generate" command

[#&#8203;2027](https://togithub.com/orgs/aquaproj/discussions/2027)
[#&#8203;2062](https://togithub.com/aquaproj/aqua/issues/2062)

With -detail (-d) option, aqua outputs additional information such as
description and link.

```console
$ aqua g -detail cli/cli
- name: cli/[email protected]
  description: GitHub’s official command line tool
  link: https://github.com/cli/cli
```

The environment variable `AQUA_GENERATE_WITH_DETAIL` is also available.

```sh
export AQUA_GENERATE_WITH_DETAIL=true
```

#### Others

[#&#8203;2046](https://togithub.com/aquaproj/aqua/issues/2046) Update Go
1.20.4 to 1.20.5

### [`v2.8.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.8.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.7.1...v2.8.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.8.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.8.0)
| https://github.com/aquaproj/aqua/compare/v2.7.1...v2.8.0

#### Features

[#&#8203;2016](https://togithub.com/orgs/aquaproj/discussions/2016)
[#&#8203;2019](https://togithub.com/aquaproj/aqua/issues/2019) Support a
new package type `cargo`, installing packages by `cargo install`
[#&#8203;2023](https://togithub.com/aquaproj/aqua/issues/2023) Support a
new command `root-dir`, outputting the aqua-root directory
`AQUA_ROOT_DIR` to the standard output

##### Support a new package type `cargo`

[#&#8203;2016](https://togithub.com/aquaproj/aqua/issues/2016)
[#&#8203;2019](https://togithub.com/aquaproj/aqua/issues/2019)
[Document](https://aquaproj.github.io/docs/reference/registry-config/cargo-package)

The package is installed by [cargo
install](https://doc.rust-lang.org/cargo/commands/cargo-install.html)
command.

You can manage tools written in Rust with aqua, which means you can
manage them and their versions declaratively in the consistent way. You
can switch tool versions per project and update them continuously by
Renovate!

For details, please see
[Document](https://aquaproj.github.io/docs/reference/registry-config/cargo-package)

##### Support a new command `root-dir`

[#&#8203;2023](https://togithub.com/aquaproj/aqua/issues/2023)

```console
$ aqua help root-dir
NAME:
   aqua root-dir - Output the aqua root directory (AQUA_ROOT_DIR)

USAGE:
   aqua root-dir [command options] [arguments...]

DESCRIPTION:
   Output the aqua root directory (AQUA_ROOT_DIR)
   e.g.

   $ aqua root-dir
   /home/foo/.local/share/aquaproj-aqua

   $ export "PATH=$(aqua root-dir)/bin:PATH"

OPTIONS:
   --help, -h  show help
```

### [`v2.7.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.7.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.7.0...v2.7.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.7.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.7.1)
| https://github.com/aquaproj/aqua/compare/v2.7.0...v2.7.1

#### Bug Fixes

[#&#8203;2003](https://togithub.com/aquaproj/aqua/issues/2003)
[#&#8203;2006](https://togithub.com/aquaproj/aqua/issues/2006) Fix a bug
that [the progress
bar](https://aquaproj.github.io/docs/reference/config/progress-bar/)
doesn't work well if some verification such as checksum, SLSA, and
Cosign are enabled
[#&#8203;2013](https://togithub.com/aquaproj/aqua/issues/2013)
[#&#8203;2015](https://togithub.com/aquaproj/aqua/issues/2015) Convert
`files[].src` with
[filepath.FromSlash](https://pkg.go.dev/path/filepath#FromSlash) for
Windows

#### Others

[#&#8203;2014](https://togithub.com/aquaproj/aqua/issues/2014) Support
the character `tab` as a separator of the default checksum parser

### [`v2.7.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.7.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.6.0...v2.7.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.7.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.7.0)
| https://github.com/aquaproj/aqua/compare/v2.6.0...v2.7.0

#### Features

[#&#8203;1803](https://togithub.com/aquaproj/aqua/issues/1803)
[#&#8203;2002](https://togithub.com/aquaproj/aqua/issues/2002) Support
unarchiving `PKG` format on macOS

#### Others

[#&#8203;1996](https://togithub.com/aquaproj/aqua/issues/1996) Update
slsa-verifier to v2.3.0
[#&#8203;1997](https://togithub.com/aquaproj/aqua/issues/1997)
[#&#8203;2001](https://togithub.com/aquaproj/aqua/issues/2001)
Refactoring

### [`v2.6.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.6.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.5.2...v2.6.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.6.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.6.0)
| https://github.com/aquaproj/aqua/compare/v2.5.2...v2.6.0

#### Features

[#&#8203;1984](https://togithub.com/aquaproj/aqua/issues/1984)
generate-registry: Enable to parse tags not conforming to semver

*If you don't develop Registry or don't contribute to Standard Registry,
you can ignore this release.*

generate-registry command couldn't parse tags not conforming to semver.
This release enables aqua to parse those tags and extract prefixes and
versions.

For example, this release enables aqua to parse the tag
[version\_112](https://togithub.com/WebAssembly/binaryen/releases/tag/version\_112)
and extracts the prefix `version_` and the version `112`.

### [`v2.5.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.5.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.5.1...v2.5.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.5.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.5.2)
| https://github.com/aquaproj/aqua/compare/v2.5.1...v2.5.2

#### Fixes

[#&#8203;1983](https://togithub.com/aquaproj/aqua/issues/1983)
generate-registry: Use the default checksum parser

### [`v2.5.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.5.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.5.0...v2.5.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.5.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.5.1)
| https://github.com/aquaproj/aqua/compare/v2.5.0...v2.5.1

#### Fixes

[#&#8203;1979](https://togithub.com/aquaproj/aqua/issues/1979)
generate-registry: Add `unknown-linux` and `pc-windows` to patterns of
`replacements`
[#&#8203;1872](https://togithub.com/aquaproj/aqua/issues/1872)
[#&#8203;1976](https://togithub.com/aquaproj/aqua/issues/1976) Move the
symbolic link of `aqua-proxy` from `$AQUA_ROOT_DIR/bin/aqua-proxy` to
`$AQUA_ROOT_DIR/aqua-proxy`

### [`v2.5.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.5.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.4.3...v2.5.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.5.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.5.0)
| https://github.com/aquaproj/aqua/compare/v2.4.3...v2.5.0

#### Features

[#&#8203;1925](https://togithub.com/aquaproj/aqua/issues/1925)
[#&#8203;1926](https://togithub.com/aquaproj/aqua/issues/1926) Execute
commands by `execve(2)` by default

https://aquaproj.github.io/docs/reference/execve-2

[#&#8203;710](https://togithub.com/aquaproj/aqua/issues/710)
[#&#8203;729](https://togithub.com/aquaproj/aqua/issues/729)
[#&#8203;1597](https://togithub.com/aquaproj/aqua/issues/1597)
[#&#8203;1925](https://togithub.com/aquaproj/aqua/issues/1925)

⚠️ In Windows this feature doesn't work.
In Windows, aqua creates small shell scripts and bat scripts instead of
`aqua-proxy` and symbolic links.
And Windows doesn't support `execve(2)`, so the environment variable
`AQUA_X_SYS_EXEC` is ignored.

When a command `x` is executed via aqua, the command is executed as the
following.

1.  $AQUA_ROOT_DIR/bin/x: symbolic link to aqua-proxy
2.  aqua-proxy executes the command `aqua exec -- x`
3.  aqua executes `x`

So the command `x` is executed via `aqua-proxy` and `aqua`.
Until aqua v2.5.0, `aqua-proxy` and `aqua` executed commands as
subprocess. You can confirm it by checking the process tree by `pstree`
command.

e.g.

```console
$ nvim # nvim is managed by aqua
$ pstree -s nvim
```

         \-+= 00719 shunsukesuzuki -zsh
           \-+= 09955 shunsukesuzuki nvim # aqua-proxy
             \-+- 09956 shunsukesuzuki aqua exec -- nvim
\--- 09957 shunsukesuzuki
/Users/shunsukesuzuki/.local/share/aquaproj-aqua/pkgs/github_release/github.com/neovim/neovim/v0.7.0/nvim-macos.tar.gz/nvim-osx64/bin/nvim

<!---->

    aqua-proxy -> aqua -> x

Sometimes this behaviour caused trouble.
[#&#8203;710](https://togithub.com/aquaproj/aqua/issues/710)
[#&#8203;1597](https://togithub.com/aquaproj/aqua/issues/1597)

From aqua v2.5.0, `aqua-proxy` and `aqua` execute commands by
[execve(2)](https://pkg.go.dev/golang.org/x/sys/unix#Exec) in Linux and
macOS by default.

So extra subprocess isn't raised.

         \-+= 82315 shunsukesuzuki -zsh
           \-+= 82630 shunsukesuzuki nvim

If you feel aqua becomes unstable due to this feature, you can disable
this feature by the environment variable `AQUA_X_SYS_EXEC`.

```sh
export AQUA_X_SYS_EXEC=false
```

#### Others

[#&#8203;1926](https://togithub.com/aquaproj/aqua/issues/1926) Update
aqua-proxy to
[v1.2.0](https://togithub.com/aquaproj/aqua-proxy/releases/tag/v1.2.0)
[#&#8203;1964](https://togithub.com/aquaproj/aqua/issues/1964) Improve
error messages when it failed to install aqua-proxy, cosign, and
slsa-verifier

### [`v2.4.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.4.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.4.2...v2.4.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.4.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.4.3)
| https://github.com/aquaproj/aqua/compare/v2.4.2...v2.4.3

#### Bug Fixes

[#&#8203;1961](https://togithub.com/aquaproj/aqua/issues/1961)
[#&#8203;1963](https://togithub.com/aquaproj/aqua/issues/1963) Fix the
hardcoded checksum of slsa-verifier windows/amd64

The checksum of slsa-verifier v2.2.0 windows/amd64 was wrong.
So it failed to install slsa-verifier internally.

This bug affects only windows/amd64.

This bug affects aqua >= 2.3.7, aqua <= 2.4.2

-
[https://github.com/aquaproj/aqua/issues/1961#issuecomment-1536897000](https://togithub.com/aquaproj/aqua/issues/1961#issuecomment-1536897000)

### [`v2.4.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.4.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.4.1...v2.4.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.4.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.4.2)
| https://github.com/aquaproj/aqua/compare/v2.4.1...v2.4.2

#### Bu

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDguMCIsInVwZGF0ZWRJblZlciI6IjM3LjEwOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: mend-for-github-com[bot] <50673670+mend-for-github-com[bot]@users.noreply.github.com>
sheldonhull referenced this issue in DelineaXPM/dsv-github-action Jan 23, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [aquaproj/aqua](https://togithub.com/aquaproj/aqua) | major |
`v1.38.0` -> `v2.21.3` |

---

### Release Notes

<details>
<summary>aquaproj/aqua (aquaproj/aqua)</summary>

### [`v2.21.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.21.2...v2.21.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.3)
| https://github.com/aquaproj/aqua/compare/v2.21.2...v2.21.3

##### Bug Fixes

[#&#8203;2585](https://togithub.com/aquaproj/aqua/issues/2585)
[#&#8203;2586](https://togithub.com/aquaproj/aqua/issues/2586) Update
checksums of cosign

### [`v2.21.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.21.1...v2.21.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.2)
| https://github.com/aquaproj/aqua/compare/v2.21.1...v2.21.2

##### ⚠️ This release has a bug

The bug was already fixed at v2.21.3

##### Others

[#&#8203;2582](https://togithub.com/aquaproj/aqua/issues/2582) Fix a bug
of release workflow

### [`v2.21.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.21.0...v2.21.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.1)
| https://github.com/aquaproj/aqua/compare/v2.21.0...v2.21.1

##### ⚠️ The release failed


https://github.com/aquaproj/aqua/actions/runs/7260967360/job/19781204828#step:10:147

      ⨯ release failed after 2m26s               error=1 error occurred:
* scoop manifests: could not update "aqua.json": PUT
https://api.github.com/repos/aquaproj/scoop-bucket/contents/aqua.json:
403 Resource not accessible by integration []

We fixed the bug and release v2.21.2.

##### Bug Fixes

[#&#8203;2534](https://togithub.com/aquaproj/aqua/issues/2534) Fix a bug
of root dir on Windows
[#&#8203;2580](https://togithub.com/aquaproj/aqua/issues/2580)
[#&#8203;2581](https://togithub.com/aquaproj/aqua/issues/2581) Fix a bug
that validation fails even if no_asset or error_message is set
[https://github.com/aquaproj/aqua-registry/pull/18326#issuecomment-1862164476](https://togithub.com/aquaproj/aqua-registry/pull/18326#issuecomment-1862164476)

### [`v2.21.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.20.0...v2.21.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.0)
| https://github.com/aquaproj/aqua/compare/v2.20.0...v2.21.0

##### Features

[#&#8203;2517](https://togithub.com/aquaproj/aqua/issues/2517)
[#&#8203;2518](https://togithub.com/aquaproj/aqua/issues/2518) perf:
Convert Standard Registry and github_content Registries from YAML to
JSON when installing them

This update improves the performance to read Registries.
Stanard registry is a huge YAML file over 30,000 lines so it has a
little overhead to read it.
By this update, aqua converts Standard Registry and github_content
Registries from YAML to JSON.
JSON format decreases the overhead.
aqua converts them internally, so we don't need to do anything.

### [`v2.20.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.20.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.19.0...v2.20.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.20.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.20.0)
| https://github.com/aquaproj/aqua/compare/v2.19.0...v2.20.0

##### Features

[#&#8203;2514](https://togithub.com/orgs/aquaproj/discussions/2514)
[#&#8203;2515](https://togithub.com/aquaproj/aqua/issues/2515) Add a
field `windows_arm_emulation` for Windows ARM Emulation

ARM based Windows 11 supports the emulation to run x64 Windows apps.


https://learn.microsoft.com/en-us/windows/arm/add-arm-support#emulation-on-arm-based-devices-for-x86-or-x64-windows-apps

> Windows 11 extends that emulation to run unmodified x64 Windows apps
on Arm-powered devices.

If the field `windows_arm_emulation` is `true`, aqua uses pre built
binaries for Windows amd64 on Windows arm64. `windows_arm_emulation`
must be boolean. By default, `windows_arm_emulation` is false.

`windows_arm_emulation` is similar with
[rosetta2](https://aquaproj.github.io/docs/reference/registry-config/rosetta2).

### [`v2.19.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.19.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.18.0...v2.19.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.19.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.19.0)
| https://github.com/aquaproj/aqua/compare/v2.18.0...v2.19.0

##### Features

[#&#8203;2506](https://togithub.com/orgs/aquaproj/discussions/2506)
[#&#8203;2507](https://togithub.com/aquaproj/aqua/issues/2507) which:
Add the command line option `--version`

e.g.

```console
$ aqua which --version yq
v4.40.2
```

##### Bug Fixes

[#&#8203;2508](https://togithub.com/orgs/aquaproj/discussions/2508)
[#&#8203;2512](https://togithub.com/aquaproj/aqua/issues/2512) Fix a bug
of bash scripts for Git Bash

https://www.shellcheck.net/wiki/SC2086

Bash scripts generated by aqua had a bug that command line arguments
having spaces were separated to multiple arguments incorrectly.

```console
$  curl -sSfL https://jsonplaceholder.typicode.com/todos | jq '.[] | .id'
jq: error: Could not open file |: Invalid argument
jq: error: Could not open file .id: No such file or directory
```

### [`v2.18.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.18.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.4...v2.18.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.18.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.18.0)
| https://github.com/aquaproj/aqua/compare/v2.17.4...v2.18.0

##### Features

[#&#8203;2494](https://togithub.com/aquaproj/aqua/issues/2494) update:
Support specifying new package versions

e.g.

```sh
aqua up [email protected]
```

[#&#8203;2461](https://togithub.com/aquaproj/aqua/issues/2461) Add debug
logs of `update` and `generate` commands
[@&#8203;dreamjz](https://togithub.com/dreamjz)

##### Bug Fixes

[#&#8203;2493](https://togithub.com/aquaproj/aqua/issues/2493)
[#&#8203;2495](https://togithub.com/aquaproj/aqua/issues/2495)
generate-registry: Fix the pagination of GitHub API List Releases

### [`v2.17.4`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.4)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.3...v2.17.4)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.4)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.4)
| https://github.com/aquaproj/aqua/compare/v2.17.3...v2.17.4

#### Others

[#&#8203;2401](https://togithub.com/aquaproj/aqua/issues/2401)
[#&#8203;2483](https://togithub.com/aquaproj/aqua/issues/2483) Release
aqua to
[Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/)
🎉


[https://github.com/microsoft/winget-pkgs/pull/127174](https://togithub.com/microsoft/winget-pkgs/pull/127174)

### [`v2.17.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.2...v2.17.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.3)
| https://github.com/aquaproj/aqua/compare/v2.17.2...v2.17.3

##### Bug Fixes 🐞

[#&#8203;2476](https://togithub.com/orgs/aquaproj/discussions/2476)
[#&#8203;2479](https://togithub.com/aquaproj/aqua/issues/2479) policy:
fix a bug that the [Git Repository root's policy
file](https://aquaproj.github.io/docs/reference/security/policy-as-code/git-policy/)
doesn't work well in working trees

##### Others

[#&#8203;2470](https://togithub.com/aquaproj/aqua/issues/2470)
[#&#8203;2472](https://togithub.com/aquaproj/aqua/issues/2472) Replace
the third party library github.com/codingsince1985/checksum with
standard libraries

This library caused the bug
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) and we
can replace the library with standard libraries easily.
We should use standard libraries as much as possible.

[#&#8203;2473](https://togithub.com/aquaproj/aqua/issues/2473) Revert
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)

[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469) was
required to resolve
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) , but
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) was
resolved by
[#&#8203;2472](https://togithub.com/aquaproj/aqua/issues/2472) so
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469) is
unnecessary anymore.


[https://github.com/aquaproj/aqua/pull/2472#issuecomment-1812023515](https://togithub.com/aquaproj/aqua/pull/2472#issuecomment-1812023515)

### [`v2.17.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.1...v2.17.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.2)
| https://github.com/aquaproj/aqua/compare/v2.17.1...v2.17.2

#### Bug Fixes

[#&#8203;2457](https://togithub.com/orgs/aquaproj/discussions/2457)
[#&#8203;2458](https://togithub.com/aquaproj/aqua/issues/2458) update:
Fix a panic when trying to update commands unmanaged by aqua
[@&#8203;dreamjz](https://togithub.com/dreamjz)
[#&#8203;2468](https://togithub.com/aquaproj/aqua/issues/2468) policy
init: Fix typo in CLI output [@&#8203;ka2n](https://togithub.com/ka2n)
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467)
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)
update-checksum: Copy an asset to a temporal file to calculate the
checksum correctly

##### update-checksum: Copy an asset to a temporal file to calculate the
checksum correctly

[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467)
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)

This fixes a bug that the checksum verification of aws/aws-cli fails
because the expected checksum of aws/aws-cli is wrong.

If you face the issue already, please remove checksums of aws/aws-cli
from aqua-checksums.json and run `aqua update-checksum` with aqua
v2.17.2 or newer.

aqua-checksums.json

```json
    // Delete this element
    {
      "id": "http/awscli.amazonaws.com/AWSCLIV2-2.13.35.pkg",
      "checksum": "520E1CB49004ECED7DB1CFE70E6FA73EFC6EDDF1CDB38AF535D126F1DB6574C8",
      "algorithm": "sha256"
    },
```

#### 🎉 New Contributors

Thank you for your contribution!

[@&#8203;ka2n](https://togithub.com/ka2n)
[#&#8203;2468](https://togithub.com/aquaproj/aqua/issues/2468)

### [`v2.17.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.0...v2.17.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.1)
| https://github.com/aquaproj/aqua/compare/v2.17.0...v2.17.1

#### Bug Fixes 🐞

[#&#8203;2456](https://togithub.com/aquaproj/aqua/issues/2456)
generate-registry: Fix a bug that the order of versions in pkg.yaml is
wrong

### [`v2.17.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.4...v2.17.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.0)
| https://github.com/aquaproj/aqua/compare/v2.16.4...v2.17.0

##### Features

[#&#8203;2355](https://togithub.com/aquaproj/aqua/issues/2355)
[#&#8203;2447](https://togithub.com/aquaproj/aqua/issues/2447) Limit the
number of versions retrieved by command `generate` and `update`
[@&#8203;dreamjz](https://togithub.com/dreamjz)

With aqua v2.16.4 or earlier, `aqua generate -s` and `aqua update -s`
retrieved all versions and these commands couldn't change the number of
versions.
This release adds the command line option `--limit/-l` to these
commands.
The value of this option is the number of versions.
The default value is `30`.
If the value is less than zero, all versions are retrieved.

This change would reduced useless GitHub API calls and make these
commands faster.

e.g.

```sh
aqua g -s # Retrieve 30 versions
aqua g -s -l 10 # Retrieve 10 versions
aqua g -s -l -1 # Retrieve all versions
```

[#&#8203;2445](https://togithub.com/aquaproj/aqua/issues/2445) Change
the default checksum algorithm from `sha512` to `sha256`

sha256 is enough.
We don't need to use sha512.

[#&#8203;2428](https://togithub.com/aquaproj/aqua/issues/2428) Add an
alias of `update-checksum` command

```sh
aqua upc
```

[#&#8203;2105](https://togithub.com/aquaproj/aqua/issues/2105)
[#&#8203;2425](https://togithub.com/aquaproj/aqua/issues/2425)
[#&#8203;2413](https://togithub.com/aquaproj/aqua/issues/2413)
generate-registry: Improve the format of `version_overrides` and improve
the logic to generate `version_overrides`

##### Bug Fixes 🐞

[#&#8203;2444](https://togithub.com/aquaproj/aqua/issues/2444)
generate-registry: Fix checksum filename for sha1

##### Others

[#&#8203;2436](https://togithub.com/aquaproj/aqua/issues/2436)
chore(deps): update dependency slsa-framework/slsa-verifier to v2.4.1
[#&#8203;2395](https://togithub.com/aquaproj/aqua/issues/2395) change
the format of prebuilt binaries for Windows to zip

Before:

aqua_windows_amd64.tar.gz
aqua_windows_arm64.tar.gz

After:

aqua_windows_amd64.zip
aqua_windows_arm64.zip

On Windows zip is more user friendly than tar.gz.
And to support Winget for Windows, it seems we need to change the format
to zip.

-
[https://github.com/aquaproj/aqua/issues/2401](https://togithub.com/aquaproj/aqua/issues/2401)

<!---->

      • winget
⨯ release failed after 1m11s error=no zip archives found matching
goos=[windows] goarch=[amd64 386] goamd64=v1 ids=[]
    Error: Process completed with exit code 1.

⚠️ To upgrade aqua to v2.17.0 or newer on Windows, you need to upgrade
aqua to v2.16.1 ~ v2.16.4 once.

e.g.

```sh
aqua upa v2.16.4
aqua upa
```

##### New Contributors 🎉

Thank you for your contribution!

[@&#8203;dreamjz](https://togithub.com/dreamjz)
[#&#8203;2447](https://togithub.com/aquaproj/aqua/issues/2447)

### [`v2.16.4`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.4)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.3...v2.16.4)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.4)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.4)
| https://github.com/aquaproj/aqua/compare/v2.16.3...v2.16.4

##### Bug Fixes

[#&#8203;2420](https://togithub.com/aquaproj/aqua/issues/2420)
generate-registry: Get latest versions of cargo packages

### [`v2.16.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.2...v2.16.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.3)
| https://github.com/aquaproj/aqua/compare/v2.16.2...v2.16.3

##### Bug Fixes

[#&#8203;2414](https://togithub.com/orgs/aquaproj/discussions/2414)
[#&#8203;2415](https://togithub.com/aquaproj/aqua/issues/2415) fix a bug
that AQUA_DISABLE_POLIDY doesn't work
[#&#8203;2412](https://togithub.com/aquaproj/aqua/issues/2412)
generate-registry: Improve the judgement of OS by file extensions such
as `.exe`, `.pkg`, and `.dmg`

##### Others

Refactoring

### [`v2.16.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.1...v2.16.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.2)
| https://github.com/aquaproj/aqua/compare/v2.16.1...v2.16.2

#### Others

[#&#8203;2399](https://togithub.com/aquaproj/aqua/issues/2399)
[#&#8203;2400](https://togithub.com/aquaproj/aqua/issues/2400) Support
[Scoop](https://scoop.sh/) 🎉

You can install aqua by [Scoop](https://scoop.sh/) on Windows.

```sh
scoop bucket add aquaproj https://github.com/aquaproj/scoop-bucket
scoop install aqua
```

### [`v2.16.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.0...v2.16.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.1)
| https://github.com/aquaproj/aqua/compare/v2.16.0...v2.16.1

##### Bug Fixes

[#&#8203;2393](https://togithub.com/aquaproj/aqua/issues/2393)
generate-registry: Fix the usage of `-cmd` option

##### Others

[#&#8203;2394](https://togithub.com/aquaproj/aqua/issues/2394)
[#&#8203;2396](https://togithub.com/aquaproj/aqua/issues/2396) Change
the format to zip on Windows at aqua v2.17.0

This is a preparation for the future change.
At aqua v2.17.0, the format of prebuilt binaries for Windows will be
changed from `tar.gz` to `zip`.
This is because `zip` is more user friendly for Windows Users and some
tools such as Winget expects zip.


https://github.com/goreleaser/goreleaser/blob/b1271d2559e05711e31c6d39c9cbf9eb3e808d5a/internal/pipe/winget/winget.go#L41

To upgrade aqua to v2.17.0 or later on Windows, you need to upgrade aqua
to v2.16.1 or later first.
aqua can't upgrade aqua from v2.16.0 or earlier to v2.17.0 or later on
Windows.

```console
$ aqua update-aqua v2.16.1
$ aqua update-aqua
```

### [`v2.16.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.15.1...v2.16.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.0)
| https://github.com/aquaproj/aqua/compare/v2.15.1...v2.16.0

#### Features

[#&#8203;2380](https://togithub.com/aquaproj/aqua/issues/2380) Support
removing packages by command names

e.g.

```sh
aqua rm tfcmt # Remove suzuki-shunsuke/tfcmt
```

### [`v2.15.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.15.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.15.0...v2.15.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.15.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.15.1)
| https://github.com/aquaproj/aqua/compare/v2.15.0...v2.15.1

##### Bug Fixes

[#&#8203;2376](https://togithub.com/aquaproj/aqua/issues/2376) Fix a bug
that aqua stops searching configuration files if files are located in
either aqua or .aqua directory

##### How to reproduce the issue

Directory structure

    /workspace/
      aqua.yaml
      foo/ # current directory
        aqua/
          aqua.yaml

Run `aqua i`.

```sh
aqua i
```

##### Expected behaviour

aqua installs packages with `/workspace/aqua.yaml` and
`/workspace/foo/aqua/aqua.yaml`.

##### Actual behaviour

aqua installs packages with only `/workspace/foo/aqua/aqua.yaml`, and
ignores `/workspace/aqua.yaml`.

### [`v2.15.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.15.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.14.1...v2.15.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.15.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.15.0)
| https://github.com/aquaproj/aqua/compare/v2.14.1...v2.15.0

##### Overview

-   Features
- [#&#8203;2351](https://togithub.com/aquaproj/aqua/issues/2351)
[#&#8203;2366](https://togithub.com/aquaproj/aqua/issues/2366)
generate-registry: Get all GitHub Releases by default
- [#&#8203;2349](https://togithub.com/aquaproj/aqua/issues/2349)
[#&#8203;2362](https://togithub.com/aquaproj/aqua/issues/2362)
generate-registry: Add an option `-cmd`
-   Others
- [#&#8203;2359](https://togithub.com/aquaproj/aqua/issues/2359)
update-aqua: Add an alias `upa` to the command

##### generate-registry: Get all GitHub Releases by default

[#&#8203;2351](https://togithub.com/aquaproj/aqua/issues/2351)
[#&#8203;2366](https://togithub.com/aquaproj/aqua/issues/2366)

The behaviour of `generate-registry` command was changed.
The command gets all GitHub Releases by default to generate
`version_overrides`.

The option `--deep` is deprecated. The option has no meaning anymore.
The option is kept only for the compatibility.
The option will be removed at aqua v3.

The option `--limit (-l)` is added. This option takes an integer, which
is the maximum number of releases.

e.g.

```sh
aqua gr --limit 100
```

##### generate-registry: Add an option `-cmd`

[#&#8203;2349](https://togithub.com/aquaproj/aqua/issues/2349)
[#&#8203;2362](https://togithub.com/aquaproj/aqua/issues/2362)

If `-cmd` is set, `files` is set.

e.g.

```console
$ aqua gr -cmd gh cli/cli
```

```yaml

##### ...
  files:
    - name: gh
```

You can specify multiple commands with commas `,`.

e.g.

```console
$ aqua gr -cmd age,age-keygen FiloSottile/age
```

```yaml

##### ...
  files:
    - name: age
    - name: age-keygen
```

##### update-aqua: Add an alias `upa` to the command

[#&#8203;2359](https://togithub.com/aquaproj/aqua/issues/2359)

`update-aqua` is too long.

```console
$ aqua upa # update-aqua
```

### [`v2.14.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.14.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.14.0...v2.14.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.14.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.14.1)
| https://github.com/aquaproj/aqua/compare/v2.14.0...v2.14.1

##### Fixes

[#&#8203;2354](https://togithub.com/aquaproj/aqua/issues/2354)
[#&#8203;2356](https://togithub.com/aquaproj/aqua/issues/2356) generate:
Fixed a bug that sometimes `aqua g` outputs non latest version

versiongetter: Fix getting the latest version

Use GetLatestRelease API before using ListReleases API

[#&#8203;2245](https://togithub.com/aquaproj/aqua/issues/2245)
[#&#8203;2358](https://togithub.com/aquaproj/aqua/issues/2358) generate:
Fixed a bug that `aqua g -i` fails when a comment exists in the same
line with `packages:`

Get string values from `*ast.StringNode.Value` instead of
`ast.MapKeyNode.String()`

##### Others

[#&#8203;2340](https://togithub.com/aquaproj/aqua/issues/2340)
fix(deps): update module github.com/google/go-github/v55 to v56

### [`v2.14.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.14.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.13.1...v2.14.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.14.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.14.0)
| https://github.com/aquaproj/aqua/compare/v2.13.1...v2.14.0

[#&#8203;1657](https://togithub.com/aquaproj/aqua/issues/1657)
[#&#8203;2329](https://togithub.com/aquaproj/aqua/issues/2329) Update
registries and packages by update command

Finally `aqua update` command is supported 🎉
You can update all packages and registries, or select updated packages.
You can also select packages and versions with fuzzy finder.

[Document](https://aquaproj.github.io/docs/guides/update-command/)

> \[!NOTE]\
> You can update registries and packages by Renovate too.
> Please see [Update packages by
Renovate](https://aquaproj.github.io/docs/guides/renovate).

You can update registries and packages by `aqua update (up)` command.

If no argument is passed, all registries and packages are updated to the
latest.

```sh

##### Update all packages and registries to the latest versions
aqua update
```

This command has an alias "up"

```sh
aqua up
```

This command

- gets the latest version from GitHub Releases, GitHub Tags, and
crates.io and updates aqua.yaml
-   doesn't install packages

##### Updated configuration file paths

This command finds a configuration file `aqua.yaml` according to [the
rule](https://aquaproj.github.io/docs/reference/config/#configuration-file-path)
and updates only one file.
Once this command finds one file, it stops searching other aqua.yaml.

So if you want to update other files, please change the current
directory or specify the configuration file path with the option `-c`.

```sh
aqua -c foo/aqua.yaml update
```

##### Update only registries

If you want to update only registries, please use the `--only-registry
[-r]` option.

```sh

##### Update only registries
aqua update -r
```

##### Update only packages

If you want to update only packages, please use the `--only-package
[-p]` option.

```sh

##### Update only packages
aqua update -p
```

##### Update only specific commands

You can specify packages with command names. aqua finds packages that
have these commands and updates them.

```sh
aqua update <command name> [<command name> ...]
```

e.g.

```sh

##### Update cli/cli
aqua update gh
```

##### Select packages with Fuzzy Finder

If you want to update only specific packages, please use the `-i`
option.
You can select packages with the fuzzy finder.
If `-i` option is used, registries aren't updated.

```sh

##### Select updated packages with fuzzy finder
aqua update -i
```

##### Select the package version with Fuzzy Finder

If you want to select versions, please use the `-s` option.
You can select versions with the fuzzy finder. You can not only update
but also downgrade packages.

```sh

##### Select updated packages and versions with fuzzy finder
aqua update -i -s
```

##### The field `version` is ignored

This command doesn't update packages if the `version` field is used.

```yaml
packages:
  - name: cli/[email protected] # Update
  - name: gohugoio/hugo
    version: v0.118.0 # Doesn't update
```

So if you don't want to update specific packages, the `version` field is
useful.

##### commit hashes are ignored

This command doesn't update commit hashes.

```yaml
packages:
  - name: google/pprof@d04f2422c8a17569c14e84da0fae252d9529826b # Doesn't update
```

##### ⚠️ Known Issues

There are some known issues related to the third party library
[goccy/go-yaml](https://togithub.com/goccy/go-yaml).

##### `null` is set to `packages` wrongly if registries are updated and
`packages` is empty

This issue is because of the third party library
[goccy/go-yaml](https://togithub.com/goccy/go-yaml).

Before

```yaml
registries:
- ref: v4.60.0
  type: standard
packages:
```

Run `aqua up`.

```console
$ aqua up
INFO[0000] updating a registry                           aqua_version= env=darwin/arm64 new_version=v4.65.0 old_version=v4.60.0 program=aqua registry_name=standard
```

After

```yaml
registries:
- ref: v4.65.0
  type: standard
packages: null
```

##### Newlines are removed wrongly

This issue is because of the third party library
[goccy/go-yaml](https://togithub.com/goccy/go-yaml).

-
[https://github.com/goccy/go-yaml/issues/285](https://togithub.com/goccy/go-yaml/issues/285)

Before

```yaml
registries:
- ref: v4.60.0
  type: standard

packages:
- name: suzuki-shunsuke/[email protected]
```

Run `aqua up`.

```console
$ aqua up
INFO[0000] updating a registry                           aqua_version= env=darwin/arm64 new_version=v4.65.0 old_version=v4.60.0 program=aqua registry_name=standard
```

After

```yaml
registries:
- ref: v4.65.0
  type: standard
packages:
- name: suzuki-shunsuke/[email protected]
```

##### Discord Channel was open 🎉

This has nothing to do with this release, but we opened a Discord
channel 🎉

https://discord.com/channels/1141777454164365382/1162444533959757955

### [`v2.13.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.13.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.13.0...v2.13.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.13.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.13.1)
| https://github.com/aquaproj/aqua/compare/v2.13.0...v2.13.1

#### Others

[#&#8203;2332](https://togithub.com/aquaproj/aqua/issues/2332)
chore(deps): update dependency golang/go to v1.21.3
[#&#8203;2335](https://togithub.com/aquaproj/aqua/issues/2335)
fix(deps): update module github.com/google/go-cmp to v0.6.0

### [`v2.13.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.13.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.12.2...v2.13.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.13.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.13.0)
| https://github.com/aquaproj/aqua/compare/v2.12.2...v2.13.0

This release includes several improvement of Registry settings.
This updates affect Registry developers including aqua-registry's
contributors.
There is no direct change for almost all aqua users.

To keep the compatibility and minimize the effect to users, we won't use
new features in
[aqua-registry](https://togithub.com/aquaproj/aqua-registry) for at
least one month after v2.13.0 is released.
If we apply new features to existing packages of aqua-registry, this
requires a major update of aqua-registry because this is a breaking
change.

#### Features

[#&#8203;2318](https://togithub.com/aquaproj/aqua/issues/2318)
[#&#8203;2320](https://togithub.com/aquaproj/aqua/issues/2320) Add a new
field `envs` to `overrides` instead of `goos` and `goarch`
[#&#8203;2132](https://togithub.com/aquaproj/aqua/issues/2132)
[#&#8203;2317](https://togithub.com/aquaproj/aqua/issues/2317) Support
using `go_install` or `go_build` if the platform isn't included in
`supported_envs`
[#&#8203;1774](https://togithub.com/aquaproj/aqua/issues/1774)
[#&#8203;2314](https://togithub.com/aquaproj/aqua/issues/2314) Support
omitting `.{{.Format}}` in `asset` and `url`
[#&#8203;1876](https://togithub.com/aquaproj/aqua/issues/1876)
[#&#8203;2313](https://togithub.com/aquaproj/aqua/issues/2313) Support
short file extensions in `format`
[#&#8203;1774](https://togithub.com/aquaproj/aqua/issues/1774)
[#&#8203;2310](https://togithub.com/aquaproj/aqua/issues/2310) Add the
template variable `AssetWithoutExt` to `files[].src`

##### Add a new field `envs` to `overrides` instead of `goos` and
`goarch`

[#&#8203;2318](https://togithub.com/aquaproj/aqua/issues/2318)
[#&#8203;2320](https://togithub.com/aquaproj/aqua/issues/2320)

Add a new field `envs` to `overrides`.
The syntax of `envs` is same with `supported_envs`.

The syntax of `envs` is more flexible than the combination of `goos` and
`goarch`.
In some cases we can simplify the code.

For example, the combination of `goos` and `goarch` can't express the
pair of `linux/arm64` and `windows/arm64`.

```yaml
overrides:
  - goos: windows
    goarch: arm64

### ...
  - goos: linux
    goarch: arm64

### ...
```

`envs` can simplify the code.

```yaml
overrides:
  - envs:
      - windows/arm64
      - linux/arm64

### ...
```

##### Support using `go_install` or `go_build` if the platform isn't
included in `supported_envs`

[#&#8203;2132](https://togithub.com/aquaproj/aqua/issues/2132)
[#&#8203;2317](https://togithub.com/aquaproj/aqua/issues/2317)

A new field `build` is added to Registry settings.
This enables to install packages by `go_install` or `go_build` on
platforms where prebuilt binaries aren't published.

This is an example usage of the new field `build`.

```yaml
packages:
  - type: github_release
    repo_owner: suzuki-shunsuke
    repo_name: tfcmt
    asset: tfcmt_{{.OS}}_{{.Arch}}.{{.Format}}
    format: tar.gz
    supported_envs:
      - linux
    build:
      type: go_build
      files:
        - name: tfcmt
          src: ./cmd/tfcmt
          dir: tfcmt-{{trimV .Version}}
```

`supported_envs` is `linux`, so on platforms other than linux aqua
installs tfcmt by `go_build`.

`go_install` is also available.

```yaml
    build:
      type: go_install
      path: github.com/suzuki-shunsuke/tfcmt/v4/cmd/tfcmt
```

If `go_build` failed on windows/arm64 and you'd like to exclude
windows/arm64, `excluded_envs` is available.

```yaml
    build:
      type: go_build
      excluded_envs:
        - windows/arm64
      files:
        - name: tfcmt
          src: ./cmd/tfcmt
          dir: tfcmt-{{trimV .Version}}
```

If you'd like to disable `build` in version_overrides, `enabled` is
available.

```yaml
build:
  enabled: false
```

##### Why not `overrides`?

Of course, we can do the same thing with `overrides`.
But `build` makes the intension of the code clear and simplify the code.

##### Support omitting `.{{.Format}}` in `asset` and `url`

[#&#8203;1774](https://togithub.com/aquaproj/aqua/issues/1774)
[#&#8203;2314](https://togithub.com/aquaproj/aqua/issues/2314)

The file extension is complemented if it isn't included in `asset` and
`url`.

e.g.

```yaml
asset: foo # This is same with `foo.tar.gz` and `foo.{{.Format}}`
format: tar.gz
```

The benefit is that you can unify the setting of `raw` format and non
`raw` format.

Before

```yaml
asset: kalker-{{.OS}}.{{.Format}}
format: zip
overrides:
  - goos: linux
    format: raw
    asset: kalker-{{.OS}}
```

After

```yaml
asset: kalker-{{.OS}}
format: zip
overrides:
  - goos: linux
    format: raw
```

You can disable the complementation by setting `append_ext: false`.

```yaml
append_ext: false
```

##### Support short file extensions in `format`

[#&#8203;1876](https://togithub.com/aquaproj/aqua/issues/1876)
[#&#8203;2313](https://togithub.com/aquaproj/aqua/issues/2313)

The following short file extensions can be available in `format`.

-   tbr
-   tbz
-   tbz2
-   tgz
-   tlz4
-   tsz
-   txz

e.g.

```yaml
format: tbz2
```

##### Add the template variable `AssetWithoutExt` to `files[].src`

[#&#8203;1774](https://togithub.com/aquaproj/aqua/issues/1774)
[#&#8203;2310](https://togithub.com/aquaproj/aqua/issues/2310)

The new template variable `AssetWithoutExt` is a string that a file
extension is removed from `Asset`.

e.g.

```yaml
    asset: aks-engine-{{.Version}}-{{.OS}}-{{.Arch}}.tar.gz
    files:
      - name: aks-engine
        src: "{{.AssetWithoutExt}}/aks-engine" # "{{.AssetWithoutExt}}" == "aks-engine-{{.Version}}-{{.OS}}-{{.Arch}}"
```

### [`v2.12.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.12.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.12.1...v2.12.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.12.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.12.2)
| https://github.com/aquaproj/aqua/compare/v2.12.1...v2.12.2

##### Bug Fixes

[#&#8203;2303](https://togithub.com/aquaproj/aqua/issues/2303) Fix a bug
that `path` isn't overriden by `overrides`

##### Others

[#&#8203;2304](https://togithub.com/aquaproj/aqua/issues/2304) Update
aqua-proxy to
[v1.2.4](https://togithub.com/aquaproj/aqua-proxy/releases/tag/v1.2.4)
[#&#8203;2302](https://togithub.com/aquaproj/aqua/issues/2302) Update Go
to v1.21.2
[#&#8203;2286](https://togithub.com/aquaproj/aqua/issues/2286)
[#&#8203;2287](https://togithub.com/aquaproj/aqua/issues/2287)
[#&#8203;2289](https://togithub.com/aquaproj/aqua/issues/2289)
[#&#8203;2290](https://togithub.com/aquaproj/aqua/issues/2290)
[#&#8203;2291](https://togithub.com/aquaproj/aqua/issues/2291)
Refactoring

### [`v2.12.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.12.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.12.0...v2.12.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.12.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.12.1)
| https://github.com/aquaproj/aqua/compare/v2.12.0...v2.12.1

##### Bug Fixes

[#&#8203;2282](https://togithub.com/aquaproj/aqua/issues/2282) Fix a bug
that ` supported_envs `gets true even if darwin isn't supported on
darwin/arm64

This bug was introduced in aqua v1.30.0.

-
[https://github.com/aquaproj/aqua-registry/pull/15753#issuecomment-1736716809](https://togithub.com/aquaproj/aqua-registry/pull/15753#issuecomment-1736716809)

We found an original issue and a pull request.

-
[https://github.com/aquaproj/aqua/issues/1512](https://togithub.com/aquaproj/aqua/issues/1512)
-
[https://github.com/aquaproj/aqua/pull/1514](https://togithub.com/aquaproj/aqua/pull/1514)

> Add darwin/arm64 to supported_envs if rosetta2 is enabled.
> Currently, we have to add darwin/arm64 explicitly even if rosetta2 is
enabled.

We remembered the intention, but this should be applied only if
darwin/amd64 is included in `supported_envs`.

### [`v2.12.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.12.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.11.0...v2.12.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.12.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.12.0)
| https://github.com/aquaproj/aqua/compare/v2.11.0...v2.12.0

##### Features

[#&#8203;2251](https://togithub.com/aquaproj/aqua/issues/2251)
[#&#8203;2254](https://togithub.com/aquaproj/aqua/issues/2254) Support
selecting packages interactively with a fuzzy finder when uninstalling
packages

Added `-i` option to `remove` command

```console
$ aqua rm -i
```

If enabling this option, you can select packages interactively with a
fuzzy finder.

##### Others

[#&#8203;2255](https://togithub.com/aquaproj/aqua/issues/2255) Update
aqua-proxy to v1.2.3

### [`v2.11.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.11.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.10.1...v2.11.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.11.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.11.0)
| https://github.com/aquaproj/aqua/compare/v2.10.1...v2.11.0

##### Features

[#&#8203;538](https://togithub.com/aquaproj/aqua/issues/538)
[#&#8203;2249](https://togithub.com/aquaproj/aqua/issues/2249) Support
uninstalling packages
[#&#8203;2131](https://togithub.com/aquaproj/aqua/issues/2131)
[#&#8203;2065](https://togithub.com/aquaproj/aqua/issues/2065) Support
`go_build` package

##### Support uninstalling packages

[#&#8203;538](https://togithub.com/aquaproj/aqua/issues/538)
[#&#8203;2249](https://togithub.com/aquaproj/aqua/issues/2249)

Add a subcommand `rm` to uninstall packages

##### Usage

```console
$ aqua rm --all [-a] # Uninstall all packages
```

```console
$ aqua rm [<registry name>,]<package name> [...] # Uninstall packages
```

##### Example

```console
$ aqua rm -a
```

```console
$ aqua rm cli/cli direnv/direnv
```

##### ⚠️ Limitation

The following package types can't be removed without `--all` option.

-   `http`
-   `go_install`

##### Support `go_build` package

[#&#8203;2039](https://togithub.com/orgs/aquaproj/discussions/2039)
[#&#8203;2131](https://togithub.com/aquaproj/aqua/issues/2131)
[#&#8203;2065](https://togithub.com/aquaproj/aqua/issues/2065)

The new package type `go_build` has been supported.

##### Example

```yaml
packages:
  - type: go_build
    repo_owner: suzuki-shunsuke
    repo_name: github-comment
    files:
      - name: github-comment
        src: ./cmd/github-comment
        dir: github-comment-{{trimV .Version}}
```


$AQUA_ROOT_DIR/pkgs/go_build/github.com/suzuki-shunsuke/github-comment/v4.0.0/
      bin/
        github-comment
      src/github-comment-4.0.0/
        cmd/github-comment/main.go
        ...

##### Why is the feature needed?

Because some packages couldn't be installed by `go install` but could be
installed by `go build`.

aqua ever supported `go` type package, but it was abandoned at aqua v2
because we thought we could replace it to `go_install` type package.

-   https://aquaproj.github.io/docs/reference/registry-config/go-package
-
https://aquaproj.github.io/docs/reference/upgrade-guide/v2/remove-type-go

But we found that some packages couldn't be installed by `go install`
but could be installed by `go build`.

For example, suzuki-shunsuke/github-comment v5 can't be installed by `go
install`.

```console
$ go install github.com/suzuki-shunsuke/github-comment/v5/cmd/[email protected]
go: github.com/suzuki-shunsuke/github-comment/v5/cmd/[email protected]: github.com/suzuki-shunsuke/[email protected]: invalid version: module contains a go.mod file, so module path must match major version ("github.com/suzuki-shunsuke/github-comment/v5")

$ go install github.com/suzuki-shunsuke/github-comment/cmd/[email protected] 
go: github.com/suzuki-shunsuke/github-comment/cmd/[email protected]: github.com/suzuki-shunsuke/[email protected]: invalid version: module contains a go.mod file, so module path must match major version ("github.com/suzuki-shunsuke/github-comment/v5")
```

This is because github-comment's go.mod was wrong.


https://github.com/suzuki-shunsuke/github-comment/blob/e5fd429b4d1bd84e8b825a2c7b693d6ac570022f/go.mod#L1

    module github.com/suzuki-shunsuke/github-comment

This issue was solved by github-comment v6, but github-comment v2 ~ v5
can't still be installed by `go install`.

-
[https://github.com/suzuki-shunsuke/github-comment/pull/900](https://togithub.com/suzuki-shunsuke/github-comment/pull/900)

There are many Go tools that can't be installed by `go install`.

##### Bug Fixes

[#&#8203;2120](https://togithub.com/aquaproj/aqua/issues/2120) Fix the
default checksum parser to support a tab character as separator
[#&#8203;2147](https://togithub.com/aquaproj/aqua/issues/2147) Use the
basename of the package name as the default command name
[#&#8203;2176](https://togithub.com/aquaproj/aqua/issues/2176)
generate-registry: Fix the format of `.tar.zst`
[#&#8203;2202](https://togithub.com/aquaproj/aqua/issues/2202)
generate-registry: Remove empty `error_message`
[#&#8203;2215](https://togithub.com/aquaproj/aqua/issues/2215) fix a log
field `version_constraint`

##### Others

[#&#8203;2151](https://togithub.com/aquaproj/aqua/issues/2151)
[#&#8203;2163](https://togithub.com/aquaproj/aqua/issues/2163)
[#&#8203;2227](https://togithub.com/aquaproj/aqua/issues/2227) Update Go
1.20.6 to 1.21.1

### [`v2.10.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.10.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.10.0...v2.10.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.10.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.10.1)
| https://github.com/aquaproj/aqua/compare/v2.10.0...v2.10.1

##### Bug Fixes

[#&#8203;2119](https://togithub.com/aquaproj/aqua/issues/2119) Stop
outputting checksum file paths except for `aqua update-checksum`

This is a bug of aqua
[v2.10.0](https://togithub.com/aquaproj/aqua/releases/tag/v2.10.0)
[#&#8203;2108](https://togithub.com/aquaproj/aqua/issues/2108)

### [`v2.10.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.10.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.9.1...v2.10.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.10.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.10.0)
| https://github.com/aquaproj/aqua/compare/v2.9.1...v2.10.0

##### Features

[#&#8203;2111](https://togithub.com/aquaproj/aqua/issues/2111) Add a
subcommand `info`
[#&#8203;2108](https://togithub.com/aquaproj/aqua/issues/2108)
update-checksum: Output created or updated file names

##### Others

[#&#8203;2110](https://togithub.com/aquaproj/aqua/issues/2110) Update
aqua-proxy v1.2.0 to v1.2.1

https://github.com/aquaproj/aqua-proxy/releases/tag/v1.2.1

##### Features - Add a subcommand `info`

[#&#8203;2111](https://togithub.com/aquaproj/aqua/issues/2111)

e.g.

```console
$ aqua info
{
  "version": "2.10.0",
  "commit_hash": "b80f805489c317d83d7fe0b182f3ef5c82a06725",
  "os": "darwin",
  "arch": "arm64",
  "pwd": "/Users/(USER)/Documents/aqua/info",
  "root_dir": "/Users/(USER)/.local/share/aquaproj-aqua",
  "env": {
    "AQUA_GITHUB_TOKEN": "(masked)",
    "AQUA_GLOBAL_CONFIG": "/Users/(USER)/repos/src/github.com/aquaproj/aqua-registry/aqua-all.yaml"
  },
  "config_files": [
    {
      "path": "/Users/(USER)/Documents/aqua/info/aqua/aqua.yaml"
    }
  ]
}
```

GitHub Access Token and user name are masked.

This is useful for troubleshooting.
Please paste the result of this command to your support issues.

##### Features - update-checksum: Output created or updated file names

[#&#8203;2108](https://togithub.com/aquaproj/aqua/issues/2108)

```console
$ aqua update-checksum
```

This is useful to commit and push created or updated files in CI.

### [`v2.9.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.9.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.9.0...v2.9.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.9.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.9.1)
| https://github.com/aquaproj/aqua/compare/v2.9.0...v2.9.1

##### Bug Fixes

[#&#8203;2098](https://togithub.com/aquaproj/aqua/issues/2098) Fix the
Windows support. Fix a bug that aqua skips renaming files mistakenly on
Windows.

This bug affects only Windows.
Windows can't execute files without file extension, but some packages
release executable files without file extension.
So aqua renames files to add file extension such as `.exe` on Windows
when aqua installs them.

This release fixes a bug that this feature doesn't work well.

##### Others

[#&#8203;2091](https://togithub.com/aquaproj/aqua/issues/2091) Update Go
1.20.5 to 1.20.6

### [`v2.9.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.9.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.8.0...v2.9.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.9.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.9.0)
| https://github.com/aquaproj/aqua/compare/v2.8.0...v2.9.0

##### Features

[#&#8203;2058](https://togithub.com/orgs/aquaproj/discussions/2058)
[#&#8203;2063](https://togithub.com/aquaproj/aqua/issues/2063) Support
disabling Lazy Install
[#&#8203;2027](https://togithub.com/orgs/aquaproj/discussions/2027)
[#&#8203;2062](https://togithub.com/aquaproj/aqua/issues/2062) Add
`-detail` option to "generate" command

##### Support disabling Lazy Install

[#&#8203;2058](https://togithub.com/orgs/aquaproj/discussions/2058)
[#&#8203;2063](https://togithub.com/aquaproj/aqua/issues/2063)

Lazy Install is enabled by default, but you can disable it with the
environment variable `AQUA_DISABLE_LAZY_INSTALL`.

e.g.

```sh
export AQUA_DISABLE_LAZY_INSTALL=true
```

If Lazy Install is disabled, the command would fail if the package isn't
installed in advance.

e.g.

```console
$ tfcmt -v
FATA[0000] aqua failed                                   aqua_version= doc="https://aquaproj.github.io/docs/reference/codes/006" env=darwin/arm64 error="the executable file isn't installed yet. Lazy Install is disabled" exe_name=tfcmt package=suzuki-shunsuke/tfcmt package_version=v1.0.0 program=aqua
```

Disabling Lazy Install is useful to improve the security and keep the
governance. You can prevent malicious commands from being installed and
executed via Lazy Install. And you can also prevent aqua.yaml from being
overwritten.

This is especially useful for CI of Monorepo.

The purpose is same with aqua's Policy, but disabling Lazy Install is
simpler than Policy.

##### Add `-detail` option to "generate" command

[#&#8203;2027](https://togithub.com/orgs/aquaproj/discussions/2027)
[#&#8203;2062](https://togithub.com/aquaproj/aqua/issues/2062)

With -detail (-d) option, aqua outputs additional information such as
description and link.

```console
$ aqua g -detail cli/cli
- name: cli/[email protected]
  description: GitHub’s official command line tool
  link: https://github.com/cli/cli
```

The environment variable `AQUA_GENERATE_WITH_DETAIL` is also available.

```sh
export AQUA_GENERATE_WITH_DETAIL=true
```

##### Others

[#&#8203;2046](https://togithub.com/aquaproj/aqua/issues/2046) Update Go
1.20.4 to 1.20.5

### [`v2.8.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.8.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.7.1...v2.8.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.8.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.8.0)
| https://github.com/aquaproj/aqua/compare/v2.7.1...v2.8.0

##### Features

[#&#8203;2016](https://togithub.com/orgs/aquaproj/discussions/2016)
[#&#8203;2019](https://togithub.com/aquaproj/aqua/issues/2019) Support a
new package type `cargo`, installing packages by `cargo install`
[#&#8203;2023](https://togithub.com/aquaproj/aqua/issues/2023) Support a
new command `root-dir`, outputting the aqua-root directory
`AQUA_ROOT_DIR` to the standard output

##### Support a new package type `cargo`

[#&#8203;2016](https://togithub.com/aquaproj/aqua/issues/2016)
[#&#8203;2019](https://togithub.com/aquaproj/aqua/issues/2019)
[Document](https://aquaproj.github.io/docs/reference/registry-config/cargo-package)

The package is installed by [cargo
install](https://doc.rust-lang.org/cargo/commands/cargo-install.html)
command.

You can manage tools written in Rust with aqua, which means you can
manage them and their versions declaratively in the consistent way. You
can switch tool versions per project and update them continuously by
Renovate!

For details, please see
[Document](https://aquaproj.github.io/docs/reference/registry-config/cargo-package)

##### Support a new command `root-dir`

[#&#8203;2023](https://togithub.com/aquaproj/aqua/issues/2023)

```console
$ aqua help root-dir
NAME:
   aqua root-dir - Output the aqua root directory (AQUA_ROOT_DIR)

USAGE:
   aqua root-dir [command options] [arguments...]

DESCRIPTION:
   Output the aqua root directory (AQUA_ROOT_DIR)
   e.g.

   $ aqua root-dir
   /home/foo/.local/share/aquaproj-aqua

   $ export "PATH=$(aqua root-dir)/bin:PATH"

OPTIONS:
   --help, -h  show help
```

### [`v2.7.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.7.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.7.0...v2.7.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.7.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.7.1)
| https://github.com/aquaproj/aqua/compare/v2.7.0...v2.7.1

##### Bug Fixes

[#&#8203;2003](https://togithub.com/aquaproj/aqua/issues/2003)
[#&#8203;2006](https://togithub.com/aquaproj/aqua/issues/2006) Fix a bug
that [the progress
bar](https://aquaproj.github.io/docs/reference/config/progress-bar/)
doesn't work well if some verification such as checksum, SLSA, and
Cosign are enabled
[#&#8203;2013](https://togithub.com/aquaproj/aqua/issues/2013)
[#&#8203;2015](https://togithub.com/aquaproj/aqua/issues/2015) Convert
`files[].src` with
[filepath.FromSlash](https://pkg.go.dev/path/filepath#FromSlash) for
Windows

##### Others

[#&#8203;2014](https://togithub.com/aquaproj/aqua/issues/2014) Support
the character `tab` as a separator of the default checksum parser

### [`v2.7.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.7.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.6.0...v2.7.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.7.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.7.0)
| https://github.com/aquaproj/aqua/compare/v2.6.0...v2.7.0

##### Features

[#&#8203;1803](https://togithub.com/aquaproj/aqua/issues/1803)
[#&#8203;2002](https://togithub.com/aquaproj/aqua/issues/2002) Support
unarchiving `PKG` format on macOS

##### Others

[#&#8203;1996](https://togithub.com/aquaproj/aqua/issues/1996) Update
slsa-verifier to v2.3.0
[#&#8203;1997](https://togithub.com/aquaproj/aqua/issues/1997)
[#&#8203;2001](https://togithub.com/aquaproj/aqua/issues/2001)
Refactoring

### [`v2.6.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.6.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.5.2...v2.6.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.6.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.6.0)
| https://github.com/aquaproj/aqua/compare/v2.5.2...v2.6.0

##### Features

[#&#8203;1984](https://togithub.com/aquaproj/aqua/issues/1984)
generate-registry: Enable to parse tags not conforming to semver

*If you don't develop Registry or don't contribute to Standard Registry,
you can ignore this release.*

generate-registry command couldn't parse tags not conforming to semver.
This release enables aqua to parse those tags and extract prefixes and
versions.

For example, this release enables aqua to parse the tag
[version\_112](https://togithub.com/WebAssembly/binaryen/releases/tag/version\_112)
and extracts the prefix `version_` and the version `112`.

### [`v2.5.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.5.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.5.1...v2.5.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.5.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.5.2)
| https://github.com/aquaproj/aqua/compare/v2.5.1...v2.5.2

##### Fixes

[#&#8203;1983](https://togithub.com/aquaproj/aqua/issues/1983)
generate-registry: Use the default checksum parser

### [`v2.5.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.5.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.5.0...v2.5.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.5.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.5.1)
| https://github.com/aquaproj/aqua/compare/v2.5.0...v2.5.1

##### Fixes

[#&#8203;1979](https://togithub.com/aquaproj/aqua/issues/1979)
generate-registry: Add `unknown-linux` and `pc-windows` to patterns of
`replacements`
[#&#8203;1872](https://togithub.com/aquaproj/aqua/issues/1872)
[#&#8203;1976](https://togithub.com/aquaproj/aqua/issues/1976) Move the
symbolic link of `aqua-proxy` from `$AQUA_ROOT_DIR/bin/aqua-proxy` to
`$AQUA_ROOT_DIR/aqua-proxy`

### [`v2.5.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.5.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.4.3...v2.5.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.5.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.5.0)
| https://github.com/aquaproj/aqua/compare/v2.4.3...v2.5.0

##### Features

[#&#8203;1925](https://togithub.com/aquaproj/aqua/issues/1925)
[#&#8203;1926](https://togithub.com/aquaproj/aqua/issues/1926) Execute
commands by `execve(2)` by default

https://aquaproj.github.io/docs/reference/execve-2

[#&#8203;710](https://togithub.com/aquaproj/aqua/issues/710)
[#&#8203;729](https://togithub.com/aquaproj/aqua/issues/729)
[#&#8203;1597](https://togithub.com/aquaproj/aqua/issues/1597)
[#&#8203;1925](https://togithub.com/aquaproj/aqua/issues/1925)

⚠️ In Windows this feature doesn't work.
In Windows, aqua creates small shell scripts and bat scripts instead of
`aqua-proxy` and symbolic links.
And Windows doesn't support `execve(2)`, so the environment variable
`AQUA_X_SYS_EXEC` is ignored.

When a command `x` is executed via aqua, the command is executed as the
following.

1.  $AQUA_ROOT_DIR/bin/x: symbolic link to aqua-proxy
2.  aqua-proxy executes the command `aqua exec -- x`
3.  aqua executes `x`

So the command `x` is executed via `aqua-proxy` and `aqua`.
Until aqua v2.5.0, `aqua-proxy` and `aqua` executed commands as
subprocess. You can confirm it by checking the process tree by `pstree`
command.

e.g.

```console
$ nvim # nvim is managed by aqua
$ pstree -s nvim
```

         \-+= 00719 shunsukesuzuki -zsh
           \-+= 09955 shunsukesuzuki nvim # aqua-proxy
             \-+- 09956 shunsukesuzuki aqua exec -- nvim
\--- 09957 shunsukesuzuki
/Users/shunsukesuzuki/.local/share/aquaproj-aqua/pkgs/github_release/github.com/neovim/neovim/v0.7.0/nvim-macos.tar.gz/nvim-osx64/bin/nvim

<!---->

    aqua-proxy -> aqua -> x

Sometimes this behaviour caused trouble.
[#&#8203;710](https://togithub.com/aquaproj/aqua/issues/710)
[#&#8203;1597](https://togithub.com/aquaproj/aqua/issues/1597)

From aqua v2.5.0, `aqua-proxy` and `aqua` execute commands by
[execve(2)](https://pkg.go.dev/golang.org/x/sys/unix#Exec) in Linux and
macOS by default.

So extra subprocess isn't raised.

         \-+= 82315 shunsukesuzuki -zsh
           \-+= 82630 shunsukesuzuki nvim

If you feel aqua becomes unstable due to this feature, you can disable
this feature by the environment variable `AQUA_X_SYS_EXEC`.

```sh
export AQUA_X_SYS_EXEC=false
```

##### Others

[#&#8203;1926](https://togithub.com/aquaproj/aqua/issues/1926) Update
aqua-proxy to
[v1.2.0](https://togithub.com/aquaproj/aqua-proxy/releases/tag/v1.2.0)
[#&#8203;1964](https://togithub.com/aquaproj/aqua/issues/1964) Improve
error messages when it failed to install aqua-proxy, cosign, and
slsa-verifier

### [`v2.4.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.4.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.4.2...v2.4.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.4.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.4.3)
| https://github.com/aquaproj/aqua/compare/v2.4.2...v2.4.3

##### Bug Fixes

[#&#8203;1961](https://togithub.com/aquaproj/aqua/issues/1961)
[#&#8203;1963](https://togithub.com/aquaproj/aqua/issues/1963) Fix the
hardcoded checksum of slsa-verifier windows/amd64

The checksum of slsa-verifier v2.2.0 windows/amd64 was wrong.
So it failed to install slsa-verifier internally.

This bug affects only windows/amd64.

This bug affects aqua >= 2.3.7, aqua <= 2.4.2

-
[https://github.com/aquaproj/aqua/issues/1961#issuecomment-1536897000](https://togithub.com/aquaproj/aqua/issues/1961#issuecomment-1536897000)

### [`v2.4.2`](

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/DelineaXPM/dsv-github-action).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this issue in DelineaXPM/github-workflows Aug 7, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [aquaproj/aqua](https://togithub.com/aquaproj/aqua) | minor |
`v2.10.1` -> `v2.30.0` |

---

### Release Notes

<details>
<summary>aquaproj/aqua (aquaproj/aqua)</summary>

### [`v2.30.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.30.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.29.2...v2.30.0-1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.30.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.30.0)
| https://github.com/aquaproj/aqua/compare/v2.29.2...v2.30.0

#### Features

[#&#8203;2918](https://togithub.com/aquaproj/aqua/issues/2918)
[#&#8203;3005](https://togithub.com/aquaproj/aqua/issues/3005) Use
aqua-proxy and hard links instead of shell scripts and bat scripts on
Windows

Document:
[https://github.com/aquaproj/aquaproj.github.io/pull/1049](https://togithub.com/aquaproj/aquaproj.github.io/pull/1049)
https://aquaproj.github.io/docs/reference/lazy-install#on-windows

aqua doesn't use symbolic links on Windows because symbolic links have
several issues on Windows.

1. [Non-administrators can't create symbolic links by default on
Windows](https://togithub.com/git-for-windows/git/wiki/Symbolic-Links)
2. [PowerShell doesn't use the final target of a symbolic link when
starting a process or running a native command on
Windows](https://togithub.com/PowerShell/PowerShell/issues/16171)

aqua v2.29.2 or older used shell scripts and bat scripts instead of
symbolic links and aqua-proxy.

[#&#8203;885](https://togithub.com/aquaproj/aqua/issues/885)
[#&#8203;892](https://togithub.com/aquaproj/aqua/issues/892)
[#&#8203;893](https://togithub.com/aquaproj/aqua/issues/893) aqua >=
v1.12.0, aqua <= v2.29.2

But using shell scripts and bat scripts also had several issues.

1.  Using both shell scripts and bat scripts is confusing
2. tools can't be executed on Nushell
[https://github.com/aquaproj/aqua/issues/2918#issuecomment-2223107022](https://togithub.com/aquaproj/aqua/issues/2918#issuecomment-2223107022)
3. bat scripts can't handle signals properly
[https://github.com/aquaproj/aqua/issues/2918#issuecomment-2228449541](https://togithub.com/aquaproj/aqua/issues/2918#issuecomment-2228449541)

So aqua v2.30.0 or later uses hard links and aqua-proxy instead of shell
scripts and bat scripts.
[#&#8203;2918](https://togithub.com/aquaproj/aqua/issues/2918)
aqua installs `aqua-proxy` and creates hard links to `aqua-proxy` on
`$(aqua root-dir)/bin` directory.
When aqua updates `aqua-proxy`, aqua recreates hard links.
From aqua v2.30.0, aqua doesn't use bat scripts so you can remove
`$(aqua root-dir)/bat` directory and remove `$(aqua root-dir)/bat` from
`PATH`.

#### Others

[#&#8203;3004](https://togithub.com/aquaproj/aqua/issues/3004) Update
slsa-verifier to v2.6.0
[#&#8203;3008](https://togithub.com/aquaproj/aqua/issues/3008) Update
module github.com/goccy/go-yaml to v1.12.0

### [`v2.29.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.29.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.29.1...v2.29.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.29.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.29.2)
| https://github.com/aquaproj/aqua/compare/v2.29.1...v2.29.2

##### Bug Fixes

[#&#8203;3001](https://togithub.com/aquaproj/aqua/issues/3001) Fix
checksums of Cosign

Fixed a bug of aqua v2.29.1

### [`v2.29.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.29.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.29.0...v2.29.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.29.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.29.1)
| https://github.com/aquaproj/aqua/compare/v2.29.0...v2.29.1

#### Features

[#&#8203;2965](https://togithub.com/aquaproj/aqua/issues/2965) list: Add
an alias of command line option `-installed`

```sh
aqua list -i
```

#### Fixes

[#&#8203;2981](https://togithub.com/aquaproj/aqua/issues/2981) Fix a bug
that the shell completion of specific tools doesn't work

For detail, please see the following issues and pull request.

-
[https://github.com/lintnet/lintnet/issues/528#issuecomment-2192810380](https://togithub.com/lintnet/lintnet/issues/528#issuecomment-2192810380)
-
[https://github.com/urfave/cli/issues/1932](https://togithub.com/urfave/cli/issues/1932)
-
[https://github.com/urfave/cli/pull/1938](https://togithub.com/urfave/cli/pull/1938)

#### Others

Update Go to 1.22.5

### [`v2.29.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.29.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.28.1...v2.29.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.29.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.29.0)
| https://github.com/aquaproj/aqua/compare/v2.28.1...v2.29.0

##### Features

[#&#8203;2929](https://togithub.com/aquaproj/aqua/issues/2929) Support
fish completion

Added a sub command `aqua completion fish`, which outputs scripts for
fish completion

You can source the output to enable the completion.

```sh
aqua completion fish | source
```

Or you can write the output to a file.


https://fishshell.com/docs/current/completions.html#where-to-put-completions

```sh
aqua completion fish > ~/.config/fish/completions/aqua.fish
```

### [`v2.28.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.28.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.28.0...v2.28.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.28.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.28.1)
| https://github.com/aquaproj/aqua/compare/v2.28.0...v2.28.1

##### Bug Fixes

[#&#8203;2904](https://togithub.com/aquaproj/aqua/issues/2904) generate:
Fix a bug that `aqua g -i` fails if aqua.yaml doesn't have the field
`packages`
[#&#8203;2902](https://togithub.com/aquaproj/aqua/issues/2902) info: Fix
a bug that user names aren't masked on Windows
[@&#8203;sapphi-red](https://togithub.com/sapphi-red)

### [`v2.28.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.28.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.27.4...v2.28.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.28.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.28.0)
| https://github.com/aquaproj/aqua/compare/v2.27.4...v2.28.0

##### Features

[#&#8203;2609](https://togithub.com/orgs/aquaproj/discussions/2609)
[#&#8203;2730](https://togithub.com/aquaproj/aqua/issues/2730)
[#&#8203;2632](https://togithub.com/aquaproj/aqua/issues/2632) Support
getting a package version from go directive in go.mod or go.work

From Go 1.21, the version of Go is decided by go directive in go.mod or
go.work.

https://go.dev/doc/toolchain

e.g.

    module github.com/aquaproj/aqua/v2

    go 1.22.3

This can cause an issue that the version of Go may be different from the
version defined in aqua.yaml.
And we need to define go version in two places.

To solve the issue, this pull request enables aqua to get the version of
go from go directive in go.mod or go.work.
You can specify the path to go.mod or go.work by a field
`go_version_file`.

e.g.

```yaml
packages:
- name: golang/go
  go_version_file: go.mod
```

Then you can define go version only in go.mod or go.work.

> \[!CAUTION]
> The version of Go must be a semver x.y.z.
> You can't omit a patch version.

[#&#8203;2880](https://togithub.com/aquaproj/aqua/issues/2880) Ignore
invalid packages and continue working

When reading aqua.yaml, aqua ignores invalid packages and continues
working.
This improves the robustness.

### [`v2.27.4`](https://togithub.com/aquaproj/aqua/releases/tag/v2.27.4)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.27.3...v2.27.4)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.27.4)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.27.4)
| https://github.com/aquaproj/aqua/compare/v2.27.3...v2.27.4

##### Bug Fixes

[#&#8203;2144](https://togithub.com/aquaproj/aqua/issues/2144)
[#&#8203;2510](https://togithub.com/orgs/aquaproj/discussions/2510)
[#&#8203;2871](https://togithub.com/aquaproj/aqua/issues/2871) Fix a bug
that update-aqua fails on Windows

##### Others

Update Go 1.22.2 to 1.22.3

### [`v2.27.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.27.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.27.2...v2.27.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.27.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.27.3)
| https://github.com/aquaproj/aqua/compare/v2.27.2...v2.27.3

##### Bug Fixes

[#&#8203;2833](https://togithub.com/aquaproj/aqua/issues/2833)
[#&#8203;2834](https://togithub.com/aquaproj/aqua/issues/2834) Fix a bug
that a checksum id of [go_build type
package](https://aquaproj.github.io/docs/reference/registry-config/go-build-package)
is empty

aqua-checksums.json

```json
    {
      "id": "",
      "checksum": "C4D72E482B85570A1A73776EEF47E993B5F8FA6C204E0B1CAA794E4DF4F13521",
      "algorithm": "sha256"
    }
```

### [`v2.27.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.27.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.27.1...v2.27.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.27.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.27.2)
| https://github.com/aquaproj/aqua/compare/v2.27.1...v2.27.2

##### Bug Fixes

[#&#8203;2830](https://togithub.com/aquaproj/aqua/issues/2830) Improve
handling of broken registry JSON files

When aqua reads Standard Registry and github_content Registries, aqua
converts them to JSON once and saves them.
And aqua reads JSON files instead of YAML files from the next time.
This improves the performance a bit.
[#&#8203;2517](https://togithub.com/aquaproj/aqua/issues/2517)

But if a JSON file got broken, aqua got not working.
In that case, you had to remove the file yourself.

This issue rarely occurs, but this release resolves it.
If a JSON file gets broken, aqua removes and recreates the file.
So aqua continues working and you don't have to remove the file
yourself.

### [`v2.27.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.27.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.27.0...v2.27.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.27.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.27.1)
| https://github.com/aquaproj/aqua/compare/v2.27.0...v2.27.1

#### Others

[#&#8203;2824](https://togithub.com/aquaproj/aqua/issues/2824)
[#&#8203;2825](https://togithub.com/aquaproj/aqua/issues/2825) Generate
shell completion on `brew install`
[@&#8203;ryota2357](https://togithub.com/ryota2357)

ref.
https://github.com/aquaproj/homebrew-aqua/blob/c4731da7c66a797e93b5efbcc5340b39f86f559b/aqua.rb#L19

⚠️ To enable shell completion, you have to configure FPATH and so on.

[#&#8203;2809](https://togithub.com/aquaproj/aqua/issues/2809) chore:
update aqua-proy to
[v1.2.6](https://togithub.com/aquaproj/aqua-proxy/releases/tag/v1.2.6)

#### 🎉 New Contributors

Thank you for your contribution!

[@&#8203;ryota2357](https://togithub.com/ryota2357)
[#&#8203;2825](https://togithub.com/aquaproj/aqua/issues/2825)

### [`v2.27.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.27.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.26.0...v2.27.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.27.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.27.0)
| https://github.com/aquaproj/aqua/compare/v2.26.0...v2.27.0

#### Features

[#&#8203;2702](https://togithub.com/aquaproj/aqua/issues/2702)
[#&#8203;2806](https://togithub.com/aquaproj/aqua/issues/2806) checksum:
Support enforcing checksum verification via environment variables

You can enforce checksum verification by environment variables
`AQUA_ENFORCE_CHECKSUM` and `AQUA_ENFORCE_REQUIRE_CHECKSUM`.

```sh
export AQUA_ENFORCE_CHECKSUM=true
export AQUA_ENFORCE_REQUIRE_CHECKSUM=true
```

This is useful for both CI and local development.

Checksum verification is disabled by default, and you can disable
checksum verification by setting.
If you manage a Monorepo and want to make checksum verification
mandatory in CI, you can set these environment variables in CI. Then
checksum verification is enabled regardless of the setting of aqua.yaml.

And if you want to enforce checksum verification on your laptop, you can
set these environment variables in your shell configuration files such
as .bashrc and .zshrc.

### [`v2.26.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.26.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.25.2...v2.26.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.26.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.26.0)
| https://github.com/aquaproj/aqua/compare/v2.25.2...v2.26.0

##### Features

[#&#8203;2782](https://togithub.com/aquaproj/aqua/issues/2782)
[#&#8203;2804](https://togithub.com/aquaproj/aqua/issues/2804) generate:
add `-g` option to add packages to a global configuration file

e.g.

```console
$ aqua g -g cli/cli
```

You can add packages to a global configuration file with `-g` and `-i`
option.

e.g.

```console
$ aqua g -g -i cli/cli
```

If there are multiple global configuration files, a first global
configuration file is used.

##### Others

[#&#8203;2803](https://togithub.com/aquaproj/aqua/issues/2803) Update
the help message of `remove` command

> Note that this command remove files from AQUA_ROOT_DIR/pkgs, but
doesn't remove packages from aqua.yaml and doesn't remove files from
AQUA_ROOT_DIR/bin and AQUA_ROOT_DIR/bat.

### [`v2.25.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.25.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.25.1...v2.25.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.25.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.25.2)
| https://github.com/aquaproj/aqua/compare/v2.25.1...v2.25.2

##### Bug Fixes

[#&#8203;2781](https://togithub.com/aquaproj/aqua/issues/2781)
[#&#8203;2786](https://togithub.com/aquaproj/aqua/issues/2786) list: Fix
a bug that packages in that same aqua.yaml is outputted by `aqua list
--installed`

##### Others

[#&#8203;2779](https://togithub.com/aquaproj/aqua/issues/2779)
[#&#8203;2788](https://togithub.com/aquaproj/aqua/issues/2788) Update
slsa-verifier to v2.5.1
[#&#8203;2787](https://togithub.com/aquaproj/aqua/issues/2787) Update go
directive to 1.22 and refactor codes with Go new features

### [`v2.25.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.25.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.25.0...v2.25.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.25.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.25.1)
| https://github.com/aquaproj/aqua/compare/v2.25.0...v2.25.1

##### Bug Fixes

[#&#8203;1665](https://togithub.com/aquaproj/aqua/issues/1665)
[#&#8203;2757](https://togithub.com/aquaproj/aqua/issues/2757) Fix the
verification error of Cosign
[#&#8203;2764](https://togithub.com/aquaproj/aqua/issues/2764)
[#&#8203;2765](https://togithub.com/aquaproj/aqua/issues/2765) Fix
`SIGSEGV: segmentation violation` of `aqua update` and `aqua generate`
commands

##### Others

[#&#8203;2756](https://togithub.com/aquaproj/aqua/issues/2756) Update
the template of aqua.yaml generated by `aqua init` to follow [a yamllint
comment
rule](https://yamllint.readthedocs.io/en/stable/rules.html#module-yamllint.rules.comments)
[@&#8203;bhundven](https://togithub.com/bhundven)

### [`v2.25.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.25.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.24.1...v2.25.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.25.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.25.0)
| https://github.com/aquaproj/aqua/compare/v2.24.1...v2.25.0

##### Features


[#&#8203;2749](https://togithub.com/orgs/aquaproj/discussions/2749#discussioncomment-8808062)
[#&#8203;2752](https://togithub.com/aquaproj/aqua/issues/2752) Support
excluding some packages from the target of `aqua update`

e.g. aqua.yaml

```yaml
packages:
  - name: golang/vuln/[email protected]
    update:

##### If enabled is false, aqua up command ignores the package.
##### If the package name is passed to aqua up command explicitly, enabled is ignored.

##### By default, enabled is true.
      enabled: false
```

##### Fixes

[#&#8203;2747](https://togithub.com/aquaproj/aqua/issues/2747)
[#&#8203;2354](https://togithub.com/aquaproj/aqua/issues/2354)
[#&#8203;2750](https://togithub.com/aquaproj/aqua/issues/2750)
[#&#8203;2751](https://togithub.com/aquaproj/aqua/issues/2751) Improve
the logic to get the latest version

We've changed the logic to get the latest version in some commands such
as `aqua update` and `aqua generate`.
The original logic was to call GitHub API `Get a latest release`, but a
latest release wan't necessarily a latest version.
So we changed the logic to list the recent releases and get a latest
version by semver.

### [`v2.24.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.24.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.24.0...v2.24.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.24.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.24.1)
| https://github.com/aquaproj/aqua/compare/v2.24.0...v2.24.1

##### Bug Fixes

[#&#8203;2742](https://togithub.com/aquaproj/aqua/issues/2742)
[#&#8203;2744](https://togithub.com/aquaproj/aqua/issues/2744) fix a bug
that `aqua g` and `aqua gr` commands don't work for [cargo
package](https://aquaproj.github.io/docs/reference/registry-config/cargo-package/)

This bug was due to crates.io crawler policy.

> We are unable to process your request at this time.
> This usually means that you are in violation of our crawler policy.

We could resolve the issue by setting the User-Agent header.

### [`v2.24.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.24.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.23.2...v2.24.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.24.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.24.0)
| https://github.com/aquaproj/aqua/compare/v2.23.2...v2.24.0

##### Features

[#&#8203;2709](https://togithub.com/orgs/aquaproj/discussions/2709)
[#&#8203;2733](https://togithub.com/aquaproj/aqua/issues/2733) Support
listing installed packages

Command line options `-installed` and `-all [-a]` were added to `aqua
list` command.

```sh
aqua list -installed [-a]
```

If `-installed` is set, installed packages are outputted.

e.g.

```console
$ aqua list -installed   
rhysd/actionlint	v1.6.27	standard
suzuki-shunsuke/cmdx	v1.7.4	standard
sigstore/cosign	v1.13.2	standard
suzuki-shunsuke/ghalint	v0.2.9	standard
int128/ghcp	v1.13.2	standard
golangci/golangci-lint	v1.56.2	standard
goreleaser/goreleaser	v1.24.0	standard
reviewdog/reviewdog	v0.17.1	standard
```

By default, global configuration files are ignored.
To output packages in global configuration files too, please set the
option `-all [-a]`.

```console
$ aqua list -a -installed
```

### [`v2.23.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.23.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.23.1...v2.23.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.23.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.23.2)
| https://github.com/aquaproj/aqua/compare/v2.23.1...v2.23.2

##### Fixes

[#&#8203;2714](https://togithub.com/aquaproj/aqua/issues/2714) Fix a bug
that it fails to download large files from GitHub repositories

Use the API
[RepositoriesService.DownloadContents](https://pkg.go.dev/github.com/google/go-github/v60/github#RepositoriesService.DownloadContents)
instead of
[RepositoriesService.GetContents](https://pkg.go.dev/github.com/google/go-github/v60/github#RepositoriesService.GetContents)
to download large files from GitHub.


https://pkg.go.dev/github.com/google/go-github/v60/github#RepositoriesService.DownloadContents

> DownloadContents returns an io.ReadCloser that reads the contents of
the specified file.
> This function will work with files of any size, as opposed to
GetContents which is limited to 1 Mb files. It is the caller's
responsibility to close the ReadCloser.

If you use old aqua and face the following error, please update aqua to
v2.23.2 or newer.

unsupported content encoding: none, this may occur when file size > 1
MB, if that is the case consider using DownloadContents

##### Others

Update Go 1.21.6 to 1.22.0

### [`v2.23.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.23.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.23.0...v2.23.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.23.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.23.1)
| https://github.com/aquaproj/aqua/compare/v2.23.0...v2.23.1

##### Bug Fixes

[#&#8203;2661](https://togithub.com/aquaproj/aqua/issues/2661)
[#&#8203;2662](https://togithub.com/aquaproj/aqua/issues/2662)
update-checksum: Fix a bug that `update-checksum` doesn't work well if
packages use both `cargo` or `go_install` types and other types

For example, the package `eza-community/eza` uses `cargo` type for
darwin and windows/arm64 and `github_relaese` type for other platforms.
In this case, aqua update-checksum didn't work well.


https://github.com/aquaproj/aqua-registry/blob/15d67414625ea37e68ea8436dba9413d9bd9b540/pkgs/eza-community/eza/registry.yaml#L2

https://github.com/aquaproj/aqua-registry/blob/15d67414625ea37e68ea8436dba9413d9bd9b540/pkgs/eza-community/eza/registry.yaml#L54-L57

This release fixed the issue.

### [`v2.23.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.23.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.22.0...v2.23.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.23.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.23.0)
| https://github.com/aquaproj/aqua/compare/v2.22.0...v2.23.0

##### Features

[#&#8203;2649](https://togithub.com/aquaproj/aqua/issues/2649)
[#&#8203;2652](https://togithub.com/aquaproj/aqua/issues/2652) cargo:
Trim a prefix from `cargo` package's version

##### Bug Fixes

[#&#8203;2642](https://togithub.com/aquaproj/aqua/issues/2642) info:
Output `AQUA_DISABLE_COSIGN` and `AQUA_DISABLE_SLSA`


https://aquaproj.github.io/docs/reference/security/cosign-slsa/#disable-the-verification-with-cosign-and-slsa-provenance

[#&#8203;2654](https://togithub.com/aquaproj/aqua/issues/2654)
generate-registry: Fix a bug that same version_overrides aren't merged
properly

##### Others

[#&#8203;2644](https://togithub.com/aquaproj/aqua/issues/2644) Update
aqua-proxy to
[v1.2.5](https://togithub.com/aquaproj/aqua-proxy/releases/tag/v1.2.5)
[#&#8203;2653](https://togithub.com/aquaproj/aqua/issues/2653) Update
[JSON Schema](https://togithub.com/aquaproj/aqua/tree/main/json-schema)

### [`v2.22.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.22.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.21.3...v2.22.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.22.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.22.0)
| https://github.com/aquaproj/aqua/compare/v2.21.3...v2.22.0

##### Features

[#&#8203;2631](https://togithub.com/orgs/aquaproj/discussions/2631)
[#&#8203;2633](https://togithub.com/aquaproj/aqua/issues/2633)
[#&#8203;2634](https://togithub.com/aquaproj/aqua/issues/2634) Support
disabling the verification with Cosign and SLSA Provenance

You can disable the verification with Cosign and SLSA Provenance if you
can't use them.

##### Why is the feature needed?

> \[!CAUTION]
> This feature is for users who can't use Cosign and slsa-verifier.
> Most users can use them, so most users don't need this feature.
> aqua installs Cosign and slsa-verifier internally, so you don't need
to install them yourself.
> If you can use Cosign and slsa-verifier, you should not disable them
because they are important for security.

Cosign and sla-verifier access some endpoints such as
`oauth2.sigstore.dev` and `fulcio.sigstore.dev`.
So to use them you need to allow the access to these endpoints.

But in some use cases you can't or don't want to do that.
For example, your company's network policy might not allow the access to
these endpoints.

To resolve the issue, this issue proposes to support disabling the
verification with Cosign and slsa-verifier.

##### How to use

You can use command line options `-disable-cosign` and `-disable-slsa`
or environment variables `AQUA_DISABLE_COSIGN` and `AQUA_DISABLE_SLSA`.

e.g.

```sh
aqua [-disable-cosign] [-disable-slsa] i
```

```sh
env AQUA_DISABLE_COSIGN=true AQUA_DISABLE_SLSA=true aqua i
```

##### Update dependencies

-   Go 1.21.5 to 1.21.6
-   goreleaser v1.22.1 to v1.23.0
-
[go.mod](https://togithub.com/aquaproj/aqua/compare/v2.21.3...v2.22.0#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6)

### [`v2.21.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.21.2...v2.21.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.3)
| https://github.com/aquaproj/aqua/compare/v2.21.2...v2.21.3

##### Bug Fixes

[#&#8203;2585](https://togithub.com/aquaproj/aqua/issues/2585)
[#&#8203;2586](https://togithub.com/aquaproj/aqua/issues/2586) Update
checksums of cosign

### [`v2.21.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.21.1...v2.21.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.2)
| https://github.com/aquaproj/aqua/compare/v2.21.1...v2.21.2

##### ⚠️ This release has a bug

The bug was already fixed at v2.21.3

##### Others

[#&#8203;2582](https://togithub.com/aquaproj/aqua/issues/2582) Fix a bug
of release workflow

### [`v2.21.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.21.0...v2.21.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.1)
| https://github.com/aquaproj/aqua/compare/v2.21.0...v2.21.1

##### ⚠️ The release failed


https://github.com/aquaproj/aqua/actions/runs/7260967360/job/19781204828#step:10:147

      ⨯ release failed after 2m26s               error=1 error occurred:
* scoop manifests: could not update "aqua.json": PUT
https://api.github.com/repos/aquaproj/scoop-bucket/contents/aqua.json:
403 Resource not accessible by integration []

We fixed the bug and release v2.21.2.

##### Bug Fixes

[#&#8203;2534](https://togithub.com/aquaproj/aqua/issues/2534) Fix a bug
of root dir on Windows
[#&#8203;2580](https://togithub.com/aquaproj/aqua/issues/2580)
[#&#8203;2581](https://togithub.com/aquaproj/aqua/issues/2581) Fix a bug
that validation fails even if no_asset or error_message is set
[https://github.com/aquaproj/aqua-registry/pull/18326#issuecomment-1862164476](https://togithub.com/aquaproj/aqua-registry/pull/18326#issuecomment-1862164476)

### [`v2.21.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.21.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.20.0...v2.21.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.21.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.21.0)
| https://github.com/aquaproj/aqua/compare/v2.20.0...v2.21.0

##### Features

[#&#8203;2517](https://togithub.com/aquaproj/aqua/issues/2517)
[#&#8203;2518](https://togithub.com/aquaproj/aqua/issues/2518) perf:
Convert Standard Registry and github_content Registries from YAML to
JSON when installing them

This update improves the performance to read Registries.
Stanard registry is a huge YAML file over 30,000 lines so it has a
little overhead to read it.
By this update, aqua converts Standard Registry and github_content
Registries from YAML to JSON.
JSON format decreases the overhead.
aqua converts them internally, so we don't need to do anything.

### [`v2.20.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.20.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.19.0...v2.20.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.20.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.20.0)
| https://github.com/aquaproj/aqua/compare/v2.19.0...v2.20.0

##### Features

[#&#8203;2514](https://togithub.com/orgs/aquaproj/discussions/2514)
[#&#8203;2515](https://togithub.com/aquaproj/aqua/issues/2515) Add a
field `windows_arm_emulation` for Windows ARM Emulation

ARM based Windows 11 supports the emulation to run x64 Windows apps.


https://learn.microsoft.com/en-us/windows/arm/add-arm-support#emulation-on-arm-based-devices-for-x86-or-x64-windows-apps

> Windows 11 extends that emulation to run unmodified x64 Windows apps
on Arm-powered devices.

If the field `windows_arm_emulation` is `true`, aqua uses pre built
binaries for Windows amd64 on Windows arm64. `windows_arm_emulation`
must be boolean. By default, `windows_arm_emulation` is false.

`windows_arm_emulation` is similar with
[rosetta2](https://aquaproj.github.io/docs/reference/registry-config/rosetta2).

### [`v2.19.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.19.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.18.0...v2.19.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.19.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.19.0)
| https://github.com/aquaproj/aqua/compare/v2.18.0...v2.19.0

##### Features

[#&#8203;2506](https://togithub.com/orgs/aquaproj/discussions/2506)
[#&#8203;2507](https://togithub.com/aquaproj/aqua/issues/2507) which:
Add the command line option `--version`

e.g.

```console
$ aqua which --version yq
v4.40.2
```

##### Bug Fixes

[#&#8203;2508](https://togithub.com/orgs/aquaproj/discussions/2508)
[#&#8203;2512](https://togithub.com/aquaproj/aqua/issues/2512) Fix a bug
of bash scripts for Git Bash

https://www.shellcheck.net/wiki/SC2086

Bash scripts generated by aqua had a bug that command line arguments
having spaces were separated to multiple arguments incorrectly.

```console
$  curl -sSfL https://jsonplaceholder.typicode.com/todos | jq '.[] | .id'
jq: error: Could not open file |: Invalid argument
jq: error: Could not open file .id: No such file or directory
```

### [`v2.18.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.18.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.4...v2.18.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.18.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.18.0)
| https://github.com/aquaproj/aqua/compare/v2.17.4...v2.18.0

##### Features

[#&#8203;2494](https://togithub.com/aquaproj/aqua/issues/2494) update:
Support specifying new package versions

e.g.

```sh
aqua up [email protected]
```

[#&#8203;2461](https://togithub.com/aquaproj/aqua/issues/2461) Add debug
logs of `update` and `generate` commands
[@&#8203;dreamjz](https://togithub.com/dreamjz)

##### Bug Fixes

[#&#8203;2493](https://togithub.com/aquaproj/aqua/issues/2493)
[#&#8203;2495](https://togithub.com/aquaproj/aqua/issues/2495)
generate-registry: Fix the pagination of GitHub API List Releases

### [`v2.17.4`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.4)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.3...v2.17.4)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.4)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.4)
| https://github.com/aquaproj/aqua/compare/v2.17.3...v2.17.4

#### Others

[#&#8203;2401](https://togithub.com/aquaproj/aqua/issues/2401)
[#&#8203;2483](https://togithub.com/aquaproj/aqua/issues/2483) Release
aqua to
[Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/)
🎉


[https://github.com/microsoft/winget-pkgs/pull/127174](https://togithub.com/microsoft/winget-pkgs/pull/127174)

### [`v2.17.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.2...v2.17.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.3)
| https://github.com/aquaproj/aqua/compare/v2.17.2...v2.17.3

##### Bug Fixes 🐞

[#&#8203;2476](https://togithub.com/orgs/aquaproj/discussions/2476)
[#&#8203;2479](https://togithub.com/aquaproj/aqua/issues/2479) policy:
fix a bug that the [Git Repository root's policy
file](https://aquaproj.github.io/docs/reference/security/policy-as-code/git-policy/)
doesn't work well in working trees

##### Others

[#&#8203;2470](https://togithub.com/aquaproj/aqua/issues/2470)
[#&#8203;2472](https://togithub.com/aquaproj/aqua/issues/2472) Replace
the third party library github.com/codingsince1985/checksum with
standard libraries

This library caused the bug
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) and we
can replace the library with standard libraries easily.
We should use standard libraries as much as possible.

[#&#8203;2473](https://togithub.com/aquaproj/aqua/issues/2473) Revert
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)

[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469) was
required to resolve
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) , but
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467) was
resolved by
[#&#8203;2472](https://togithub.com/aquaproj/aqua/issues/2472) so
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469) is
unnecessary anymore.


[https://github.com/aquaproj/aqua/pull/2472#issuecomment-1812023515](https://togithub.com/aquaproj/aqua/pull/2472#issuecomment-1812023515)

### [`v2.17.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.1...v2.17.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.2)
| https://github.com/aquaproj/aqua/compare/v2.17.1...v2.17.2

#### Bug Fixes

[#&#8203;2457](https://togithub.com/orgs/aquaproj/discussions/2457)
[#&#8203;2458](https://togithub.com/aquaproj/aqua/issues/2458) update:
Fix a panic when trying to update commands unmanaged by aqua
[@&#8203;dreamjz](https://togithub.com/dreamjz)
[#&#8203;2468](https://togithub.com/aquaproj/aqua/issues/2468) policy
init: Fix typo in CLI output [@&#8203;ka2n](https://togithub.com/ka2n)
[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467)
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)
update-checksum: Copy an asset to a temporal file to calculate the
checksum correctly

##### update-checksum: Copy an asset to a temporal file to calculate the
checksum correctly

[#&#8203;2467](https://togithub.com/aquaproj/aqua/issues/2467)
[#&#8203;2469](https://togithub.com/aquaproj/aqua/issues/2469)

This fixes a bug that the checksum verification of aws/aws-cli fails
because the expected checksum of aws/aws-cli is wrong.

If you face the issue already, please remove checksums of aws/aws-cli
from aqua-checksums.json and run `aqua update-checksum` with aqua
v2.17.2 or newer.

aqua-checksums.json

```json
    // Delete this element
    {
      "id": "http/awscli.amazonaws.com/AWSCLIV2-2.13.35.pkg",
      "checksum": "520E1CB49004ECED7DB1CFE70E6FA73EFC6EDDF1CDB38AF535D126F1DB6574C8",
      "algorithm": "sha256"
    },
```

#### 🎉 New Contributors

Thank you for your contribution!

[@&#8203;ka2n](https://togithub.com/ka2n)
[#&#8203;2468](https://togithub.com/aquaproj/aqua/issues/2468)

### [`v2.17.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.17.0...v2.17.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.1)
| https://github.com/aquaproj/aqua/compare/v2.17.0...v2.17.1

#### Bug Fixes 🐞

[#&#8203;2456](https://togithub.com/aquaproj/aqua/issues/2456)
generate-registry: Fix a bug that the order of versions in pkg.yaml is
wrong

### [`v2.17.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.17.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.4...v2.17.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.17.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.17.0)
| https://github.com/aquaproj/aqua/compare/v2.16.4...v2.17.0

##### Features

[#&#8203;2355](https://togithub.com/aquaproj/aqua/issues/2355)
[#&#8203;2447](https://togithub.com/aquaproj/aqua/issues/2447) Limit the
number of versions retrieved by command `generate` and `update`
[@&#8203;dreamjz](https://togithub.com/dreamjz)

With aqua v2.16.4 or earlier, `aqua generate -s` and `aqua update -s`
retrieved all versions and these commands couldn't change the number of
versions.
This release adds the command line option `--limit/-l` to these
commands.
The value of this option is the number of versions.
The default value is `30`.
If the value is less than zero, all versions are retrieved.

This change would reduced useless GitHub API calls and make these
commands faster.

e.g.

```sh
aqua g -s # Retrieve 30 versions
aqua g -s -l 10 # Retrieve 10 versions
aqua g -s -l -1 # Retrieve all versions
```

[#&#8203;2445](https://togithub.com/aquaproj/aqua/issues/2445) Change
the default checksum algorithm from `sha512` to `sha256`

sha256 is enough.
We don't need to use sha512.

[#&#8203;2428](https://togithub.com/aquaproj/aqua/issues/2428) Add an
alias of `update-checksum` command

```sh
aqua upc
```

[#&#8203;2105](https://togithub.com/aquaproj/aqua/issues/2105)
[#&#8203;2425](https://togithub.com/aquaproj/aqua/issues/2425)
[#&#8203;2413](https://togithub.com/aquaproj/aqua/issues/2413)
generate-registry: Improve the format of `version_overrides` and improve
the logic to generate `version_overrides`

##### Bug Fixes 🐞

[#&#8203;2444](https://togithub.com/aquaproj/aqua/issues/2444)
generate-registry: Fix checksum filename for sha1

##### Others

[#&#8203;2436](https://togithub.com/aquaproj/aqua/issues/2436)
chore(deps): update dependency slsa-framework/slsa-verifier to v2.4.1
[#&#8203;2395](https://togithub.com/aquaproj/aqua/issues/2395) change
the format of prebuilt binaries for Windows to zip

Before:

aqua_windows_amd64.tar.gz
aqua_windows_arm64.tar.gz

After:

aqua_windows_amd64.zip
aqua_windows_arm64.zip

On Windows zip is more user friendly than tar.gz.
And to support Winget for Windows, it seems we need to change the format
to zip.

-
[https://github.com/aquaproj/aqua/issues/2401](https://togithub.com/aquaproj/aqua/issues/2401)

<!---->

      • winget
⨯ release failed after 1m11s error=no zip archives found matching
goos=[windows] goarch=[amd64 386] goamd64=v1 ids=[]
    Error: Process completed with exit code 1.

⚠️ To upgrade aqua to v2.17.0 or newer on Windows, you need to upgrade
aqua to v2.16.1 ~ v2.16.4 once.

e.g.

```sh
aqua upa v2.16.4
aqua upa
```

##### New Contributors 🎉

Thank you for your contribution!

[@&#8203;dreamjz](https://togithub.com/dreamjz)
[#&#8203;2447](https://togithub.com/aquaproj/aqua/issues/2447)

### [`v2.16.4`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.4)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.3...v2.16.4)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.4)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.4)
| https://github.com/aquaproj/aqua/compare/v2.16.3...v2.16.4

##### Bug Fixes

[#&#8203;2420](https://togithub.com/aquaproj/aqua/issues/2420)
generate-registry: Get latest versions of cargo packages

### [`v2.16.3`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.3)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.2...v2.16.3)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.3)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.3)
| https://github.com/aquaproj/aqua/compare/v2.16.2...v2.16.3

##### Bug Fixes

[#&#8203;2414](https://togithub.com/orgs/aquaproj/discussions/2414)
[#&#8203;2415](https://togithub.com/aquaproj/aqua/issues/2415) fix a bug
that AQUA_DISABLE_POLIDY doesn't work
[#&#8203;2412](https://togithub.com/aquaproj/aqua/issues/2412)
generate-registry: Improve the judgement of OS by file extensions such
as `.exe`, `.pkg`, and `.dmg`

##### Others

Refactoring

### [`v2.16.2`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.2)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.1...v2.16.2)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.2)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.2)
| https://github.com/aquaproj/aqua/compare/v2.16.1...v2.16.2

#### Others

[#&#8203;2399](https://togithub.com/aquaproj/aqua/issues/2399)
[#&#8203;2400](https://togithub.com/aquaproj/aqua/issues/2400) Support
[Scoop](https://scoop.sh/) 🎉

You can install aqua by [Scoop](https://scoop.sh/) on Windows.

```sh
scoop bucket add aquaproj https://github.com/aquaproj/scoop-bucket
scoop install aqua
```

### [`v2.16.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.16.0...v2.16.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.1)
| https://github.com/aquaproj/aqua/compare/v2.16.0...v2.16.1

##### Bug Fixes

[#&#8203;2393](https://togithub.com/aquaproj/aqua/issues/2393)
generate-registry: Fix the usage of `-cmd` option

##### Others

[#&#8203;2394](https://togithub.com/aquaproj/aqua/issues/2394)
[#&#8203;2396](https://togithub.com/aquaproj/aqua/issues/2396) Change
the format to zip on Windows at aqua v2.17.0

This is a preparation for the future change.
At aqua v2.17.0, the format of prebuilt binaries for Windows will be
changed from `tar.gz` to `zip`.
This is because `zip` is more user friendly for Windows Users and some
tools such as Winget expects zip.


https://github.com/goreleaser/goreleaser/blob/b1271d2559e05711e31c6d39c9cbf9eb3e808d5a/internal/pipe/winget/winget.go#L41

To upgrade aqua to v2.17.0 or later on Windows, you need to upgrade aqua
to v2.16.1 or later first.
aqua can't upgrade aqua from v2.16.0 or earlier to v2.17.0 or later on
Windows.

```console
$ aqua update-aqua v2.16.1
$ aqua update-aqua
```

### [`v2.16.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.16.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.15.1...v2.16.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.16.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.16.0)
| https://github.com/aquaproj/aqua/compare/v2.15.1...v2.16.0

#### Features

[#&#8203;2380](https://togithub.com/aquaproj/aqua/issues/2380) Support
removing packages by command names

e.g.

```sh
aqua rm tfcmt # Remove suzuki-shunsuke/tfcmt
```

### [`v2.15.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.15.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.15.0...v2.15.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.15.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.15.1)
| https://github.com/aquaproj/aqua/compare/v2.15.0...v2.15.1

##### Bug Fixes

[#&#8203;2376](https://togithub.com/aquaproj/aqua/issues/2376) Fix a bug
that aqua stops searching configuration files if files are located in
either aqua or .aqua directory

##### How to reproduce the issue

Directory structure

    /workspace/
      aqua.yaml
      foo/ # current directory
        aqua/
          aqua.yaml

Run `aqua i`.

```sh
aqua i
```

##### Expected behaviour

aqua installs packages with `/workspace/aqua.yaml` and
`/workspace/foo/aqua/aqua.yaml`.

##### Actual behaviour

aqua installs packages with only `/workspace/foo/aqua/aqua.yaml`, and
ignores `/workspace/aqua.yaml`.

### [`v2.15.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.15.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.14.1...v2.15.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.15.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.15.0)
| https://github.com/aquaproj/aqua/compare/v2.14.1...v2.15.0

##### Overview

-   Features
- [#&#8203;2351](https://togithub.com/aquaproj/aqua/issues/2351)
[#&#8203;2366](https://togithub.com/aquaproj/aqua/issues/2366)
generate-registry: Get all GitHub Releases by default
- [#&#8203;2349](https://togithub.com/aquaproj/aqua/issues/2349)
[#&#8203;2362](https://togithub.com/aquaproj/aqua/issues/2362)
generate-registry: Add an option `-cmd`
-   Others
- [#&#8203;2359](https://togithub.com/aquaproj/aqua/issues/2359)
update-aqua: Add an alias `upa` to the command

##### generate-registry: Get all GitHub Releases by default

[#&#8203;2351](https://togithub.com/aquaproj/aqua/issues/2351)
[#&#8203;2366](https://togithub.com/aquaproj/aqua/issues/2366)

The behaviour of `generate-registry` command was changed.
The command gets all GitHub Releases by default to generate
`version_overrides`.

The option `--deep` is deprecated. The option has no meaning anymore.
The option is kept only for the compatibility.
The option will be removed at aqua v3.

The option `--limit (-l)` is added. This option takes an integer, which
is the maximum number of releases.

e.g.

```sh
aqua gr --limit 100
```

##### generate-registry: Add an option `-cmd`

[#&#8203;2349](https://togithub.com/aquaproj/aqua/issues/2349)
[#&#8203;2362](https://togithub.com/aquaproj/aqua/issues/2362)

If `-cmd` is set, `files` is set.

e.g.

```console
$ aqua gr -cmd gh cli/cli
```

```yaml

##### ...
  files:
    - name: gh
```

You can specify multiple commands with commas `,`.

e.g.

```console
$ aqua gr -cmd age,age-keygen FiloSottile/age
```

```yaml

##### ...
  files:
    - name: age
    - name: age-keygen
```

##### update-aqua: Add an alias `upa` to the command

[#&#8203;2359](https://togithub.com/aquaproj/aqua/issues/2359)

`update-aqua` is too long.

```console
$ aqua upa # update-aqua
```

### [`v2.14.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.14.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.14.0...v2.14.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.14.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.14.1)
| https://github.com/aquaproj/aqua/compare/v2.14.0...v2.14.1

##### Fixes

[#&#8203;2354](https://togithub.com/aquaproj/aqua/issues/2354)
[#&#8203;2356](https://togithub.com/aquaproj/aqua/issues/2356) generate:
Fixed a bug that sometimes `aqua g` outputs non latest version

versiongetter: Fix getting the latest version

Use GetLatestRelease API before using ListReleases API

[#&#8203;2245](https://togithub.com/aquaproj/aqua/issues/2245)
[#&#8203;2358](https://togithub.com/aquaproj/aqua/issues/2358) generate:
Fixed a bug that `aqua g -i` fails when a comment exists in the same
line with `packages:`

Get string values from `*ast.StringNode.Value` instead of
`ast.MapKeyNode.String()`

##### Others

[#&#8203;2340](https://togithub.com/aquaproj/aqua/issues/2340)
fix(deps): update module github.com/google/go-github/v55 to v56

### [`v2.14.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.14.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.13.1...v2.14.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.14.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.14.0)
| https://github.com/aquaproj/aqua/compare/v2.13.1...v2.14.0

[#&#8203;1657](https://togithub.com/aquaproj/aqua/issues/1657)
[#&#8203;2329](https://togithub.com/aquaproj/aqua/issues/2329) Update
registries and packages by update command

Finally `aqua update` command is supported 🎉
You can update all packages and registries, or select updated packages.
You can also select packages and versions with fuzzy finder.

[Document](https://aquaproj.github.io/docs/guides/update-command/)

> \[!NOTE]\
> You can update registries and packages by Renovate too.
> Please see [Update packages by
Renovate](https://aquaproj.github.io/docs/guides/renovate).

You can update registries and packages by `aqua update (up)` command.

If no argument is passed, all registries and packages are updated to the
latest.

```sh

##### Update all packages and registries to the latest versions
aqua update
```

This command has an alias "up"

```sh
aqua up
```

This command

- gets the latest version from GitHub Releases, GitHub Tags, and
crates.io and updates aqua.yaml
-   doesn't install packages

##### Updated configuration file paths

This command finds a configuration file `aqua.yaml` according to [the
rule](https://aquaproj.github.io/docs/reference/config/#configuration-file-path)
and updates only one file.
Once this command finds one file, it stops searching other aqua.yaml.

So if you want to update other files, please change the current
directory or specify the configuration file path with the option `-c`.

```sh
aqua -c foo/aqua.yaml update
```

##### Update only registries

If you want to update only registries, please use the `--only-registry
[-r]` option.

```sh

##### Update only registries
aqua update -r
```

##### Update only packages

If you want to update only packages, please use the `--only-package
[-p]` option.

```sh

##### Update only packages
aqua update -p
```

##### Update only specific commands

You can specify packages with command names. aqua finds packages that
have these commands and updates them.

```sh
aqua update <command name> [<command name> ...]
```

e.g.

```sh

##### Update cli/cli
aqua update gh
```

##### Select packages with Fuzzy Finder

If you want to update only specific packages, please use the `-i`
option.
You can select packages with the fuzzy finder.
If `-i` option is used, registries aren't updated.

```sh

##### Select updated packages with fuzzy finder
aqua update -i
```

##### Select the package version with Fuzzy Finder

If you want to select versions, please use the `-s` option.
You can select versions with the fuzzy finder. You can not only update
but also downgrade packages.

```sh

##### Select updated packages and versions with fuzzy finder
aqua update -i -s
```

##### The field `version` is ignored

This command doesn't update packages if the `version` field is used.

```yaml
packages:
  - name: cli/[email protected] # Update
  - name: gohugoio/hugo
    version: v0.118.0 # Doesn't update
```

So if you don't want to update specific packages, the `version` field is
useful.

##### commit hashes are ignored

This command doesn't update commit hashes.

```yaml
packages:
  - name: google/pprof@d04f2422c8a17569c14e84da0fae252d9529826b # Doesn't update
```

##### ⚠️ Known Issues

There are some known issues related to the third party library
[goccy/go-yaml](https://togithub.com/goccy/go-yaml).

##### `null` is set to `packages` wrongly if registries are updated and
`packages` is empty

This issue is because of the third party library
[goccy/go-yaml](https://togithub.com/goccy/go-yaml).

Before

```yaml
registries:
- ref: v4.60.0
  type: standard
packages:
```

Run `aqua up`.

```console
$ aqua up
INFO[0000] updating a registry                           aqua_version= env=darwin/arm64 new_version=v4.65.0 old_version=v4.60.0 program=aqua registry_name=standard
```

After

```yaml
registries:
- ref: v4.65.0
  type: standard
packages: null
```

##### Newlines are removed wrongly

This issue is because of the third party library
[goccy/go-yaml](https://togithub.com/goccy/go-yaml).

-
[https://github.com/goccy/go-yaml/issues/285](https://togithub.com/goccy/go-yaml/issues/285)

Before

```yaml
registries:
- ref: v4.60.0
  type: standard

packages:
- name: suzuki-shunsuke/[email protected]
```

Run `aqua up`.

```console
$ aqua up
INFO[0000] updating a registry                           aqua_version= env=darwin/arm64 new_version=v4.65.0 old_version=v4.60.0 program=aqua registry_name=standard
```

After

```yaml
registries:
- ref: v4.65.0
  type: standard
packages:
- name: suzuki-shunsuke/[email protected]
```

##### Discord Channel was open 🎉

This has nothing to do with this release, but we opened a Discord
channel 🎉

https://discord.com/channels/1141777454164365382/1162444533959757955

### [`v2.13.1`](https://togithub.com/aquaproj/aqua/releases/tag/v2.13.1)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.13.0...v2.13.1)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.13.1)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.13.1)
| https://github.com/aquaproj/aqua/compare/v2.13.0...v2.13.1

##### Others

[#&#8203;2332](https://togithub.com/aquaproj/aqua/issues/2332)
chore(deps): update dependency golang/go to v1.21.3
[#&#8203;2335](https://togithub.com/aquaproj/aqua/issues/2335)
fix(deps): update module github.com/google/go-cmp to v0.6.0

### [`v2.13.0`](https://togithub.com/aquaproj/aqua/releases/tag/v2.13.0)

[Compare
Source](https://togithub.com/aquaproj/aqua/compare/v2.12.2...v2.13.0)

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.13.0)
|
[Issues](https://togithub.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.13.0)
| https://github.com/aquaproj/aqua/compare/v2.12.2...v2.13.0

This release includes several improvement of Registry settings.
This updates affect Registry developers including aqua-registry's
contributors.
There is no direct change for almost all aqua users.

To keep the compatibility and minimize the effect to users, we won't use
new features in
[aqua-registry](https://togithub.com/aquaproj/aqua-registry) for at
least one month after v2.13.0 is released.
If we apply new features to existing packages of aqua-registry, this
requires a major update of aqua-registry because this is a breaking
change.

#### Features

[#&#8203;2318](https://togithub.com/aquaproj/aqua/issues/2318)
[#&#8203;2320](https://togithub.com/aquaproj/aqua/issues/2320) Add a new
field `envs` to `overrides` instead of `goos` and `goarch`
[#&#8203;2132](https://togithub.com/aquaproj/aqua/issues/2132)
[#&#8203;2317](https://togithub.com/aquaproj/aqua/issues/2317) Support
using `go_install` or `go_build` if the platform isn't included in
`supported_envs`
[#&#8203;1774](https://togithub.com/aquaproj/aqua/issues/1774)
[#&#8203;2314](https://togithub.com/aquaproj/aqua/issues/2314) Support
omitting `.{{.Format}}` in `asset` and `url`
[#&#8203;1876](https://togithub.com/aquaproj/aqua/issues/1876)
[#&#8203;2313](https://togithub.com/aquaproj/aqua/issues/2313) Support
short file extensions in `format`
[#&#8203;1774](https://togithub.com/aquaproj/aqua/issues/1774)
[#&#8203;2310](https://togithub.com/aquaproj/aqua/issues/2310) Add the
template variable `AssetWithoutExt` to `files[].src`

##### Add a new field `envs` to `overrides` instead of `goos` and
`goarch`

[#&#8203;2318](https://togithub.com/aquaproj/aqua/issues/2318)
[#&#8203;2320](https://togithub.com/aquaproj/aqua/issues/2320)

Add a new field `envs` to `overrides`.
The syntax of `envs` is same with `supported_envs`.

The syntax of `envs` is more flexible than the combination of `goos` and
`goarch`.
In some cases we can simplify the code.

For example, the combination of `goos` and `goarch` can't express the
pair of `linux/arm64` and `windows/arm64`.

```yaml
overrides:
  - goos: windows
    goarch: arm64

### ...
  - goos: linux
    goarch: arm64

### ...
```

`envs` can simplify the code.

```yaml
overrides:
  - envs:
      - windows/arm64
      - linux/arm64

### ...
```

##### Support using `go_install` or `go_build` if the platform isn't
included in `supported_envs`

[#&#8203;2132](https://togithub.com/aquaproj/aqua/issues/2132)
[#&#8203;2317](https://togithub.com/aquaproj/aqua/issues/2317)

A new field `build` is added to Registry settings.
This enables to install packages by `go_install` or `go_build` on
platforms where prebuilt binaries aren't published.

This is an example usage of the new field `build`.

```yaml
packages:
  - type: github_release
    repo_owner: suzuki-shunsuke
    repo_name: tfcmt
    asset: tfcmt_{{.OS}}_{{.Arch}}.{{.Format}}
    format: tar.gz
    supported_envs:
      - linux
    build:
      type: go_build
      files:
        - name: tfcmt
          src: ./cmd/tfcmt
          dir: tfcmt-{{trimV .Version}}
```

`supported_envs` is `linux`, so on platforms other than linux aqua
installs tfcmt by `go_build`.

`go_install` is also available.

```yaml
    build:
      type: go_install
      path: github.com/suzuki-shunsuke/tfcmt/v4/cmd/tfcmt
```

If `go_build` failed on windows/arm64 and you'd like to exclude
windows/arm64, `excluded_envs` is available.

```yaml
    build:
      type: go_build
      excluded_envs:
        - windows/arm64
      files:
        - name: tfcmt
          src: ./cmd/tfcmt
          dir: tfcmt-{{trimV .Version}}
```

If you'd like to disable `build` in version_overrides, `enabled` is
available.

```yaml
build:
  enabled: false
```

##### Why not `overrides`?

Of 

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/DelineaXPM/github-workflows).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yOTMuMCIsInVwZGF0ZWRJblZlciI6IjM4LjIwLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant