Do Lein tasks declare dependencies between them? I always had the impression that e.g. test depends on clean or javac but I don't see that dependency declared here https://github.com/technomancy/leiningen/blob/24fb93936133bd7fc30c393c127e9e69bb5f2392/src/leiningen/test.clj
No
lein has changed a fair bit since it started, but when Phil started on it his project at work was a gnarly maven multi module thing, and lein was started as a rejection of that kind of complex build
You have a standard set of built in tasks for your project, and every project uses the same ones, made things really legible for a while
In that simplified model there is no task dsl and no mechanism for describing dependencies between tasks
I haven't touched lein in a long time now, but I miss the rigidity when trying to figure out how the heck to run tests in a given clojure project
Good insights! Thanks
Tasks are standalone for the most part. If a task does invoke another task, then you would see namespaces like leiningen.task required
e.g. in the uberjar task, a jar task gets called on the project https://codeberg.org/leiningen/leiningen/src/branch/main/src/leiningen/uberjar.clj#L180