Fork me on GitHub
Alex Miller (Clojure team)00:05:20

There are a couple generic ideas we have in this area that we will be working on, not sure yet if they are clj or clojure.main


The composition is important I think. I don't want to maintain a clj for every project I work on.


I find writing a little clj file for custom stuff pretty convenient. I wouldn't say no to more systematic approaches if clj adds them. Just saying, it's not that bad to have a .clj file


It means everyone who knows Clojure can understand the build script, since it's just a clj file. As opposed to having to learn some new configuration system.


The only downside is paying the startup price on every script execution.


Different contexts I think. A project can have a single clj file, but a user might have many they compose in different ways.


For example, in one project I might want to run a clj file which launches postgres in the background if it's not already started, but I want that to work alongside the project's clj file.

clj -i pg.clj -i theproject.clj

Alex Miller (Clojure team)13:05:42

clj is for running a (single) Clojure program. It sounds like you’re trying to run multiple programs. At that point, use bash or babashka or write a generic clj tool that launches multiple programs.


I want to have side effects on the world before a program runs. Usually within the same jvm.


hello, I'm having some version conflicts problem in my project, and on trying to debug I remember on lein when we ask for the tree it suggests some exclusions to avoid dependency conflicts, is there any such tool like this for use with deps.edn dependencies?

Alex Miller (Clojure team)17:05:25

depot can help with some similar things


To just clarify what I was saying above ^ I'm mostly interested in dev tooling. Things like scope-capture, nrepl, etc. So I want to effect the running JVM.