jdx/mise

Cannot install typos using aqua

Closed this issue · 3 comments

Describe the bug
typos (crate-ci/typos) cannot be installed with aqua, the default backend.

Error: 
   0: Failed to install typos@1.27.3
   1: unsupported env: linux-amd64

Location:
   src/backend/aqua.rs:278

It seems the error is caused by supported_envs being darwin and amd64.
https://github.com/jdx/mise/blob/a83d6085f2ab2b81e2165530ab6c0e9cdd734a15/src/backend/aqua.rs#L269-281

To Reproduce
Run mise install typos in the Linux environment.

Expected behavior
typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz will be installed.
https://github.com/crate-ci/typos/releases/tag/v1.27.3

mise doctor output

version: 2024.11.13 linux-x64 (f1db9e0 2024-11-14)
activated: yes
shims_on_path: yes

build_info:
  Target: x86_64-unknown-linux-gnu
  Features: DEFAULT, NATIVE_TLS, OPENSSL
  Built: Thu, 14 Nov 2024 17:42:41 +0000
  Rust Version: rustc 1.82.0 (f6e511eec 2024-10-15)
  Profile: release

shell:
  /bin/bash
  GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
  Copyright (C) 2022 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

  This is free software; you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.

dirs:
  data: ~/.local/share/mise
  config: ~/.config/mise
  cache: ~/.cache/mise
  state: ~/.local/state/mise
  shims: ~/.local/share/mise/shims

config_files:
  ~/.config/mise/config.toml
  ~/github/dotfiles/mise.toml

backends:
  aqua
  asdf
  cargo
  core
  go
  npm
  pipx
  spm
  ubi
  vfox
  unknown

plugins:
  gradle    https://github.com/rfrancis/asdf-gradle.git#3af5633
  rust      https://github.com/code-lever/asdf-rust.git#95acf4f
  shfmt     https://github.com/luizm/asdf-shfmt.git#a42c5ff
  yamllint  https://github.com/ericcornelissen/asdf-yamllint.git#4d055f9
  yarn      https://github.com/mise-plugins/asdf-yarn.git#74ea3b9

toolset:
  core:bun@1.1.34
  core:node@23.2.0
  ubi:cargo-bins/cargo-binstall[tag_regex=^\d\.]@1.10.11
  npm:@biomejs/biome@1.9.4
  ubi:rhysd/actionlint@1.7.4
  ubi:suzuki-shunsuke/ghalint@1.0.0
  ubi:suzuki-shunsuke/pinact@1.0.0
  ubi:tamasfe/taplo[matching=full]@0.9.3
  npm:prettier@3.3.3
  npm:markdownlint-cli2@0.15.0
  asdf:luizm/asdf-shfmt@3.10.0
  ubi:koalaman/shellcheck@0.10.0
  aqua:google/yamlfmt@0.14.0
  asdf:ericcornelissen/asdf-yamllint@1.35.1
  npm:renovate@39.15.3
  npm:cspell@8.16.0
  cargo:lychee@0.17.0
  aqua:crate-ci/typos@1.27.3  (missing)
  asdf:mise-plugins/asdf-yarn@4.5.1
  aqua:pnpm/pnpm@9.13.1
  core:java@23.0.1
  asdf:rfrancis/asdf-gradle@8.11
  asdf:code-lever/asdf-rust@1.82.0
  core:python@3.13.0
  core:go@1.23.3
  aqua:astral-sh/uv@0.5.1
  ubi:jdx/usage@1.3.1
  aqua:jqlang/jq@1.7.1
  ubi:cli/cli[exe=gh]@2.62.0
  ubi:kellyjonbrazil/jc@1.25.3
  ubi:dandavison/delta@0.18.2

env_vars:
  MISE_SHELL=bash

