jdx / mise

dev tools, env vars, task runner
https://mise.jdx.dev
MIT License
10.09k stars 291 forks source link

ubi fails to install neovim: could not find any entries named nvim-linux64/bin/nvim #2958

Closed powerman closed 1 week ago

powerman commented 1 week ago

Describe the bug Unclear "found entry" / "could not find any entries" sequence for the same entry:

DEBUG found tarball entry with path nvim-linux64/bin/nvim
DEBUG could not find any entries named nvim-linux64/bin/nvim
DEBUG Failed to install with ubi version 'v0.10.2': could not find any files named nvim-linux64/bin/nvim in the downloaded tarball, trying with 'ubi:neovim/neovim@0.10.2'

To Reproduce

  1. Add to config: "ubi:neovim/neovim" = { version = "0.10.2", exe = "nvim-linux64/bin/nvim" }
  2. mise i

Expected behavior It should install at least Neovim binary. (Not sure is it will work and able to find it resource files.)

mise doctor output

version: 2024.11.3 linux-x64 (19a6ed0 2024-11-06)
activated: yes
shims_on_path: no

build_info:
  Target: x86_64-unknown-linux-gnu
  Features: DEFAULT, NATIVE_TLS, OPENSSL
  Built: Wed, 6 Nov 2024 11:58:14 +0000
  Rust Version: rustc 1.82.0 (f6e511eec 2024-10-15)
  Profile: release

shell:
  /bin/zsh
  zsh 5.9 (x86_64-pc-linux-gnu)

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
  ~/.config/nvim/.mise.toml

backends:
  cargo
  core
  go
  npm
  pipx
  spm
  ubi
  vfox

plugins:
  jq       ssh://git@github.com/mise-plugins/asdf-jq.git#6d86d19
  yamlfmt  ssh://git@github.com/mise-plugins/asdf-yamlfmt.git#c5760c1

toolset:
  ubi:neovim/neovim@0.10.2  (missing)
  ubi:JohnnyMorganz/stylua@0.20.0
  ubi:ast-grep/ast-grep@0.29.0
  ubi:koalaman/shellcheck@0.10.0
  ubi:jdx/usage@1.2.0
  ubi:watchexec/watchexec@2.2.0
  ubi:aquaproj/aqua@2.37.2
  ubi:go-task/task@3.40.0
  go:github.com/oklog/ulid/v2/cmd/ulid@2.1.0
  ubi:santhosh-tekuri/jsonschema@6.0.1
  ubi:bronze1man/yaml2json@1.3.3
  ubi:mikefarah/yq@4.44.3
  ubi:fullstorydev/grpcui@1.4.1
  ubi:fullstorydev/grpcurl@1.9.1
  ubi:ktr0731/evans@0.10.11
  pipx:a13xp0p0v/kernel-hardening-checker@latest
  go:golang.org/x/review/git-codereview@1.12.0
  ubi:ankitpokhrel/jira-cli@1.5.2
  ubi:noahgorstein/jqp@0.7.0
  ubi:cespare/reflex@0.3.1
  ubi:jondot/goweight@1.0.5
  ubi:kubernetes-sigs/kind@0.24.0
  ubi:kubernetes/minikube@1.34.0
  go:github.com/bernardo-bruning/ollama-copilot@0.2.0
  ubi:plandex-ai/plandex@cli/v1.1.1
  npm:rag-crawler@1.5.0
  ubi:magefile/mage@1.15.0
  go:github.com/erning/gorun@latest
  go:golang.org/x/pkgsite/cmd/pkgsite@latest
  go:golang.org/x/tools/cmd/godoc@0.26.0
  go:golang.org/x/tools/cmd/gonew@0.26.0
  go:github.com/rogpeppe/gohack@1.0.2
  ubi:oligot/go-mod-upgrade@0.10.0
  ubi:psampaz/go-mod-outdated@0.9.0
  ubi:uber-go/gopatch@0.4.0
  go:golang.org/x/tools/cmd/eg@0.26.0
  go:rsc.io/rf@latest
  go:github.com/quasilyte/gogrep/cmd/gogrep@0.5.0
  go:golang.org/x/tools/cmd/go-contrib-init@0.26.0
  go:github.com/josharian/impl@1.4.0
  go:github.com/koron/iferr@latest
  go:github.com/fatih/gomodifytags@1.17.0
  go:github.com/davidrjenni/reftools/cmd/fillswitch@latest
  go:github.com/davidrjenni/reftools/cmd/fillstruct@latest
  go:github.com/maruel/panicparse/v2/cmd/pp@2.3.1
  go:github.com/smartystreets/goconvey@1.8.1
  go:golang.org/x/perf/cmd/benchstat@latest

