nvim-neorocks / rocks.nvim

πŸŒ’ Neovim plugin management inspired by Cargo, powered by luarocks
GNU General Public License v3.0
727 stars 15 forks source link

Error while doing `:Rocks update` #472

Closed TarunDaCoder closed 2 months ago

TarunDaCoder commented 4 months ago

Hello, I am running into an error while doing :Rocks update First, it asks me if I want to update plugins that contain breaking changes, then no matter what I pick, this error shows up.

:Rocks update
There are potential breaking changes! Update them anyway?
To skip this prompt, run 'Rocks! update'

Breaking changes:
rocks-git.nvim 1.5.1 -> 2.0.0
which-key.nvim 2.1.0 -> 3.1.0

Error executing vim.schedule lua callback: ...arun/.local/share/nvim/rocks/share/lua/5.1/nio/tasks.lua:100: Async task failed without callback: The coroutine failed with this message:
...un/.local/share/nvim/rocks/share/lua/5.1/nio/control.lua:293: ...10.0/nvim-linux64/share/nvim/runtime/lua/vim/_system.lua:244: ENOENT: no such file or directory
stack traceback:
        [C]: in function 'error'
        ...un/.local/share/nvim/rocks/share/lua/5.1/nio/control.lua:293: in function 'with'
        ...share/nvim/rocks/rocks_rtp/lua/rocks/operations/init.lua:342: in function <...share/nvim/rocks/rocks_rtp/lua/rocks/operations/init.lua:341>
stack traceback:
        [C]: in function 'error'
        ...arun/.local/share/nvim/rocks/share/lua/5.1/nio/tasks.lua:100: in function 'close_task'
        ...arun/.local/share/nvim/rocks/share/lua/5.1/nio/tasks.lua:122: in function 'cb'
        ...arun/.local/share/nvim/rocks/share/lua/5.1/nio/tasks.lua:188: in function <...arun/.local/share/nvim/rocks/share/lua/5.1/nio/tasks.lua:187>
Press ENTER or type command to continue

My neovim version

NVIM v0.10.0
Build type: Release
LuaJIT 2.1.1713484068
Run "nvim -V1 -v" for more info

My checkhealth also shows this if it's related

- WARNING luarocks: failed to parse version
  - ADVICE:
    - Error: ...n/.local/share/nvim/rocks/rocks_rtp/lua/mason/health.lua:214: attempt to compare number with nil

But my luarocks version is /usr/local/bin/luarocks 3.11.1

mrcjkb commented 4 months ago

Hey πŸ‘‹

It looks like there's an issue with your luarocks installation (or rocks.nvim not being able to find it). What are your rocks.toml and vim.g.rocks_nvim configs?

Edit: also (based on the stack trace) it looks like your rocks.nvim install is not up to date. Does it occur with the latest version?

TarunDaCoder commented 4 months ago

What are your rocks.toml and vim.g.rocks_nvim configs?

This is my rocks.toml

# This is your rocks.nvim plugins declaration file.
# Here is a small yet pretty detailed example on how to use it:
#
# [plugins]
# nvim-treesitter = "semver_version"  # e.g. "1.0.0"

# List of non-Neovim rocks.
# This includes things like `toml` or other lua packages.
[rocks]