settings:
  activate_aggressive = false
  all_compile = false
  always_keep_download = false
  always_keep_install = false
  asdf_compat = false
  cache_prune_age = "30d"
  ci = false
  color = true
  debug = false
  disable_backends = []
  disable_default_registry = false
  disable_hints = []
  disable_tools = []
  experimental = true
  fetch_remote_versions_cache = "1h"
  fetch_remote_versions_timeout = "10s"
  go_default_packages_file = "~/.default-go-packages"
  go_download_mirror = "https://dl.google.com/go"
  go_repo = "https://github.com/golang/go"
  go_set_gopath = false
  go_set_goroot = true
  go_skip_checksum = false
  http_timeout = "30s"
  jobs = 4
  legacy_version_file = true
  legacy_version_file_disable_tools = []
  libgit2 = true
  lockfile = false
  log_level = "info"
  not_found_auto_install = true
  paranoid = false
  pin = true
  plugin_autoupdate_last_check_duration = "7d"
  quiet = false
  raw = false
  task_timings = false
  trace = false
  trusted_config_paths = []
  unix_default_file_shell_args = ["sh"]
  unix_default_inline_shell_args = [
      "sh",
      "-c",
  ]
  use_file_shell_for_executable_tasks = false
  use_versions_host = true
  verbose = false
  windows_default_file_shell_args = [
      "cmd",
      "/c",
  ]
  windows_default_inline_shell_args = [
      "cmd",
      "/c",
  ]
  windows_executable_extensions = [
      "exe",
      "bat",
      "cmd",
      "com",
      "ps1",
      "vbs",
  ]
  yes = false

  [cargo]
  binstall = true

  [node]

  [npm]
  bun = true

  [pipx]
  uvx = true

  [python]
  default_packages_file = "~/.default-python-packages"
  pyenv_repo = "https://github.com/pyenv/pyenv.git"
  venv_auto_create = false
  venv_stdlib = false

  [ruby]
  default_packages_file = "~/.default-gems"
  ruby_build_repo = "https://github.com/rbenv/ruby-build.git"
  ruby_install = false
  ruby_install_repo = "https://github.com/postmodern/ruby-install.git"

  [status]
  missing_tools = "if_other_versions_installed"
  show_env = false
  show_tools = false
No warnings found
No problems found

Additional context
mise i --trace

TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/pipx-toml-sort/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/yamlfmt/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/delta/.mise.backend
DEBUG  1 [src/cli/mod.rs:228] ARGS: mise i --trace
TRACE  9 [src/cache.rs:129] reading ~/.cache/mise/yarn/legacy_filenames-46695.msgpack.z
TRACE  1 [src/config/mod.rs:92] config_paths: ["/home/risu/github/dotfiles/mise.toml", "/home/risu/.config/mise/config.toml"]
TRACE  2 [src/file.rs:150] cat ~/github/dotfiles/mise.toml
TRACE  3 [src/file.rs:150] cat ~/.config/mise/config.toml
TRACE  2 [src/config/config_file/mise_toml.rs:91] parsing: ~/github/dotfiles/mise.toml
TRACE  3 [src/config/config_file/mise_toml.rs:91] parsing: ~/.config/mise/config.toml
TRACE  1 [src/config/mod.rs:112] config: Config {
    Config Files: [
        "~/github/dotfiles/mise.toml",
        "~/.config/mise/config.toml",
    ],
}
DEBUG  1 [src/toolset/mod.rs:178] install_versions: typos@1.27.3
TRACE 19 [src/cache.rs:129] reading ~/.cache/mise/typos/remote_versions-46695.msgpack.z
INFO  19 [src/ui/progress_report.rs:148] typos@1.27.3                installing
TRACE 19 [src/file.rs:42] rm -rf ~/.cache/mise/typos/1.27.3
TRACE 19 [src/file.rs:66] rm ~/.local/share/mise/installs/typos/1.27.3
TRACE 19 [src/file.rs:169] mkdir -p ~/.local/share/mise/installs/typos/1.27.3
TRACE 19 [src/file.rs:169] mkdir -p ~/.local/share/mise/downloads/typos/1.27.3
TRACE 19 [src/file.rs:169] mkdir -p ~/.cache/mise/typos/1.27.3
TRACE 19 [src/file.rs:31] open ~/.cache/mise/aqua-registry/pkgs/crate-ci/typos/registry.yaml
TRACE 19 [src/file.rs:42] rm -rf ~/.local/share/mise/installs/typos/1.27.3
TRACE 19 [src/file.rs:42] rm -rf ~/.local/share/mise/downloads/typos/1.27.3
Error: 
   0: Failed to install typos@1.27.3
   1: unsupported env: linux-amd64

