7 ms·
If you haven’t tried it, I highly recommend Mise. It manages everything at the user level so it’s not as “all encompassing” as Nix and is readily compatible wit
by bargainbin 6mo ago
If you haven’t tried it, I highly recommend Mise. It manages everything at the user level so it’s not as “all encompassing” as Nix and is readily compatible with immutable distros.
https://mise.jdx.dev/ https://mise.jdx.dev/
Your solution is akin to putting your dotfiles in the code repo, which is going to cause issues with languages with poor version compatibility (such as node and python) when switching between old projects.
Also, bold of you to assume developers know make and bash just because they’re using Linux!
- igor47 6mo agoI cannot endorse mise more highly. I commit it to my repos to make sure every engineer has the same environment. I use it in CI for consistency there as well. I keep all commands that would normally be documented in a readme as mise tasks. I use mise to load the environment, independent of language specific tools like dotenv. I use a gitignored mise.local to put real creds into the environment for testing.
- ManuelKiessling 6mo agoThese days, all dev tooling of my projects lives behind mise tasks, and the runtime for my projects is Docker. This means that getting a project in shape for development on a new system looks like this: - clone project - `mise run setup` I have zero dev tools on my host, projects are 100% self-contained. Pure bliss. See https://github.com/dx-tooling/sitebuilder-webapp https://github.com/dx-tooling/sitebuilder-webapp for an example.
- 0xbadcafebee 6mo agoI use mise, but its conclusion that everybody needs to write an aqua plugin now is annoying. They need to make plugin-making a lot easier.
- saint_yossarian 6mo agoWhat conclusion do you mean? Aqua is just one of the many backends it supports. For example there's also the GitHub backend which lets you install binaries from releases, no plugin needed at all.
- 0xbadcafebee 6mo agohttps://github.com/mise-plugins https://github.com/mise-plugins <-- First they say "Try to get your tool into aqua or see if it can be installed with the github backend, then it may be added to the mise registry", and then later they say "The rest of this doc is outdated and does not reflect the current state of preferring aqua/ubi.". Overall there's too many ways to install things and it's not easy to add any of them. Asdf plugins were easy, but insecure (which could be fixed, but whatever). Everything else requires more research because it's more technical.
- saint_yossarian 6mo ago> it's not easy to add any of them For most of them there's nothing to add though, you simply publish tools on GitHub/Cargo/etc. and mise will know how to install them. https://mise.jdx.dev/registry.html#backends https://mise.jdx.dev/registry.html#backends has a bit more current info.
- 0xbadcafebee 6mo agoOnly if they have a plugin that describes how to install them. Many popular tools are much more complex to install and set up than just downloading a binary and making it executable. For those you need to create a plugin for mise to be able to install them. Luckily, very often some other generous person has gone through all the trouble of learning how to make the plugin, going to the official repos, making a PR, and finally getting it merged. But if somebody hasn't done that already, it's painful (more painful than, say, an asdf plugin). It depends on the language, on the tool and system requirements, etc. Overall it's kind of a mess. Mise leaves you with the trouble of figuring all that out, rather than making some kind of convenience function to get the process started easily.
- syhol 5mo ago> Many popular tools are much more complex to install I'm curious which dev tools you're using aren't installable with standard mise backends. 99% of dev tools I use don't require a plugin. > (more painful than, say, an asdf plugin) You can still use asdf plugins, I could use mise to install an asdf plugin right now with one line `mise use asdf:raimon49/asdf-hurl`. The mise registry is just a convenient list of aliases, even if it doesn't accept new asdf plugins, you don't need it to. As Larry Wall said "make easy things easy and hard things possible"
- zelphirkalt 6mo agoQuestion about Mise: Does it manage checksums or a lock file per environment somewhere? I scrolled through the getting started page and didn't see anything at first glance.
- ricardobeat 6mo agoReleases are signed, but lockfiles are not commonly used for this purpose. For your home env you'll usually want the latest version of every tool. When installing tools, or via mise.toml, you can define version ranges with the precision you'd like - "3" / "3.1" / "3.1.2".
- figmert 6mo agoMise supports lock files but also validates checksums when possible.