# List of Neovim plugins to install alongside their versions.
# If the plugin name contains a dot then you must add quotes to the key name!
[plugins]
"rocks.nvim" = "2.35.1"
nvim-web-devicons = "0.100"
"rocks-git.nvim" = "1.5.1"
"plenary.nvim"= "scm"
luasnip = "2.3.0"
"rocks-config.nvim" = "2.1.3"
"oil.nvim" = "2.11.0"
nvim-ts-autotag = "scm"
nvim-surround = "2.1.5"
"overseer.nvim" = "1.4.0"
"bufferline.nvim" = "4.6.1"
"feline.nvim" = "1.6.2"
"conform.nvim" = "6.0.0"
"telescope-undo.nvim" = "scm"
"trouble.nvim" = "3.5.1"
"mason.nvim"= "1.10.0"
"mason-lspconfig.nvim"= "1.29.0"
nvim-lspconfig= "0.1.8"
"lspkind.nvim"= "scm"
nvim-autopairs= "scm"
"indent-blankline.nvim"= "3.7.1"
"which-key.nvim"= "2.1.0"
alpha-nvim= "scm"
"rocks-lazy.nvim" = "scm"
"rocks-edit.nvim" = "scm"
friendly-snippets= "scm"
neorg-interim-ls = "1.0.1"
nvim-spectre = "scm"
"headlines.nvim" = "scm"
"otter.nvim" = "2.2.0"
nvim-notify = "3.13.5"
"actions-preview.nvim" = "scm"
"sus.nvim" = "1.0.0"
rustaceanvim = "4.26.1"
"todo-comments.nvim" = "1.3.0"

# [plugins.nvim-cmp]
# git = "hrsh7th/nvim-cmp"
# rev = "main"

[plugins."image.nvim"]
version = "1.3.0"

[plugins.nvim-treesitter]
git = "nvim-treesitter/nvim-treesitter"
rev = "v0.9.2^{}"

[plugins."lsp_lines.nvim"]
git = "https://git.sr.ht/~whynothugo/lsp_lines.nvim"
opt = true

[plugins."telescope.nvim"]
version = "scm"

# [plugins.cmp-cmdline]
# version = "scm"

# [plugins.cmp-nvim-lsp]
# version = "scm"

# [plugins.cmp-path]
# version = "scm"

# [plugins.cmp_luasnip]
# version = "scm"

[plugins.'nvim-tree.lua']
version = "1.4.0"

[plugins.'onedarkpro.nvim']
version = "0.8.0"

[plugins.neorg]
version = "8.9.0"

[plugins.neorg-telescope]
version = "1.1.0"

[plugins."gitsigns.nvim"]
git = "lewis6991/gitsigns.nvim"
rev = "v0.9.0"

[plugins."nvim-colorizer.lua"]
git = "NvChad/nvim-colorizer.lua"

[plugins."telescope-symbols.nvim"]
git = "nvim-telescope/telescope-symbols.nvim"

[plugins."live-server.nvim"]
git = "barrett-ruth/live-server.nvim"

[plugins.supermaven-nvim]
git = "supermaven-inc/supermaven-nvim"

[plugins.nvim-emmet]
git = "olrtg/nvim-emmet"

[plugins."markview.nvim"]
git = "OXY2DEV/markview.nvim"
rev = "dev"

[plugins."neocomplete.nvim"]
git = "max397574/neocomplete.nvim"

[plugins.neocomplete-lsp]
git = "max397574/neocomplete-lsp"

[plugins."telescope-egrepify.nvim"]
git = "fdschmidt93/telescope-egrepify.nvim"

[plugins."neominimap.nvim"]
git = "Isrothy/neominimap.nvim"
rev = "v1.3.1"

# Neovim options
[config.options]
relativenumber = true
number = true
splitbelow = true
splitright = true
wrap = false
expandtab = true
tabstop = 4
shiftwidth = 4
clipboard = "unnamedplus"
scrolloff = 999
virtualedit = "block"
inccommand = "split"
ignorecase = true
termguicolors = true
updatetime = 100
conceallevel = 2
foldlevel = 99
fileformat = "unix"
background = "dark"
backspace = "2"
swapfile = false
laststatus = 3
timeoutlen = 150
signcolumn = 'auto:2'

My vim.g.rocks_nvim config is

local rocks_config = {
    rocks_path = vim.fs.normalize(install_location),
}

vim.g.rocks_nvim = rocks_config

Does it occur with the latest version?

Yes, I have tried upgrading my rocks.nvim version to the latest, it still does not work.

