i think mise does too much. the deeper you go into its features the more rough edges you’ll find. i predominantly use nix on macos for managing app-level tool and package deps, but mise does a better job for this when you’re a part of a team (and can’t be overly prescriptive).
mise tasks gets gross pretty fast in my experience.
I like mise a lot. As somewhat of a power user I've also found its rough edges though.
One is related to "change tracking" for tasks. Knowing when a task needs to run and when not based on inputs and outputs. I believe it uses mtimes and has somewhat similar problems in doing that reliably as make. For example, it would be nice if deleted files in output dirs would result in a task having to re-run.
Another is that I wish it was also a better task runner for long running foreground tasks. I've had to resort to pairing it up with pitchfork (by the same author but moreso an init system), overmind or hivemind. I think it should have the same set of options as pitchfork. And more controls around interrupt handling or setting delay/wait time after receiving an interrupt.
Yeah change tracking didn’t work at all for me. The only way it works is if I dont define outputs. Haven’t looked into it, but jdx is very receptive to PRs so you might want to open one. I assume it can’t be that hard to fix.
One file for both packaging and devshell with all necessary dependencies installed from the vast nixpkgs repository. Pinning comes built-in, reproducible.
My team at work uses Mise for nearly all repos, regardless of stack (Python backends, React frontings, data science repos). I typically prefer to use Make for this kind of stuff, but they were already using Mise when I joined.
It’s been a fairly pleasant experience overall. I think sometimes it tries to do too much, but it works okay-ish.
The only thing I would recommend to stay away from is the encrypted secrets stuff. That’s way too much of a foot gun.
How is it more pleasant than the others? I've used make and nix, but not extensively. They seemed fine. Make seemed extremely powerful if a little rough on the edges at times. Nix was not super intuitive and I was never content with it before leaving it behind. That was probably a me-problem, because I could tell it was very capable and designed well in some ways.
i think mise does too much. the deeper you go into its features the more rough edges you’ll find. i predominantly use nix on macos for managing app-level tool and package deps, but mise does a better job for this when you’re a part of a team (and can’t be overly prescriptive).
mise tasks gets gross pretty fast in my experience.
I like mise a lot. As somewhat of a power user I've also found its rough edges though.
One is related to "change tracking" for tasks. Knowing when a task needs to run and when not based on inputs and outputs. I believe it uses mtimes and has somewhat similar problems in doing that reliably as make. For example, it would be nice if deleted files in output dirs would result in a task having to re-run.
Another is that I wish it was also a better task runner for long running foreground tasks. I've had to resort to pairing it up with pitchfork (by the same author but moreso an init system), overmind or hivemind. I think it should have the same set of options as pitchfork. And more controls around interrupt handling or setting delay/wait time after receiving an interrupt.
Yeah change tracking didn’t work at all for me. The only way it works is if I dont define outputs. Haven’t looked into it, but jdx is very receptive to PRs so you might want to open one. I assume it can’t be that hard to fix.
echo 'use flake' > .envrc && direnv allow
One file for both packaging and devshell with all necessary dependencies installed from the vast nixpkgs repository. Pinning comes built-in, reproducible.
Popular in 2024 (164 points, 37 comments) https://news.ycombinator.com/item?id=40186768
My team at work uses Mise for nearly all repos, regardless of stack (Python backends, React frontings, data science repos). I typically prefer to use Make for this kind of stuff, but they were already using Mise when I joined.
It’s been a fairly pleasant experience overall. I think sometimes it tries to do too much, but it works okay-ish.
The only thing I would recommend to stay away from is the encrypted secrets stuff. That’s way too much of a foot gun.
where does this fit in with make, just, nix (devshell, devenv, ...), direnv, etc.
It basically does replace make/just, nix, direnv in one convenient binary. It’s very pleasant to use.
How is it more pleasant than the others? I've used make and nix, but not extensively. They seemed fine. Make seemed extremely powerful if a little rough on the edges at times. Nix was not super intuitive and I was never content with it before leaving it behind. That was probably a me-problem, because I could tell it was very capable and designed well in some ways.