Skip to content

Releases: aquaproj/aqua

v0.7.7-0

17 Oct 03:44
53ea1ee
Compare
Choose a tag to compare
v0.7.7-0 Pre-release
Pre-release

Milestone
v0.7.6...v0.7.7-0

Feature

#358 Support changing package type in version_overrides

e.g.

- type: github_release
  repo_owner: abiosoft
  repo_name: colima
  description: Docker (and Kubernetes) on MacOS with minimal setup
  asset: "colima-amd64"
  version_constraint: 'semver(">= 0.2.0")'
  version_overrides:
  - version_constraint: 'semver("< 0.2.0")'
    type: github_content
    path: colima

v0.7.6

06 Oct 13:14
715969f
Compare
Choose a tag to compare

Milestone
v0.7.5...v0.7.6

Feature

#261 #346 Support the package type github_archive

The package type github_archive downloads the package from GitHub Repository Archive.

e.g.

- type: github_archive
  repo_owner: tfutils
  repo_name: tfenv
  description: Terraform version manager
  files:
  - name: tfenv
    src: tfenv-{{trimV .Version}}/bin/tfenv
  - name: terraform
    src: tfenv-{{trimV .Version}}/bin/terraform

Fix

#344 Generate github_content package's configuration with new syntax

Follow up #342

Fix the generation of github_content type's package configuration by aqua g command.

  • Get the latest version
  • Use the new syntax

AS IS

$ echo "standard,suzuki-shunsuke/aqua-installer" | aqua g -f -
- name: suzuki-shunsuke/aqua-installer
  version: '[SET PACKAGE VERSION]'

TO BE

$ echo "standard,suzuki-shunsuke/aqua-installer" | aqua g -f -
- name: suzuki-shunsuke/aqua-installer@v0.1.3

v0.7.5

03 Oct 03:06
a147096
Compare
Choose a tag to compare

Milestone
v0.7.4...v0.7.5

Feature

#260 #342 Support a new package type github_content

The github_content type package is downloaded by GitHub Content API.

e.g.

inline_registry:
  packages:
  - type: github_content
    repo_owner: suzuki-shunsuke
    repo_name: aqua-installer
    path: aqua-installer

v0.7.4

02 Oct 09:41
17f96bb
Compare
Choose a tag to compare

Milestone
v0.7.3...v0.7.4

Feature

#332 #334 Support the syntax <package name>@<version>
#338 #339 Make Package's Registry optional. Set "standard" by default

Support the syntax <package name>@<version>

#332 #334

The following two configuration is equivalent.

- name: golangci/golangci-lint@v1.42.1
  registry: standard
- name: golangci/golangci-lint
  registry: standard
  version: v1.42.1

When you want to update the package with Renovate,
the first style is better because you don't have to write code comments for Renovate's Regex Manager.

- name: golangci/golangci-lint
  registry: standard
  version: v1.42.1 # renovate: depName=golangci/golangci-lint

If the package name in the code comment is wrong, the package version is changed wrongly.

- name: golangci/golangci-lint
  registry: standard
  # depName is wrong!
  version: v1.42.1 # renovate: depName=helm/helm

On the other hand, you can prevent such a misconfiguration by the first style.

Make Package's Registry optional. Set "standard" by default

#338 #339

You can omit registry: standard.

AS IS

- name: restic/restic@v0.12.1
  registry: standard

TO BE

- name: restic/restic@v0.12.1

Bug

#331 #333 When aqua i command's -a option is set, aqua i should not fail even if the configuration file isn't found

When aqua i command's -c option isn't set, aqua finds the configuration file from the current directory to the root directory.
When aqua i command's -a option is set, aqua i should not fail even if the configuration file isn't found.

Document

#327 Update USAGE
#324 Add a link to a blog post https://techblog.szksh.cloud/aqua-global-configs/

v0.7.4-0

02 Oct 03:06
72d12b9
Compare
Choose a tag to compare
v0.7.4-0 Pre-release
Pre-release

Milestone
v0.7.3...v0.7.4-0

Feature

#332 #334 Support the syntax <package name>@<version>

The following two configuration is equivalent.

- name: golangci/golangci-lint@v1.42.1
  registry: standard
- name: golangci/golangci-lint
  registry: standard
  version: v1.42.1

When you want to update the package with Renovate,
the first style is better because you don't have to write code comments for Renovate's Regex Manager.

- name: golangci/golangci-lint
  registry: standard
  version: v1.42.1 # renovate: depName=golangci/golangci-lint

If the package name in the code comment is wrong, the package version is changed wrongly.

- name: golangci/golangci-lint
  registry: standard
  # depName is wrong!
  version: v1.42.1 # renovate: depName=helm/helm

On the other hand, you can prevent such a misconfiguration by the first style.

Bug

#331 #333 When aqua i command's -a option is set, aqua i should not fail even if the configuration file isn't found

When aqua i command's -c option isn't set, aqua finds the configuration file from the current directory to the root directory.
When aqua i command's -a option is set, aqua i should not fail even if the configuration file isn't found.

Document

#327 Update USAGE
#324 Add a link to a blog post https://techblog.szksh.cloud/aqua-global-configs/

v0.7.3

25 Sep 05:05
1cbadea
Compare
Choose a tag to compare

Milestone
v0.7.2...v0.7.3

Feature

#321 #322 Support multiple global configuration and the install command's option -a

This feature is useful to share aqua configuration for teams and organizations.
aqua reads configuration from the environment variable AQUA_GLOBAL_CONFIG.
AQUA_GLOBAL_CONFIG is configuration file paths separated with semicolons :.

