Live data from Hacker News

Tools I love: mise(-en-place)

blog.vbang.dk

41–50 of 51 posts

Re: Tools I love: mise(-en-place)

#41
post #38
post #30

Earlier quoted context omitted.

Java has mice? I thought java had maven and Gradle? Is mice a new thing?

Java also has SDKMAN!, jabba and the "alternatives" mechanism in Linux distros: - https://sdkman.io/ - https://github.com/shyiko/jabba - https://www.man7.org/linux/man-pages/man1/update-alternative...

Java is one of the few languages where I prefer the endemic/specialized version manager in the form of sdkman over mise. It has more Java versions available and also allows you to install a lot of the Java tooling like Gradle and Maven.

Re: Tools I love: mise(-en-place)

#42
post #5

Earlier quoted context omitted.

On top of that, it also enabled environment management (replacing direnv). Env vars can also be retrieved from secret stores. It can also manage tools from various backends, e.g. go, aqua, cargo, npm, ubi and others

What does that “manage tools” bit get you? I started using mise as a replacement direnv a while ago and it’s nice enough: cd into a directory and voila, the Python virtualenv is activated. I like that. But in what way could it manage, say, npm or cargo that would be useful? I feel like I’m missing something important here, as lots of people seem to adore mise, and I like it just fine for the limited use I put it to,…

You might need different versions of node, python, etc., depending on the project. mise can manage those different versions for you, including installing and automatically enabling the correct version for each project.

Re: Tools I love: mise(-en-place)

#43
post #5

Earlier quoted context omitted.

On top of that, it also enabled environment management (replacing direnv). Env vars can also be retrieved from secret stores. It can also manage tools from various backends, e.g. go, aqua, cargo, npm, ubi and others

What does that “manage tools” bit get you? I started using mise as a replacement direnv a while ago and it’s nice enough: cd into a directory and voila, the Python virtualenv is activated. I like that. But in what way could it manage, say, npm or cargo that would be useful? I feel like I’m missing something important here, as lots of people seem to adore mise, and I like it just fine for the limited use I put it to,…

Iirc it uses cargo directly as a mise backend. For example, instead of doing "cargo install ripgrep" you'd now install ripgrep through mise and could also have multiple versions of it.

Maybe ripgrep is a bad example but imagine needing different versions of some dev tooling that can be installed with cargo install in different projects.

Edit: thought you were asking about the npm and cargo backends specifically.

Re: Tools I love: mise(-en-place)

#44
post #17
post #14

I'm lazy by nature so I don't like learning new tools if I don't have to. I've stuck with make, direnv, and my distros package manager instead of learning just or asdf so that I don't need to learn anything new. But mise hits that sweet spot of being a better direnv and a (mostly) better Make that it became worth the effort to try it out and I'm glad I did. It also helps that jdx (the author) really cares about the e…

By ”a better Make”, do you mean Mise does phony target task-like recipes better? Or is it better than Make at actually making things, tracking file and recipe dependencies, detecting what needs to be rebuilt etc?

Sorry, yes I should have clarified I meant as a task-runner! It's also been pretty good at the actual software building part too, but I haven't compared it quite as in-depth yet to make a public comment.

Re: Tools I love: mise(-en-place)

#45

My actual usage is a mix-bag. For general tools and utilities, I often just use Nix and Home Manager. It is a pain for setting up but once you got it working, it's basically fire and forget. Whenever you need a new app, you just add that to the `home.nix` and call it a day. Now, for language development environment, I won't use Nix and just prefer to whatever that language popular choice. For instance, in Python I us…

Yeah it's hard to get excited about these sorts of tools when Nix exists.

I think for development purposes it's a smart idea to use the language specific conventions/ecosystem.

Re: Tools I love: mise(-en-place)

#46

Executables need to be more stable. I shouldn't have to manage versions this way at all. i.e., I should never need to downgrade a program. I think the Python 2 -> 3 fiasco broke everyone's brains.

Even if the executables were stable, the ability to precisely pin tool versions is critical for reproducible software builds.

Re: Tools I love: mise(-en-place)

#47

Interesting thank you for sharing. I've been using asdf for years now but I dislike the fact that you have to install plugins. I wish it just did stuff when I called commands. I'll try out Mise for Elixir, Erlang and NodeJS to see if it works like you describe.

> but I dislike the fact that you have to install plugins. I wish it just did stuff when I called commands. I used asdf for many years but this really annoyed me, too (along with a few other things). So I recently made the switch to mise and haven't looked back.

Yep, Mise is great for Elixir, Erlang etc - no issues

Re: Tools I love: mise(-en-place)

#50
post #35

I manage a monorepo at my workplace. Different devs with various levels of seniority are on/off boarded on the project, some on mac some on linux. At first I offered mise as the recommended tool, and after a while I declared it's the only supported way to build the project and boom! All support requests that used to end with "oooh my XYZ's version was not matching the project's requirement" are gone now. I like asdf…

How good is mise at clean up of accumulated versions?
Post reply on HN