Fork me on GitHub
#leiningen
<
2019-09-29
>
vemv08:09:58

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)

vemv08:09:38

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

plexus11:10:07

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

plexus11:10:24

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.

vemv13:10:03

Forgot to say: sounds reasonable, thanks! 🍻

mikerod11:09:01

@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
3