env_vars:
  MISE_LOG_FILE=~/.local/share/mise.log
  MISE_LOG_FILE_LEVEL=info
  MISE_SHELL=zsh

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 = true
  pin = false
  plugin_autoupdate_last_check_duration = "7d"
  quiet = false
  raw = false
  trace = false
  trusted_config_paths = [
      "~/.config/mise/config.toml",
      "~/.config/nvim/",
      "~/proj/soft/golangci-lint-strict/",
  ]
  use_versions_host = true
  verbose = false
  yes = false

  [cargo]
  binstall = true

  [node]

  [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 -v
DEBUG ARGS: mise i -v
DEBUG vfox_plugin: "/home/powerman/.local/share/mise/plugins/yamlfmt"
DEBUG vfox_plugin: "/home/powerman/.local/share/mise/plugins/jq"
DEBUG config: ~/.config/nvim/.mise.toml
DEBUG config: ~/.config/mise/config.toml
DEBUG install_versions: ubi:plandex-ai/plandex@cli/v1 ubi:neovim/neovim@0.10.2 ubi:JohnnyMorganz/stylua@latest ubi:ast-grep/ast-grep@latest shellcheck@latest
INFO  ubi:neovim/neovim@0.10.2            installing
DEBUG GET https://api.github.com/repos/neovim/neovim/releases/tags/0.10.2
DEBUG starting new connection: https://api.github.com/
DEBUG GET https://api.github.com/repos/neovim/neovim/releases/tags/0.10.2 404 Not Found
DEBUG Failed to get release for ubi:neovim/neovim@0.10.2, trying with 'v' prefix: HTTP status client error (404 Not Found) for url (https://api.github.com/repos/neovim/neovim/releases/tags/0.10.2)
DEBUG Parsed --project neovim/neovim = neovim / neovim
DEBUG exe name = nvim-linux64/bin/nvim
DEBUG install path = /home/powerman/.local/share/mise/installs/ubi-neovim-neovim/0.10.2/bin/nvim-linux64/bin/nvim
DEBUG adding GitHub token to GitHub requests
DEBUG starting new connection: https://api.github.com/
DEBUG filtering out assets that do not have a valid extension
DEBUG skipping asset with invalid extension: nvim-linux64.tar.gz.sha256sum
DEBUG skipping asset with invalid extension: nvim-macos-arm64.tar.gz.sha256sum
DEBUG skipping asset with invalid extension: nvim-macos-x86_64.tar.gz.sha256sum
DEBUG skipping asset with invalid extension: nvim-win64.msi
DEBUG skipping asset with invalid extension: nvim-win64.msi.sha256sum
DEBUG skipping asset with invalid extension: nvim-win64.zip.sha256sum
DEBUG skipping asset with invalid extension: nvim.appimage
DEBUG skipping asset with invalid extension: nvim.appimage.sha256sum
DEBUG skipping asset with invalid extension: nvim.appimage.zsync
DEBUG skipping asset with invalid extension: nvim.appimage.zsync.sha256sum
DEBUG current OS = linux
DEBUG matching assets against OS using (?i:(?:\b|_)linux(?:\b|_|32|64))
DEBUG matching OS against asset name = nvim-linux64.tar.gz
DEBUG matches our OS
DEBUG matching OS against asset name = nvim-macos-arm64.tar.gz
DEBUG does not match our OS
DEBUG matching OS against asset name = nvim-macos-x86_64.tar.gz
DEBUG does not match our OS
DEBUG matching OS against asset name = nvim-win64.zip
DEBUG does not match our OS
DEBUG current CPU architecture = x86_64
DEBUG matching assets against CPU architecture using (?ix)
        (?:
            \b
            |
            _
        )
        (?:
            386 | i586 | i686
            |
            x86[_-]32
            |
            x86[_-]64
            |
            x64
            |
            amd64
            |
            linux64
            |
            # This is gross but the OS matcher will reject this on non-Windows
            # platforms.
            win64
        )
        (?:
            \b
            |
            _
        )

DEBUG there is only one asset that matches our OS
DEBUG matches our CPU architecture
DEBUG only found one candidate asset
DEBUG picked asset from matches named nvim-linux64.tar.gz
DEBUG picked asset named nvim-linux64.tar.gz
DEBUG downloading asset from https://api.github.com/repos/neovim/neovim/releases/assets/196604884
DEBUG starting new connection: https://api.github.com/
DEBUG redirecting 'https://api.github.com/repos/neovim/neovim/releases/assets/196604884' to 'https://objects.githubusercontent.com/github-production-release-asset-2e65be/16408992/97155533-319e-4d69-974c-2195f347e8ad?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20241106%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241106T165725Z&X-Amz-Expires=300&X-Amz-Signature=00338a524f93b5b587524be04b5f2dac3d1fed4ded124b7f539983c1a880117c&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dnvim-linux64.tar.gz&response-content-type=application%2Foctet-stream'
DEBUG starting new connection: https://objects.githubusercontent.com/
DEBUG archive path is /tmp/.tmpnI0QdE/nvim-linux64.tar.gz
DEBUG extracting binary from tarball at /tmp/.tmpnI0QdE/nvim-linux64.tar.gz
DEBUG found tarball entry with path nvim-linux64/lib/nvim/parser/c.so
DEBUG found tarball entry with path nvim-linux64/lib/nvim/parser/lua.so
DEBUG found tarball entry with path nvim-linux64/lib/nvim/parser/vimdoc.so
DEBUG found tarball entry with path nvim-linux64/lib/nvim/parser/vim.so
DEBUG found tarball entry with path nvim-linux64/lib/nvim/parser/markdown_inline.so
DEBUG found tarball entry with path nvim-linux64/lib/nvim/parser/markdown.so
DEBUG found tarball entry with path nvim-linux64/lib/nvim/parser/query.so
DEBUG found tarball entry with path nvim-linux64/share/applications/nvim.desktop
...skip 1906 lines...
DEBUG found tarball entry with path nvim-linux64/share/nvim/runtime/syntax/javascript.vim
DEBUG found tarball entry with path nvim-linux64/share/icons/hicolor/128x128/apps/nvim.png
DEBUG found tarball entry with path nvim-linux64/bin/nvim
DEBUG could not find any entries named nvim-linux64/bin/nvim
DEBUG Failed to install with ubi version 'v0.10.2': could not find any files named nvim-linux64/bin/nvim in the downloaded tarball, trying with 'ubi:neovim/neovim@0.10.2'
DEBUG Parsed --project neovim/neovim = neovim / neovim
DEBUG exe name = nvim-linux64/bin/nvim
DEBUG install path = /home/powerman/.local/share/mise/installs/ubi-neovim-neovim/0.10.2/bin/nvim-linux64/bin/nvim
DEBUG adding GitHub token to GitHub requests
DEBUG starting new connection: https://api.github.com/
Error: 
   0: Failed to install ubi:neovim/neovim@0.10.2
   1: Failed to install with ubi 'ubi:neovim/neovim@0.10.2': could not find any files named nvim-linux64/bin/nvim in the downloaded tarball

Location:
   src/backend/ubi.rs:123

Version:
   2024.11.3 linux-x64 (19a6ed0 2024-11-06)

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

have you verified this isn't a problem with ubi?

powerman commented 1 week ago

Sorry, exe = "nvim" works.