leiningen

vemv 2023-09-11T19:30:59.537549Z

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

2023-09-11T19:32:00.091919Z

No

2023-09-11T19:34:53.902369Z

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

2023-09-11T19:36:16.915989Z

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

2023-09-11T19:37:54.168919Z

In that simplified model there is no task dsl and no mechanism for describing dependencies between tasks

2023-09-11T19:40:09.744219Z

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

vemv 2023-09-11T20:00:46.822339Z

Good insights! Thanks

hifumi123 2023-09-11T22:38:16.610629Z

Tasks are standalone for the most part. If a task does invoke another task, then you would see namespaces like leiningen.task required

✅ 1
hifumi123 2023-09-11T22:38:52.037869Z

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