Screencast about CLI, deps.edn, and aliases

After I posted my first screencast (Atom, Chlorine, and Cognitect’s REBL), quite a few people asked me to go into more detail about the CLI and, in particular, aliases in deps.edn.

So here’s my second screencast: Clojure CLI/deps.edn. It’s about 20 minutes long (so double the length of the first one).

9 Likes

Like the first screencast, this one was quite eye-opening for me. I’m starting to sense the composability of the Clojure CLI. Pretty cool that you can have all these deps.edn aliases that you can (to a large extent anyway) just slap together on the CLI and it all works together.

It was also neat to clearly see the effect different options had on the classpath, to get a better sense of what the CLI is doing.

Lastly, I liked learning about different tools and libraries in the Clojure ecosystem and how they worked, like the socket REPL, pREPL, outdated, and that nifty PNE alias you have here.

(Semi-relatedly, there’s gotta be a better way to do inline Clojure code than using commas as whitespace. I understand it’s a limitation of the Clojure CLI, but, without digging into the details, it smells like an immature handling of quoting in the tool that commas like that are necessary. But it’s a minor complaint about a great tool.)

3 Likes

It’s due to the difficulty of round-tripping option strings from Clojure to shell to file to shell and back to Clojure, across different runs of the tool – via the .cpcache files. It’s a much harder problem to solve than you might think… It’s really a shell issue, not a Clojure tooling issue.