asdf-vm / asdf-vm/asdf

No way to provide priority of executables when multiple plugins have the same executable

Open
#1,124 4 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
25.6k
Forks
941
Avg merge
9h 24m
Merged PRs (30d)
3

Description

### Is your feature request related to a problem? Please describe

We have graalvm 20.1.0-java11 and nodejs 16.9.1 in our tool versions. Both have "node" in their bins.

We are currently adding only the node plugin, asdf installing, and then adding the rest to get around the issue.

If we don't install them in the correct order, our node version will resolve to the 12.x.x version in the graalvm plugin.

### Describe the proposed solution

Can we provide priority in a config file or exclude some executables from plugins?

### Describe similar `asdf` features and why they are not sufficient

We tried different .tool-versions orderings; didn't seem to fix it.
We can try uninstalling and reinstalling in various permutations like we did, but this process is very error prone & tough for new developers.
Looked in the existing asdf config documentation and didn't see anything related to this.

### Describe other workarounds you've considered

Manually editing shim files to put the plugin/metadata comments back in the correct order. This one works, but is also not sustainable

Contributor guide

Open the contributing guide

Research direction

Review the existing asdf config documentation, .tool-versions ordering, and the generated shim files described in the issue. Trace how plugin metadata determines which executable is selected, then define how configurable priority or executable exclusion should behave and verify that the node command resolves consistently without manual shim edits.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js
Domain
cli, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.