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

feat: add update command #2329

Merged
merged 44 commits into from
Oct 16, 2023
Merged

feat: add update command #2329

merged 44 commits into from
Oct 16, 2023

Conversation

suzuki-shunsuke
Copy link
Member

@suzuki-shunsuke suzuki-shunsuke commented Oct 9, 2023

Add a sub command update (up) to update registries and packages.

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

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

This command has an alias "up"

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 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.

aqua -c foo/aqua.yaml update

Update only registries

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

# Update only registries
aqua update -r

Update only packages

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

# 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.

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

e.g.

# 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.

# 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.

# 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.

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.

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

⚠️ Known Issues

There are some known issues related to the third party library 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.

Before

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

Run aqua up.

$ 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

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.

Before

registries:
- ref: v4.60.0
  type: standard


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

Run aqua up.

$ 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

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

@suzuki-shunsuke suzuki-shunsuke added the enhancement New feature or request label Oct 9, 2023
@suzuki-shunsuke
Copy link
Member Author

suzuki-shunsuke commented Oct 14, 2023

  • Update registries
  • Update packages
  • aqua update <package> updates only specific packages
  • aqua update <command> updates only specific packages which have specific commands
  • aqua update -i
  • aqua update -s Select version with fuzzy finder
  • Ignore commit hash
  • aqua update -minor: Don't update major version
  • Update global config
  • Update all config

  • package + registry: aqua update
  • only package: aqua update --only-package [-p]
  • only registry: aqua update --only-registry [-r]

  • aqua update -i [-s]: only package

@suzuki-shunsuke suzuki-shunsuke added this to the v2.14.0 milestone Oct 14, 2023
@suzuki-shunsuke
Copy link
Member Author

@suzuki-shunsuke suzuki-shunsuke merged commit 3ba4016 into main Oct 16, 2023
11 checks passed
@suzuki-shunsuke suzuki-shunsuke deleted the feat-update-command branch October 16, 2023 11:29
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
None yet
Development

Successfully merging this pull request may close these issues.

1 participant