NewsLab
Apr 29 09:12 UTC

Mise-En-Place (mise.jdx.dev)

35 points|by dotmanish||13 comments|Read full story on mise.jdx.dev

Comments (13)

13 shown
  1. 1. gnabgib||context
    Popular in 2024 (164 points, 37 comments) https://news.ycombinator.com/item?id=40186768
  2. 2. slau||context
    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.

  3. 3. skavi||context
    where does this fit in with make, just, nix (devshell, devenv, ...), direnv, etc.
  4. 4. mgrandl||context
    It basically does replace make/just, nix, direnv in one convenient binary. It’s very pleasant to use.
  5. 5. steve_adams_86||context
    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.
  6. 6. ElCapitanMarkla||context
    I came from dealing with various node / ruby / python versions across multiple projects where I used nvim / rbenv and some python manager. Miss is nice as you can just switch to it and not relearn anything, it just works with the old configs.

    I haven’t tried make with our setup but nix was too much of a hassle. Especially when some projects required old versions of libraries across dev (macOS) and staging/prod for various Linux OS.

  7. 7. skavi||context
    i assume it does not have the same goals wrt hermeticity as nix?
  8. 8. piperswe||context
    Correct, for the most part it uses the binaries distributed by the upstream project.
  9. 9. sureglymop||context
    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.

  10. 10. mgrandl||context
    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.
  11. 11. theknarf||context
    I usually pair it with mprocs for long running tasks
  12. 12. Zopieux||context
    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.

  13. 13. notnmeyer||context
    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.