e.g.

export AQUA_GLOBAL_CONFIG=/home/foo/aqua-config/sre.yaml:/home/foo/aqua-config/all.yaml

The priority of configuration is the following.

  1. configuration file specified by -c option or configuration file which found from the current directory to the root directory
  2. $AQUA_GLOBAL_CONFIG
  3. $AQUA_ROOT_DIR/global/[.]aqua.y[a]ml (~/.aqua/global/[.]aqua.y[a]ml)

The option --all (-a) is added to the command aqua install.
By default aqua install ignores $AQUA_GLOBAL_CONFIG and $AQUA_ROOT_DIR/global/[.]aqua.y[a]ml (~/.aqua/global/[.]aqua.y[a]ml).
If --all (-a) is set, aqua installs all packages including $AQUA_GLOBAL_CONFIG and $AQUA_ROOT_DIR/global/[.]aqua.y[a]ml (~/.aqua/global/[.]aqua.y[a]ml).

How to share aqua configuration for teams and organizations

I'll introduce one idea to share aqua configuration for teams and organizations.

Let's create the repository aqua-config in your GitHub Organization, and add aqua configuration files for your teams and organization into the repository.

aqua-config/
  all.yaml # aqua configuration for all developers in your organization
  sre.yaml # aqua configuration for your SRE team

Then checkout the repository and set the environment variable AQUA_GLOBAL_CONFIG.
If you belong to SRE team,

export AQUA_GLOBAL_CONFIG=/home/foo/aqua-config/sre.yaml:/home/foo/aqua-config/all.yaml

Otherwise

export AQUA_GLOBAL_CONFIG=/home/foo/aqua-config/all.yaml

Others

#320 Integration test of version_constraint in CI

v0.7.2

23 Sep 22:36
Compare
Choose a tag to compare

Milestone
v0.7.1...v0.7.2

Feature

#21 #314 Support changing package metadata per version
#298 #311 Parse templates when it is needed
#292 #294 Add aqua's version in outputs
#296 Add validations of the Configuration

Support changing package metadata per version

Some package attributes like asset and files may be different by it's version.
For example, the asset structure of golang-migrate was changed from v4.15.0.
In that case, the attributes version_constraint and version_overrides are useful.

e.g.

- type: github_release
  repo_owner: golang-migrate
  repo_name: migrate
  asset: 'migrate.{{.OS}}-{{.Arch}}.tar.gz'
  description: Database migrations. CLI and Golang library
  version_constraint: 'semver("> 4.14.1")'
  version_overrides:
  - version_constraint: 'semver("<= 4.14.1")'
    files:
    - name: migrate
      src: 'migrate.{{.OS}}-{{.Arch}}'

version_constraint is expr's expression.
The evaluation result must be a boolean.

Currently, the following values and functions are accessible in the expression.

  • version: (type: string) The package version
  • semver: (type: func(string) bool) Tests if the package version satisfies all the constraints. hashicorp/go-version is used

version_overrides

The list of version override.

The following attributes are supported.

  • version_constraint
  • files
  • format
  • format_overrides
  • replacements
  • asset
  • url

e.g.

  version_overrides:
  - version_constraint: 'semver("<= 4.14.1")'
    files:
    - name: migrate
      src: 'migrate.{{.OS}}-{{.Arch}}'

Document

#286 Update document about Configuration
#300 Update document
#306 Add int128/aqua-action to the section Install

Test

#308 #310 Update Integration tests
#299 #303 #305 #307 Add Unit tests

v0.7.1

15 Sep 13:08
7b97fe8
Compare
Choose a tag to compare

Milestone
v0.7.0...v0.7.1

Feature

#282 Add the executable permission to the owner if he doesn't have

v0.7.0

14 Sep 12:12
d40b59f
Compare
Choose a tag to compare

Milestone
v0.6.2...v0.7.0

⚠️ Breaking Change

#269 #275 Rename the configuration archive_type and archive_type_overrides are renamed
#268 #273 Remove deprecated Template variables

Supported Standard Registry Version: >= v0.7.0

Rename the configuration archive_type and archive_type_overrides are renamed

#269 #275

  • archive_type: format
  • archive_type_overrides: format_overrides

https://goreleaser.com/customization/archive/

Remove deprecated Template variables

#268 #273
Related: #249 #250

The following Template Variables are removed.

  • Package
  • PackageInfo
  • File

Feature

#272 #274 #275 Set the default values to github_release package's package name, link, and files

  • Default Name: <repo owner>/<repo name>
  • Default link: https://github.com/<repo owner>/<repo name>
  • Default files: [{"name": "<repo name>"}]

Document

#276 Fix package names

v0.7.0-0

14 Sep 11:27
f8252b0
Compare
Choose a tag to compare
v0.7.0-0 Pre-release
Pre-release

Milestone
v0.6.2...v0.7.0-0

⚠️ Breaking Change

#269 #275 Rename the configuration archive_type and archive_type_overrides are renamed
#268 #273 Remove deprecated Template variables

Rename the configuration archive_type and archive_type_overrides are renamed

#269 #275

  • archive_type: format
  • archive_type_overrides: format_overrides

https://goreleaser.com/customization/archive/

Remove deprecated Template variables

#268 #273
Related: #249 #250

The following Template Variables are removed.

  • Package
  • PackageInfo
  • File

Feature

#272 #274 #275 Set the default values to github_release package's package name, link, and files

  • Default Name: <repo owner>/<repo name>
  • Default link: https://github.com/<repo owner>/<repo name>
  • Default files: [{"name": "<repo name>"}]