Replies: 3 comments 10 replies
-
actually I may have overthought the whole lockfile thing, I think future versions of mise should just put the full
That way your config would always use asdf even if mise later changed to vfox without needing a separate lockfile. Of course you could still manually put An important use-case we need to keep for backwards compatibility would be configs where "elixir" shorthands may use a different asdf plugin if it is installed. Another concern I have is overriding with |
Beta Was this translation helpful? Give feedback.
-
If I understood this correctly the goal of this would be to no longer need https://github.com/mise-plugins/registry repo, is that correct?
I used the |
Beta Was this translation helpful? Give feedback.
-
Perhaps, though there was another discussion where we went over the design of this and I actually wasn't sold on the current syntax, but since building it I think I like it, definitely more than having 2 separate keys. 2 keys would be a different way to get around the override problem though, so it's worth considering if that might be better than a "provides" internal key. That said, it's still experimental so it's possible for us to change it if we want to. |
Beta Was this translation helpful? Give feedback.
-
I want to make it possible to do this:
or:
This likely doesn't have a ton of user-value (though I am sure some will want it), but it has major value for simplifying the mise codebase and indirectly this will make mise a lot simpler to use. What this would do is make it so you don't need to learn how to create a custom shorthand registry or anything, you would just specify the specific plugin repo if you want to change it.
This would allow us to get rid of the mise plugin registry and just have the code baked into the CLI. It also makes it possible to have different tools default to different backends, asdf would just be the most commonly used one, but otherwise it's "just another backend".
What we would instead have is just a map of shortnames -> backend:tool—potentially like this (just examples, don't freak out over the specific tools):
This makes asdf less "special" and would eliminate a ton of complexity in the code that has asdf logic in a mostly completely different code path than the rest of the backends. A shorthand like "ruby" would just be a pointer to
<backend>:ruby
. I see the shorthands as essentially just being the "preferred" backend for a given tool.This is important for things like windows compatibility where asdf plugins won't work at all. Another thing it allows is us to progressively improve the mise ecosystem. For example, maybe initially the only way to install ubi might be with
cargo:ubi
but this has the downside of requiring the rust toolchain and slow compilation times. Maybe later we can change this tovfox:ubi
orasdf:ubi
once someone builds a plugin that provides precompiled binaries of ubi.This way users only need to know
mise use ubi@latest
, but what that does under the hood may improve in future releases. There is a downside here that it may result in breaking changes if the shorthands change to something different. One solution to that may be having a lockfile.Down the road I could see the ability to have some preferences around these. For example, maybe for some reason you prefer to fetch things with cargo over ubi because you don't have ubi installed. Maybe shorthands would point to a set of potential backends and mise would pick the most ideal one given your os/arch and what you have installed.
A non-goal would be this:
reason being is I want to get rid of maintaining a registry of only asdf shorthands and have a registry on top of all shorthands to backends.
Beta Was this translation helpful? Give feedback.
All reactions