Unlike Just which clearly states it is not a build system [1], Task can be told about expected files so tasks can be skipped to avoid unnecessary work [2]. So if your task is to build software, IMO make and the others like Task would be better.
If your tasks only care about the success code from a process, and/or are a Rust fan instead of Go, then Just should be fine. Otherwise, for specific use-cases like CI, you are likely already coding in a proprietary YAML/JSON/XML format.
We use Docker Compose for our dev environment and were trying to do something like (notice the extra dash dash for separating the arguments out):
task poetry -- add requests django
It was not working as we expected for some of the users due to the argument dash dash stuff - they were forgetting due to muscle memory but the following does:
just poetry add requests django
under the hood it was just calling (the equivalent):
docker compose run --rm --build poetry poetry "$@"
Just arguments are more ergonomic.
This is how just does it:
poetry +command:
docker compose run --rm --build poetry poetry {{command}}
Passing parameters kinda sucks, someone else made a comparison in another thread about named parameters and how easy it is to pass and define them in Just. Love taskfile otherwise
Personally I disagree, I think `--` is very intuitive.
Maybe it isn't super common knowledge, but `--` is in line with the POSIX argument parsing convention[0] and is used by many (most?) GNU/BSD tools and many other tools such as `kubectl`. This StackOverflow thread[1] also has some information about it.
I unironically like the YAML format. It's very readable, imho, and most people (at least in the web space) already know it. It's better than the way just does attributes and descriptions.
On the other hand, what irks me is how parameters are fiddly to pass along. You have to define environment variables, instead of jusst passing them directly in the call.
Unlike Just which clearly states it is not a build system [1], Task can be told about expected files so tasks can be skipped to avoid unnecessary work [2]. So if your task is to build software, IMO make and the others like Task would be better.
If your tasks only care about the success code from a process, and/or are a Rust fan instead of Go, then Just should be fine. Otherwise, for specific use-cases like CI, you are likely already coding in a proprietary YAML/JSON/XML format.
[1] https://github.com/casey/just/blob/e1b85d9d0bc160c1ac8ca3bca...
[2] https://taskfile.dev/usage/#prevent-unnecessary-work