Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

:Rocks update ignores transitive dependency updates for scm plugins #534

Closed
Nsidorenco opened this issue Sep 8, 2024 · 2 comments
Closed
Assignees
Labels

Comments

@Nsidorenco
Copy link

When running :Rocks update all plugins with version=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

  1. tree-sitter-javascript is installed with version = scm. tree-sitter-javascript depends on tree-sitter-ecma.
  2. Run :Rocks update when a new parser version of tree-sitter-javascript is available.
    • tree-sitter-javascript will have its latest version installed
    • tree-sitter-ecma will remain with the originally installed version.
  3. javascript queries might now be broken, since the parser could have changed node names but the tree-sitter-ecma rock was not updated to the latest queries.
@Nsidorenco Nsidorenco changed the title :Rocks update ignores transitive dependencies updates for scm plugins :Rocks update ignores transitive dependency updates for scm plugins Sep 8, 2024
@mrcjkb mrcjkb self-assigned this Sep 8, 2024
@mrcjkb
Copy link
Member

mrcjkb commented Sep 8, 2024

hey 👋

thanks for reporting.
I'll look into this when I have some more time.
I think this is actually a luarocks issue.

@mrcjkb mrcjkb added the luarocks label Sep 8, 2024
@mrcjkb
Copy link
Member

mrcjkb commented Sep 11, 2024

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.

@mrcjkb mrcjkb closed this as completed Sep 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants