williamboman / mason.nvim

Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters.
Apache License 2.0
7.23k stars 258 forks source link

Mason chooses wrong python version. #1637

Closed dgdsingen closed 1 month ago

dgdsingen commented 4 months ago

I've searched open issues for similar requests

I've recently downloaded the latest plugin version of mason.nvim

Problem description

When installing the nginx-language-server package, mason chooses wrong python version and the installation fails. Mason chooses the stock python version(3.11.3 installed with pyenv) initially, but then overwrites it with python3.12. nginx-language-server@0.8.0 is installed successfully in Python 3.11, but failed in Python 3.12.

Expected behavior

1. Mason chooses the stock python version rather than versioned candidates.

2. Then nginx-language-server package is installed successfully.

Affected packages

nginx-language-server

Mason output

Failed
    ◍ nginx-language-server
      ▼ Displaying full log
        Creating virtual environment…
        Installing pip package nginx-language-server@0.8.0…
        ERROR: Ignored the following versions that require a different python version: 0.8.0 Requires-Python >=3.8,<3.12
        ERROR: Could not find a version that satisfies the requirement nginx-language-server==0.8.0 (from versions: 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.5.1, 0.6.0, 0.7.0, 0.7.1)
        ERROR: No matching distribution found for nginx-language-server==0.8.0
        spawn: /Users/choegeun/.local/share/nvim/mason/packages/nginx-language-server/venv/bin/python failed with exit code 1 and signal 0.

Installation log

