lets
lets copied to clipboard
Lets vs. Just / Task / Taskctl / Tusk
Hi, thanks for the question. In general, it always depends on you use cases.
Lets has its specifics and design choices that may or may not be suitable for some users.
I'm gonna try to do a short comparison of all tools with lets
from my own perspective, and let you decide which tool is better for your job:
Lets vs just
just
has its own uniq syntax and for me it looks and works like make but at the same time provides better defaults, and fixes some issues and inconveniences that make has. I think if you want something that looks and feels like better make then you should choose just
.
lets
has many similarities with just
in features, for example env vars
, shell
redefinition, commands
, and depencencies
between commands. lets
uses yaml for configuration so it is less expressive than justfile because it has all limitations that yaml has.
lets vs task
First of all task
and lets
are very similar. The yaml configs, features, both written in go. task
has more features for sure. Some features are very similar. So in the case lets
vs task
in more cases the tools are interchangeable, so my advice is to choose based on the features you need.
lets vs taskctl
taskctl
is a very interesting project. Besides the fact that the developers are Ukrainians same as me which I'm very proud of, the project has its interesting ideas. It has yaml
configuration as well as lets, and some features are similar to lets
, but is has
-
pipilines
which are in some sense alternative to letsdepends
directive - taskctl can be
embeded
in any go app -
contexts
Personally, I think lets
and taskctl
are created to resolve similar problems but design choices are different. It is hard for me to say which tool is better because I've never used taskctl
.
lets vs tusk
tusk
is similar to lets
- it uses yaml
, allows to describe and run tasks, has command's options syntax.
I may be wrong but it seems that tusk
has a little less features than lets
. Also the design choices made in tusk
is much different in contrast with task
or taskctl
Resume
So basically every tool is a task runner and can be used to solve similar problems.
They are all very similar in syntax (yaml), only just
has its own syntax.
The have both similar and different features and it is up to user to decide which features are more useful
As for lets, it has some "uniq" features on some sense:
- options that are valid
docopt
syntax and parsed info environment variables - checksums to verify the task result has changed
- remote mixins used to include
lets
files from remote places (by url) - refs to reuse commands with predefined args and env
-
depends
to build a DAGS of commands - global
init
andbefore
directives which are executed at all startup and before each command respectively