Happy ten years of just! (And lists!)
I made my first commit to just, a command-runner written in Rust, ten years ago with the auspicious commit message "Initial commit. Broken."
I still greatly enjoy working on just, and Rust is a huge part of the reason why. Large refactors that would be angst-inducing in other languages are either working, or at least very close to working, once they compile in Rust, and strong support for testing means that just has had comprehensive unit and integration tests from the very beginning. (2076 tests so far!) There have still been plenty of bugs, but far fewer than there would have been in any of the practical alternatives to Rust.
Thanks to everyone that has used just over the years, and the Rust community for an amazing language and the huge variety of useful crates that just uses as dependencies. I'm especially grateful to all the feedback, design help, and issue reports I've gotten. just is largely a single-person project, and my own use of just is fairly simple, so I rely on users to let me know what they're doing, what they want to do, and what works and what doesn't.
I just (lmao, never gets old) released 1.53.0, which has a huge new feature: lists!
There have been many issues over the years which are hard or difficult to solve with strings alone, so now, instead of all values being strings, all values are lists of strings. This preserves the simplicity of just's single-type type system, what were strings are now lists of length one.
This is an odd but hopefully pragmatic choice, and one shared by the rc and fish shells.
Two headline features this enables are properly quoting variadic arguments:
set unstable
set lists
foo *args:
echo {{ quote(args) }}
And mapping variadic arguments to dependencies, especially in parallel:
set unstable
set lists
# call `compile` with each element of `args` in parallel
[parallel]
build *args: *(compile *args)
compile target:
But there is a a ton of functionality, all documented in the lists section of the readme, to avail yourself of.
Thank you for using just, and do try out lists and let me know what you think!