[DEBUG 수  2/28 12:37:03 2024] ...ocal/share/nvim/lazy/mason.nvim/lua/mason-core/fetch.lua:37: Fetching URL "https://api.mason-registry.dev/api/github/mason-org/mason-registry/releases/latest"
[DEBUG 수  2/28 12:37:03 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="curl", spawn_opts={
  args = { "-H", "Accept: application/vnd.mason-registry.v1+json; q=1.0, application/json; q=0.8", "-H", "User-Agent: mason.nvim v1.10.0 (+https://github.com/williamboman/mason.nvim)", "-fsSL", "-X", "GET", "--connect-timeout", 30, "https://api.mason-registry.dev/api/github/mason-org/mason-registry/releases/latest" }
}
[DEBUG 수  2/28 12:37:03 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 56749
[DEBUG 수  2/28 12:37:04 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=56749 exited with exit_code=0, signal=0
[DEBUG 수  2/28 12:37:04 2024] ...ocal/share/nvim/lazy/mason.nvim/lua/mason-core/fetch.lua:37: Fetching URL "https://github.com/mason-org/mason-registry/releases/download/2024-02-28-prime-racing/registry.json.zip"
[DEBUG 수  2/28 12:37:04 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="curl", spawn_opts={
  args = { "-H", "User-Agent: mason.nvim v1.10.0 (+https://github.com/williamboman/mason.nvim)", "-fsSL", "-X", "GET", "-o", "/Users/choegeun/.local/share/nvim/mason/registries/github/mason-org/mason-registry/registry.json.zip", "--connect-timeout", 30, "https://github.com/mason-org/mason-registry/releases/download/2024-02-28-prime-racing/registry.json.zip" }
}
[DEBUG 수  2/28 12:37:04 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 56765
[DEBUG 수  2/28 12:37:04 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=56765 exited with exit_code=0, signal=0
[DEBUG 수  2/28 12:37:04 2024] .../.local/share/nvim/lazy/mason.nvim/lua/mason-core/fs.lua:59: fs: unlink /Users/choegeun/.local/share/nvim/mason/registries/github/mason-org/mason-registry/registry.json.zip
[DEBUG 수  2/28 12:37:04 2024] ...ocal/share/nvim/lazy/mason.nvim/lua/mason-core/fetch.lua:37: Fetching URL "https://github.com/mason-org/mason-registry/releases/download/2024-02-28-prime-racing/checksums.txt"
[DEBUG 수  2/28 12:37:04 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="curl", spawn_opts={
  args = { "-H", "User-Agent: mason.nvim v1.10.0 (+https://github.com/williamboman/mason.nvim)", "-fsSL", "-X", "GET", "--connect-timeout", 30, "https://github.com/mason-org/mason-registry/releases/download/2024-02-28-prime-racing/checksums.txt" }
}
[DEBUG 수  2/28 12:37:04 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 56781
[DEBUG 수  2/28 12:37:04 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=56781 exited with exit_code=0, signal=0
[INFO  수  2/28 12:37:07 2024] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:184: Executing installer for Package(name=nginx-language-server) {}
[DEBUG 수  2/28 12:37:07 2024] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:58: Attempting to lock package Package(name=nginx-language-server)
[DEBUG 수  2/28 12:37:07 2024] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:70: Wrote lockfile Package(name=nginx-language-server)
[DEBUG 수  2/28 12:37:07 2024] .../.local/share/nvim/lazy/mason.nvim/lua/mason-core/fs.lua:71: fs: mkdirp /Users/choegeun/.local/share/nvim/mason/staging/nginx-language-server
[DEBUG 수  2/28 12:37:07 2024] ...zy/mason.nvim/lua/mason-core/installer/registry/init.lua:149: Compiling installer. nginx-language-server {}
[DEBUG 수  2/28 12:37:07 2024] ...zy/mason.nvim/lua/mason-core/installer/managers/pypi.lua:125: pypi: init
[DEBUG 수  2/28 12:37:07 2024] ...vim/lazy/mason.nvim/lua/mason-core/installer/context.lua:229: Promoting cwd "/Users/choegeun/.local/share/nvim/mason/staging/nginx-language-server" to "/Users/choegeun/.local/share/nvim/mason/packages/nginx-language-server"
[DEBUG 수  2/28 12:37:07 2024] .../.local/share/nvim/lazy/mason.nvim/lua/mason-core/fs.lua:65: fs: mkdir /Users/choegeun/.local/share/nvim/mason/packages/nginx-language-server
[DEBUG 수  2/28 12:37:07 2024] .../.local/share/nvim/lazy/mason.nvim/lua/mason-core/fs.lua:84: fs: rename /Users/choegeun/.local/share/nvim/mason/staging/nginx-language-server /Users/choegeun/.local/share/nvim/mason/packages/nginx-language-server
[DEBUG 수  2/28 12:37:07 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="python3", spawn_opts={
  args = { "--version" }
}
[DEBUG 수  2/28 12:37:07 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 56795
[DEBUG 수  2/28 12:37:07 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=56795 exited with exit_code=0, signal=0
[DEBUG 수  2/28 12:37:07 2024] ...zy/mason.nvim/lua/mason-core/installer/managers/pypi.lua:59: Resolved stock python3 installation version 3.11.3
[DEBUG 수  2/28 12:37:07 2024] ...zy/mason.nvim/lua/mason-core/installer/managers/pypi.lua:62: Resolving versioned python3 candidates { "python3.12" }
[DEBUG 수  2/28 12:37:07 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="python3.12", spawn_opts={
  args = { "--version" }
}
[DEBUG 수  2/28 12:37:07 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 56832
[DEBUG 수  2/28 12:37:07 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=56832 exited with exit_code=0, signal=0
[DEBUG 수  2/28 12:37:07 2024] ...zy/mason.nvim/lua/mason-core/installer/managers/pypi.lua:73: Found python3 installation version=3.12.2, executable="python3.12"
[DEBUG 수  2/28 12:37:07 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="python3.12", spawn_opts={
  args = { "-m", "venv", "venv" },
  cwd = "/Users/choegeun/.local/share/nvim/mason/packages/nginx-language-server"
}
[DEBUG 수  2/28 12:37:07 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 56844
[DEBUG 수  2/28 12:37:09 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=56844 exited with exit_code=0, signal=0
[DEBUG 수  2/28 12:37:09 2024] ...zy/mason.nvim/lua/mason-core/installer/managers/pypi.lua:145: pypi: install "nginx-language-server" "0.8.0"
[DEBUG 수  2/28 12:37:09 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:116: Spawning cmd="/Users/choegeun/.local/share/nvim/mason/packages/nginx-language-server/venv/bin/python", spawn_opts={
  args = { "-m", "pip", "--disable-pip-version-check", "install", "-U", "nginx-language-server==0.8.0" },
  cwd = "/Users/choegeun/.local/share/nvim/mason/packages/nginx-language-server"
}
[DEBUG 수  2/28 12:37:09 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:162: Spawned with pid 56854
[DEBUG 수  2/28 12:37:10 2024] ...al/share/nvim/lazy/mason.nvim/lua/mason-core/process.lua:148: Job pid=56854 exited with exit_code=1, signal=0
[DEBUG 수  2/28 12:37:10 2024] .../.local/share/nvim/lazy/mason.nvim/lua/mason-core/fs.lua:59: fs: unlink /Users/choegeun/.local/share/nvim/mason/staging/nginx-language-server.lock
[DEBUG 수  2/28 12:37:10 2024] .../.local/share/nvim/lazy/mason.nvim/lua/mason-core/fs.lua:47: fs: rmrf /Users/choegeun/.local/share/nvim/mason/packages/nginx-language-server
[DEBUG 수  2/28 12:37:10 2024] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:39: Building receipt for Package(name=nginx-language-server)
[ERROR 수  2/28 12:37:10 2024] ...e/nvim/lazy/mason.nvim/lua/mason-core/installer/init.lua:249: Installation failed for Package(name=nginx-language-server) error=spawn: /Users/choegeun/.local/share/nvim/mason/packages/nginx-language-server/venv/bin/python failed with exit code 1 and signal 0.

Neovim version (>= 0.7)

NVIM v0.9.5 Build type: Release LuaJIT 2.1.1703358377

system vimrc file: "$VIM/sysinit.vim" fall-back for $VIM: "/opt/homebrew/Cellar/neovim/0.9.5/share/nvim"

Run :checkhealth for more info

Operating system/version

Darwin MacBook-Pro-3.local 22.6.0 Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:53 PDT 2023; root:xnu-8796.141.3~6/RELEASE_ARM64_T6020 arm64

Healthcheck

mason: require("mason.health").check()

mason.nvim ~
- OK mason.nvim version v1.10.0
- OK PATH: prepend
- OK Providers: 
  mason.providers.registry-api
  mason.providers.client
- OK neovim version >= 0.7.0

mason.nvim [Registries] ~
- OK Registry `github.com/mason-org/mason-registry version: 2024-02-27-third-orchid` is installed.

mason.nvim [Core utils] ~
- OK unzip: `UnZip 6.00 of 20 April 2009, by Info-ZIP.  Maintained by C. Spieler.  Send`
- OK wget: `GNU Wget 1.21.4. darwin22.4.0에 빌드함.`
- OK curl: `curl 8.1.2 (x86_64-apple-darwin22.0) libcurl/8.1.2 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.11 nghttp2/1.51.0`
- OK gzip: `Ok`
- OK tar: `bsdtar 3.5.3 - libarchive 3.5.3 zlib/1.2.11 liblzma/5.0.5 bz2lib/1.0.8 `
- OK bash: `GNU bash, 버전 5.2.26(1)-release (aarch64-apple-darwin22.6.0)`
- OK sh: `Ok`

mason.nvim [Languages] ~
- OK Ruby: `ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin22]`
- WARNING Composer: not available
  - ADVICE:
    - spawn: composer failed with exit code - and signal -. composer is not executable
- WARNING PHP: not available
  - ADVICE:
    - spawn: php failed with exit code - and signal -. php is not executable
- OK Go: `go version go1.22.0 darwin/arm64`
- OK luarocks: `/opt/homebrew/bin/luarocks 3.9.2`
- OK RubyGem: `3.0.3.1`
- OK java: `openjdk version "1.8.0_372"`
- WARNING julia: not available
  - ADVICE:
    - spawn: julia failed with exit code - and signal -. julia is not executable
- OK cargo: `cargo 1.74.0 (ecb9851af 2023-10-18)`
- WARNING JAVA_HOME: not available
  - ADVICE:
    - spawn: /Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home/bin/java failed with exit code - and signal -. /Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home/bin/java is not executable
- OK javac: `Ok`
- OK node: `v21.6.2`
- OK python: `Python 3.11.3`
- OK npm: `10.2.4`
- OK pip: `pip 24.0 from /Users/choegeun/.pyenv/versions/3.11.3/lib/python3.11/site-packages/pip (python 3.11)`
- OK python venv: `Ok`

mason.nvim [GitHub] ~
- OK GitHub API rate limit. Used: 0. Remaining: 5000. Limit: 5000. Reset: 수  2/28 11:41:05 2024.

Screenshots

image

jswalton commented 3 months ago

+1 seeing this issue when installing pylsp

chardskarth commented 3 months ago
AtomToast commented 3 months ago

The PR does indeed fix the issue. I temporarily edited the change into ~/.local/share/nvim/lazy/mason.nvim/lua/mason-core/installer/managers/pypi.lua (similar with other plugin managers than lazy) Let Mason run the installations and then changed it back so there won't be issues with updates.

dgdsingen commented 1 month ago

This issue is resolved by #1725