I’ve been using just as a Makefile replacement for a couple of years now and I cannot go back. The main thing it gets right is the --list output: a human-friendly table of what recipes exist and what they do, generated from the inline comments, with no effort on my part.
This cast is me opening a project cold and running the tour. just --list shows me the recipes. just check runs fmt –check and clippy. just test runs the unit tests and the CLI integration tests. just cover runs cargo-llvm-cov and prints the coverage number.
Notice how fast each one is — none of these take more than a couple of seconds because the project is small. The value isn’t speed; it’s that I never have to remember that “oh, fmt –check is separate from fmt” or “the integration tests are in a different crate.” I just type just check and go.
The release VERSION recipe at the bottom is the one I don’t run in the cast, because it would try to tag and push. Mentioning it on the list is reminder enough for me to not manually do the tag-and-push dance.
Callouts:
- The inline
#comment on each recipe is what shows up in--list. Write them for other people (including future-you). justhas a--chooseflag that opens an fzf-style picker of recipes. Great for big justfiles.- You can pass arguments:
just release 0.4.2would callreleasewithVERSION=0.4.2available as{{VERSION}}.
Most of my projects have roughly these same five recipes. You want the 80% list to be memorable across projects.