Releases: aquaproj/aqua
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
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
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>
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
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
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
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.
- configuration file specified by
-c
option or configuration file which found from the current directory to the root directory $AQUA_GLOBAL_CONFIG
$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
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 versionsemver
: (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
Feature
#282 Add the executable permission to the owner if he doesn't have
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
archive_type
:format
archive_type_overrides
:format_overrides
https://goreleaser.com/customization/archive/
Remove deprecated Template variables
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
⚠️ 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
archive_type
:format
archive_type_overrides
:format_overrides
https://goreleaser.com/customization/archive/
Remove deprecated Template variables
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>"}]