One of my concerns was about how well maintained Mise would be given that it's mostly a single maintainer, so I think this is good news in that respect.
Good luck to Jeff!
If everyone on your team gets Mise and you're starting to feel pain at the periphery then it can definitely make sense to adopt a more elaborate toolchain orchestrator.
Curious given polyglot monorepo and bazel, does mise have something that solves the build graph/caching stuff that IIUC comes with Bazel or is that something that's not needed for the monorepo you help maintain?
I'm a massive fan of Wireit and its caching behavior, so I'm looking for something to live up to that. I have more testing to do. I think Mise defaults to mtime-keyed cache but has an option for content hashing, which it what Wireit uses and makes it quick to undo a change and get a cache hit.
mise's sources/outputs is intentionally pretty naive though. It's not bazel/buck2. That may change one day but so far it's more for writing tasks and less trying to be an authoritative build system.
Edit: mise rocks.
The Mise website makes way more sense to me now. I suppose some artistic license is justified when you're at the cutting-edge of the CLI aesthetic and what not.
No, because realistically, this is the opposite of what corporations want. If a project is only being maintained by one or two people, that’s a risk, pure and simple. So you look somewhere else for something that matches your needs, with a more sustainable story.
Nothing against the author, but what he’s describing is a business model - just one that’s likely to bring in a negligible amount of money. This is less about open source and more about what kinds of projects society is willing to pay people to work on.
https://formulae.brew.sh/analytics/install/30d/
(That said, your observation is well taken.)
it's 12th now. It was 10th when I wrote this post. GP is just mentioning what I wrote in the blog body.
Now that this is a full time gig for me this has more than quadrupled—this post is a couple of weeks old. Also because I'm offering perks for the first time for people that pitch in. Still not enough to really make a living, but like I said in the post I have a few avenues I am trying out for revenue. I just hope that I can find something that maximizes the time I spend on the OSS tools while being sustainable.
Don't shy away from pitching companies you see using your tools to pay (note it's a sales pitch: a "here's actual value you get for your spend", not "support us, it's the moral thing to do")
Thanks for working on open source and good luck with this!
Example: I was recently working on a large project that needed a specific version of Python, and there's a lot of ways to solve that, but mise was an easy and robust one. But also, the project needed a bunch of different tools to build it, deploy it, do local dev, perform certain maintenance tasks like rotating secrets, work through certain operational runbooks, etc., and mise was an easy and robust way to solve that too. Once you know everyone on the team will have the same tools available, if a runbook would be simpler if you could assume everyone has jq installed, well, just add it your the project's mise config, and now they do. And then when I switched to working on a Java service, and then later a Node service, well, obviously mise was an easy and robust solution there too.
By contrast, I made an effort a year or two back to adopt nix, which (despite starting from a very different place) solves a lot of similar problems, but found it a bit daunting (large, complex, poorly documented, and felt hard to partially adopt), and while I love the concept of nix, as a practical matter I ended up abandoning the effort. But mise was really easy to understand, adopt, and progressively add to an existing project without unduly impacting other team members. (Example: Mise will read existing verion manager configs from tools like sdkman, which makes adopting it over time easier.)
It's got to the point now where I'm using mise in place of Homebrew or other system level package managers for basically all CLI tools. Which feels weird when I think about it, but mise genuinely just feels like the better solution. If mise has a flaw, I haven't stubbed my toe on it yet.
Ironically I pushed for it because it also has tasks that can be written in Bash (we have a mix of Bash scripts and Makefiles for task running across projects while I will die on the hill that shell scripts should be written in a shell script: not Makefile, not a string in a json file, not a string in a yaml file) but we never did get around to that.
The documentation is a little difficult, but LLMs seem pretty capable of understanding it and generating new tasks.
Good luck with your new endeavour! I have made a similar move in 2020 and it made me a much happier person.