Closed Nsidorenco closed 1 month ago
hey 👋
thanks for reporting. I'll look into this when I have some more time. I think this is actually a luarocks issue.
I've added a change to the workflow that publishes versioned tree-sitter parsers to the root manifest (with a 0.0.x
version) to declare exact dependencies.
For example, tree-sitter-javascript
version 0.0.4
has the following dependencies:
tree-sitter-ecma == 0.0.4
tree-sitter-jsx == 0.0.4
It will take some time for the updated parsers to be available on our binary server.
We recommend switching to the versioned parsers (we have an open issue to add something like a :Rocks promote
command, which should simplify this).
dev
/scm
luarocks packages are by definition unstable and luarocks cannot guarantee stability for scm
dependencies, even if they are updated.
When running
:Rocks update
all plugins withversion=scm
will be updated to their latest version but any transitive dependencies will remain at the original version.This, particularly, is a problem for plugins with tree-sitter parsers as transitive dependencies, since you can end up with incompatible queries.
Example
tree-sitter-javascript
is installed withversion = scm
.tree-sitter-javascript
depends ontree-sitter-ecma
.:Rocks update
when a new parser version oftree-sitter-javascript
is available.tree-sitter-javascript
will have its latest version installedtree-sitter-ecma
will remain with the originally installed version.javascript
queries might now be broken, since the parser could have changed node names but thetree-sitter-ecma
rock was not updated to the latest queries.