hi everybody! I noticed when I build a jar it is always adding a dependency on clojure on my pom. Looks like this is because create-basis always returns clojure as a dependency I guess because it is on the default deps.edn. Is this a desired default behavior? I guess I could remove it from the basis before calling write-pom but I feel I'm missing something
is it not a Clojure project?
I think you can set org.clojure/clojure nil in the :extra passed to create-basis if you want to omit it
Also :classpath-overrides should work, like we discussed last time
yeah, it is a Clojure project, I just saw when testing something on lein that my library was providing a version of clojure that was replacing the version there, and I was curious why it was the case
so, as library authors what are best practices for packaging libraries? since by default it will include a dependency on your dev clojure version I guess, which will then overwrite users one?
Just specify the lowest clojure version you depend on?
well, the opposite of that - the user presumably defines their own clojure version at top level and that controls
many libs do specify a minimum version, but that's more informational than useful in practice
Rich has argued that Clojure libs should treat Clojure itself as a "provided" (undeclared) dependency. I personally find that often to be tedious because you need to specify extra stuff to test or dev. In practice, the user using a lib has the actual say, so it doesn't actually matter, because top-level lib versions always win
great, thanks! first time I'm thinking about this stuff a little deeper since I'm working in this clojure dev compiler that I swap on dev over the official one, but no problem since the user can remove the org.clojure/clojure in deps and lein