mrcjkb commented 4 months ago

:thinking: I just checked out your dotfiles and was not able to reproduce the error. It has got to be a problem with your luarocks installation. I've just pushed an update that fixes a bug in the health check. Could you please update to the latest version and try again? You may have to do it manually if :Rocks update and :Rocks install aren't working for you.

Could you also please post the stack trace using the latest version of rocks.nvim? :pray: The one you posted in the initial report is from an older version (which could also be a sign that the update didn't complete properly?).

P.S. I'm on vacation until Thursday, so I may be slow to respond till then.

TarunDaCoder commented 4 months ago

I've just pushed an update that fixes a bug in the health check. Could you please update to the latest version and try again? You may have to do it manually if :Rocks update and :Rocks install aren't working for you.

Hmmm, I did the things this page told me to, and now my :Rocks update works πŸ€”

P.S. I'm on vacation until Thursday, so I may be slow to respond till then.

Oh, I didn't know, no worries, take your time, sorry to disturb you. Enjoy

mrcjkb commented 4 months ago

Hmmm, I did the things this page told me to, and now my :Rocks update works πŸ€”

You mean by setting luarocks_binary = "luarocks"? That's a possible workaround, but it has the downside that rocks.nvim can't control which version of luarocks is installed.

Or did you just reinstall rocks.nvim manually with luarocks --lua-version=5.1 --tree <rocks_path> --server='https://nvim-neorocks.github.io/rocks-binaries/' install rocks.nvim?

TarunDaCoder commented 4 months ago

Or did you just reinstall rocks.nvim manually with luarocks --lua-version=5.1 --tree --server='https://nvim-neorocks.github.io/rocks-binaries/' install rocks.nvim?

Yeah, I did this

I am currently using the bootstrapping script in the repo Could it be that it is an issue with the script?

mrcjkb commented 4 months ago

I am currently using the bootstrapping script in the repo Could it be that it is an issue with the script?

It should be possible. But the stack trace you posted makes me think your rocks.nvim installation somehow only updated partially, leading to a corrupted install. That would explain why manually reinstalling fixed it.

We have an issue to create a repair command for stuff like this.

mrcjkb commented 4 months ago

Since it's working for you again, I'll close this issue for now. Don't hesitate to drop a comment and reopen if it happens again πŸ˜€

TarunDaCoder commented 4 months ago

We have an issue to create a repair command for stuff like this.

Oh, great!

Since it's working for you again, I'll close this issue for now. Don't hesitate to drop a comment and reopen if it happens again πŸ˜€

Sure! Have fun on vacay :D

vsedov commented 2 months ago

Ola,

Id like to reopen this issue sadly, im having some slightly trouble with this; given regardless of installing with the bootstrap or the luarocks script, i have this issue; currently had to make a script to manually update all the plugins individually.

Luarocks version : /usr/bin/luarocks 3.11.1

Nvim information:


NVIM v0.11.0-dev-655+g6af9ca492
Build type: RelWithDebInfo
LuaJIT 2.1.1724232689
Run "nvim -V1 -v" for more info

My rocks.toml is listed here : Toml as you can see its YUGE.

Rocks config is the default : vim.g.rocks_nvim no matter what i do / fix it does not work. :(

mrcjkb commented 2 months ago

Hey @vsedov you have some suspicious entries in your rocks.toml.

For example,

nvim-ufo = {rev = "1.4.0", opt = true}

is missing the git field (as are some others that look like they're managed by rocks-git.nvim.

It should look something like this:

nvim-ufo = {git = "kevinhwang91/nvim-ufo", rev = "1.4.0", opt = true}

Are you editing your rocks.toml manually? If so, I'd be surprised if it ever worked with those entries. To install a plugin from git, you need to run :Rocks install <owner/repo> (not :Rocks install <plugin> as is the case with luarocks plugins).

P.S. let's continue this in a discussion if you're still having trouble after fixing your rocks.toml.