-
-
Notifications
You must be signed in to change notification settings - Fork 36
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
Support asdf plugins through a proto WASM plugin #539
Comments
/bounty $500 |
If this turns out to not be feasible, I'll send over a tip for the work done so far. |
/attempt #539
|
I am into it @milesj /attempt #539
|
@milesj can others give it a try?? Asking since it's assigned. |
@abhishek818 Maybe you can give an attempt after my attempt is done. I will let you know |
Go for it |
💡 @varshith257 submitted a pull request that claims the bounty. You can visit your bounty board to reward. |
Moving this to https://github.com/moonrepo/tools |
There has been multiple requests now to support (piggy-back) off of asdf, since it has a ton of plugins and support for many tools. Unfortunately, building this into proto core simply isn't feasible without rewriting it from scratch, and at that point, it's really not worth it. The other issue is that asdf is Unix only, so that means no Windows support.
However! I had a thought the other day, why not support every asdf plugin through a single proto WASM plugin, similar to how our TOML plugins work (they are WASM under the hood). For example, say you wanted to use the scala asdf plugin, it may look something like the following in proto:
Easy right? But what if the proto identifier doesn't match up with the asdf plugin name? Well, just override it with configuration. For example, using the nodejs asdf plugin.
We can also take this further by supporting the git repository directly.
Caveats
With all this being said, I have no idea if this will actually work, or if the asdf plugin APIs will match up to the proto plugin APIs. It's definitely something that needs to be prototyped to ensure it's feasible.
Requirements
.tool-versions
- https://asdf-vm.com/manage/configuration.html#tool-versionsASDF_*
env vars - https://asdf-vm.com/plugins/create.html#environment-variables-overviewImplementation
How this is implemented may require a lot of discussion, which can be had on Discord.
With that said, we can outline a few things:
~/.asdf
- https://asdf-vm.com/manage/configuration.html#asdf-data-dirThe text was updated successfully, but these errors were encountered: