Fork me on GitHub

For a library project, would you say it's better practice to have the org.clojure/clojure dep declared as a top-level one, or a :provided one? As a consumer, having to apply :exclusions [org.clojure/clojure] feels noisy so I'd be inclined towards :provided (as a producer)


OTOH, I recklessly use 1.10 features without intention of supporting prior ones. Maybe good to use the dependency system to automatically convey this requirement


Applications will generally have a specific Clojure dependency I'm their : dependencies, overruling whatever your library uses. : excludes only matters when there's no direct dependency


My general policy is to use whatever Clojure version is current when the library is created, and then try to keep compatibility for that version as long as practical. It's a good idea to mention the minimum Clojure version you need in your readme.


Forgot to say: sounds reasonable, thanks! 🍻


@vemv it seems all projects declare explicit clj versions so they never transitively resolve to your lib’s version. I guess it sort of is an expected “provided” dep though. So that’s interesting to think about.

👍 1