Live data from Hacker News

Tools I love: mise(-en-place)

blog.vbang.dk

11–20 of 51 posts

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

#12
I have been using asdf for ~12 years, and made the switch to (what is now called) mise about ~4 years ago. This year I challenged myself to switch to nix. asdf and mise are essentially less virulent nix, after all. nix is a complete and utter phase shift for the better. However, the learning curve is steep due to atrocious documentation.

If you’re into these environment / tool managers I highly recommend giving nix a solid try for 4-6 months.

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

#13

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.

Windows is the prime example of near infinite backwards compatibility. To an extent, less change and more backwards compatibility is good, but in my opinion, there definitely is such a thing as too much of it, too.

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

#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 ergonomics of use and it shows; the documentation is up to date, the commands make sense, and every time I start to get annoyed some paper cut with it I discover there's already a fix for it (like `mise task run task-name` and `mise task-name` being equivalent commands so you don't have to type as much).

If you try to stick to the classic POSIX tools since they're installed everywhere, I urge you to give mise a try anyway. It and fzf are the only programs I've found that are truly worth the extra effort it takes to install them, even if it is just grabbing a binary.

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

#15
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…

I'll add the 'dtrx' (Do The Right Extraction) as one of those tools that are worth to learn compared to the more basic alternatives

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

#16
post #2

So if I understand it correctly, it's a mix between GNU Make and `asdf`?

I use it just as a better asdf. I don’t quite see the point of the rest of its functionality, but “asdf without needing to install plugins” is a compelling enough proposition for me.

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

#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?

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

#18
mise is a great tool. One area where it doesn't work right out of the box is installing PostgreSQL via macOS brew, when I don't want to use Nix or Docker or Podman etc.

Here's the solution I use; perhaps someone here has a better idea?

    brew install gcc readline zlib curl openssl@1.1 ossp-uuid icu4c pkg-config
    PKG_CONFIG_PATH="$(brew --prefix)/lib/pkgconfig:$(brew --prefix icu4c)/lib/pkgconfig" \
    LDFLAGS="-L$(brew --prefix)/lib" \
    CPPFLAGS="-I$(brew --prefix)/include" \
    mise use postgres --verbose

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

#19
post #5
post #2

So if I understand it correctly, it's a mix between GNU Make and `asdf`?

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, but I haven’t had that aha moment yet that makes it indispensable for me.

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

#20
This is what I have been doing to manage development environments:

Workflows now revolve around nix.

Setup a shell.nix that defines development environment (whether it’s specific version of rust or python).

Then `nix develop` will setup an isolated environment. Do some work on project. Then exit shell.

No need to pollute machines environment with 100 versions of python/pip/uv.

Add in `direnv` and it will automatically activate the nix shell upon `cd`. Plays well with gui editors too, assuming direnv plugin/tooling available.

Post reply on HN