Location:
   src/backend/aqua.rs:278

Version:
   2024.11.13 linux-x64 (f1db9e0 2024-11-14)

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.

https://mise-versions.jdx.dev/aqua-registry/crate-ci/typos/registry.yaml
https://github.com/aquaproj/aqua-registry/blob/main/pkgs/crate-ci/typos/registry.yaml

packages:
  - type: github_release
    repo_owner: crate-ci
    repo_name: typos
    description: Source code spell checker
    asset: typos-{{.Version}}-{{.Arch}}-{{.OS}}.{{.Format}}
    format: tar.gz
    overrides:
      - goos: windows
        format: zip
    replacements:
      amd64: x86_64
      darwin: apple-darwin
      linux: unknown-linux-musl
      windows: pc-windows-msvc
    supported_envs:
      - darwin
      - amd64
    rosetta2: true
    version_constraint: semver(">= 1.13.18")
    version_overrides:
      - version_constraint: Version == "v1.13.17"
        format: zip
        overrides:
          - goos: darwin
            format: tar.gz
        replacements:
          amd64: x86_64
          darwin: apple-darwin
          windows: pc-windows-msvc
        supported_envs:
          - darwin
          - windows/amd64
      - version_constraint: semver(">= 1.1.0")
      - version_constraint: semver("< 1.1.0")
        replacements:
          amd64: x86_64
          darwin: apple-darwin
          linux: unknown-linux-gnu
          windows: pc-windows-msvc

I created #3037, but I still get the error with untar.
I couldn't find why, but somehow the path is suffixed with /. and results in EOENET.

TRACE 19 [src/file.rs:596] extracting ~/.local/share/mise/installs/typos/1.27.3/.
TRACE 19 [src/file.rs:42] rm -rf ~/.local/share/mise/downloads/typos/1.27.3
Error: 
   0: Failed to install typos@1.27.3
   1: failed to extract tar: ~/.local/share/mise/downloads/typos/1.27.3/typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz to ~/.local/share/mise/installs/typos/1.27.3
   2: No such file or directory (os error 2) when creating dir /home/risu/.local/share/mise/installs/typos/1.27.3/.
