Fork me on GitHub

Different topic, any user of cider-nrepl (whether it's from Emacs or e.g. Calva, vim-iced) would like to take on a smallish isolated task? I would be super grateful, it escapes a little bit my area of expertise / what I can QA myself. It boils down to wrapping up (perhaps slightly reworking) this PR, its author is on PTO (for a good reason 🎉) Can explain context/requirements as needed.


I assume the -P flag is exactly the same as using -X:deps prep argument with the clojure command. Are there any differences? Does -X:deps prep work with other aliases just as -P does (I should probably test this myself anyway 🙂 )

Alex Miller (Clojure team)13:12:26

No, those are different things entirely

Alex Miller (Clojure team)13:12:47

-P does not prep dependent libs (although it will fail and tell you to prep them)


By dependent libs, do you mean the libraries that a dependency entry in a deps.edn file depends upon? (a library that is not explicitly defined in the deps.edn file, but is a dependency of a library that is defined as a dependency)? I feel I am still missing something in my understanding, especially the purpose / value of the -P flag.

Alex Miller (Clojure team)14:12:48

maybe more clearly, -P does not prep libs

Alex Miller (Clojure team)14:12:31

-P predates that and was designed to be a flag you could prefix to whatever command you plan to run (say, in a container) to trigger all of the download and classpath construction without actually running the command


and hopefully my last annoying question, what does it mean to prep libs? Is that in relation to buildng jars from Git repos and local/root dependencies? I am not sure otherwise.

Alex Miller (Clojure team)14:12:26

preparing source-based libs to be on the classpath if needed


Okay, that makes sense, thanks for clearing that up. Seems like there is lots more to read up on that page too 🙂

Alex Miller (Clojure team)14:12:09

this particular point is certainly confusing and still not entirely resolved from a design perspective


My initial confusion was that they were both described as Prepare in the help and I didn't realise what an unprepared lib actually was (until now).

Alex Miller (Clojure team)15:12:21

yes, that is the problem with using the same word for different things :)

Alex Miller (Clojure team)15:12:18

but "prepare" is such a useful word :)


I just wasnt prepared for that 🙂