How do you use deps and CLI

It has been weeks since Clojure 1.9 release. Deps and CLI is quite surprising since I heard no one mentioned it before the release. Have you started using CLI now, where and how do you use it?

2 Likes

Not really - I am frankly not sure about what it buys me compared to “lein”. But maybe I just don’t get it.
I do not like the idea of having my deps expressed in a different format than “project.clj”.

I read the docs for it briefly again today. It seems more composable and low level than lein config. I could see it being used for a higher level api but I’m not sure how that would differ from lein or boot.

I read the article on getting figwheel working with it and didn’t notice a huge difference from how I set it up with lein.

I thought the article had a good takeaway— that if you’re ever curious what’s going on under the covers deps end pretty much shows you, and you can customize using Clojure and edn to a really high degree in a way that feels more idiomatic than lein.

I’m glad we finally have a better and “official” way to manage deps and run projects. I use it for small projects, the only thing that is missing is lein plugins ecosystem.

1 Like

I think it’s a nice opportunity for lein and boot to re-factor using these “official” libs, and for new tools to emerge, but I’m not sure how much end users will use them directly.

3 Likes

I’ve been using deps.edn and clj for testing new libraries! I’ve found the startup time to be a great improvement over other build tools, so I’ve been keeping a deps.edn file on my ~/Desktop where I’ll add the dependency of a library I want to check out and quickly spin up a REPL with clj.

This has been a boon to my workflow, mainly because it’s a lot easier than doing this in my “reloaded” boot workflow, which requires me to change a file in source control (I’ve accidentally included unused libraries in commits), and being able to intuitively pipe one-liners to Clojure (on the JVM) from the command line is something I’ve wanted for a long time.

3 Likes

The CLI has been a long time coming – having Clojure as a standard package install on major operating systems is a great step forward. Having something that is “core” but can fetch and load dependencies from Maven and Clojars is very important for broader adoption of Clojure in my opinion.

I created boot-tools-deps so Boot users can specify dependencies in deps.edn and use either clj for simple tasks or boot for more complex ones, based on the same dependencies.

Rick Moynihan has created lein-tools-deps for Leiningen users to do the same.

6 Likes

I just created a project that uses the CLI tools, it’s a small tool to be used on the command line, and for this it was certainly a good fit.

I wrote about it in detail here: Tablizer: fun experiment with Clojure CLI tools

1 Like

FYI, I’ve just stumbled upon it on the Archi Linux community repo. It means clojure and clj are just a sudo pacman -S clojure away ! :sunglasses:

3 Likes

hi alex, which article?

I think he meant this one. Right ?

Yessir. Thanks :blush: @dustingetz