Full trace
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/cargo-cargo-insta/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/cargo-lychee/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/cargo-git-cliff/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/npm-prettier/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/gradle/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/yarn/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/ripgrep/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/uv/.mise.backend
DEBUG  1 [src/cli/mod.rs:228] ARGS: /home/risu/github/mise-dev/target/debug/mise i --trace
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/usage/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/cargo-usage-cli/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/cargo-cargo-show/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/pipx-toml-sort/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/yamlfmt/.mise.backend
TRACE  3 [src/file.rs:150] cat ~/.local/share/mise/installs/delta/.mise.backend
TRACE 16 [src/cache.rs:129] reading ~/.cache/mise/yarn/legacy_filenames-3292f.msgpack.z
TRACE  1 [src/config/mod.rs:92] config_paths: ["/home/risu/github/dotfiles/mise.toml", "/home/risu/.config/mise/config.toml"]
TRACE  2 [src/file.rs:150] cat ~/github/dotfiles/mise.toml
TRACE  3 [src/file.rs:150] cat ~/.config/mise/config.toml
TRACE  2 [src/config/config_file/mise_toml.rs:91] parsing: ~/github/dotfiles/mise.toml
TRACE  3 [src/config/config_file/mise_toml.rs:91] parsing: ~/.config/mise/config.toml
TRACE  1 [src/config/mod.rs:112] config: Config {
    Config Files: [
        "~/github/dotfiles/mise.toml",
        "~/.config/mise/config.toml",
    ],
}
DEBUG  1 [src/toolset/mod.rs:178] install_versions: typos@1.27.3
TRACE 19 [src/cache.rs:129] reading ~/.cache/mise/typos/remote_versions-3292f.msgpack.z
INFO  19 [src/ui/progress_report.rs:156] typos@1.27.3                installing
TRACE 19 [src/file.rs:42] rm -rf ~/.cache/mise/typos/1.27.3
TRACE 19 [src/file.rs:66] rm ~/.local/share/mise/installs/typos/1.27.3
TRACE 19 [src/file.rs:169] mkdir -p ~/.local/share/mise/installs/typos/1.27.3
TRACE 19 [src/file.rs:169] mkdir -p ~/.local/share/mise/downloads/typos/1.27.3
TRACE 19 [src/file.rs:169] mkdir -p ~/.cache/mise/typos/1.27.3
TRACE 19 [src/file.rs:31] open ~/.cache/mise/aqua-registry/pkgs/crate-ci/typos/registry.yaml
DEBUG 19 [src/http.rs:58] GET https://api.github.com/repos/crate-ci/typos/releases/tags/v1.27.3
DEBUG 19 [/home/risu/.local/share/mise/installs/rust/1.82.0/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.12.9/src/connect.rs:500] starting new connection: https://api.github.com/
DEBUG 19 [src/http.rs:66] GET https://api.github.com/repos/crate-ci/typos/releases/tags/v1.27.3 200 OK
INFO  19 [src/ui/progress_report.rs:156] typos@1.27.3                downloading typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz
DEBUG 19 [src/http.rs:166] GET Downloading https://github.com/crate-ci/typos/releases/download/v1.27.3/typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz to ~/.local/share/mise/downloads/typos/1.27.3/typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz
DEBUG 19 [src/http.rs:58] GET https://github.com/crate-ci/typos/releases/download/v1.27.3/typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz
DEBUG 19 [/home/risu/.local/share/mise/installs/rust/1.82.0/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.12.9/src/connect.rs:500] starting new connection: https://github.com/
DEBUG 19 [/home/risu/.local/share/mise/installs/rust/1.82.0/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.12.9/src/async_impl/client.rs:2725] redirecting 'https://github.com/crate-ci/typos/releases/download/v1.27.3/typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz' to 'https://objects.githubusercontent.com/github-production-release-asset-2e65be/181782286/2f8175fd-554f-4ec7-a404-61821fbbfb26?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20241115%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241115T090403Z&X-Amz-Expires=300&X-Amz-Signature=ca469c349001933e55ab05ce6e6dda3484e3b642ea876f19e22c618a6da777c8&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dtypos-v1.27.3-x86_64-unknown-linux-musl.tar.gz&response-content-type=application%2Foctet-stream'
DEBUG 19 [/home/risu/.local/share/mise/installs/rust/1.82.0/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.12.9/src/connect.rs:500] starting new connection: https://objects.githubusercontent.com/
DEBUG 19 [src/http.rs:66] GET https://github.com/crate-ci/typos/releases/download/v1.27.3/typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz 200 OK
INFO  19 [src/ui/progress_report.rs:156] typos@1.27.3                installing typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz
TRACE 19 [src/file.rs:42] rm -rf ~/.local/share/mise/installs/typos/1.27.3
DEBUG 19 [src/file.rs:554] tar -xf /home/risu/.local/share/mise/downloads/typos/1.27.3/typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz -C /home/risu/.local/share/mise/installs/typos/1.27.3
INFO  19 [src/ui/progress_report.rs:156] typos@1.27.3                extracting typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz
TRACE 19 [src/file.rs:596] extracting ~/.local/share/mise/installs/typos/1.27.3/.
TRACE 19 [src/file.rs:42] rm -rf ~/.local/share/mise/downloads/typos/1.27.3
Error: 
   0: Failed to install typos@1.27.3
   1: failed to extract tar: ~/.local/share/mise/downloads/typos/1.27.3/typos-v1.27.3-x86_64-unknown-linux-musl.tar.gz to ~/.local/share/mise/installs/typos/1.27.3
   2: No such file or directory (os error 2) when creating dir /home/risu/.local/share/mise/installs/typos/1.27.3/.

Location:
   src/file.rs:597

Version:
   2024.11.13-DEBUG linux-x64 (a83d608 2024-11-15)

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
jdx commented

I put a fix for this into #3031

Thanks. It now worked.