This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-01-27
Channels
- # announcements (1)
- # aws (10)
- # babashka (53)
- # calva (133)
- # clj-kondo (46)
- # cljdoc (6)
- # cljs-dev (33)
- # clojure (105)
- # clojure-boston (1)
- # clojure-europe (11)
- # clojure-nl (4)
- # clojure-poland (1)
- # clojure-switzerland (6)
- # clojure-uk (13)
- # clojurescript (106)
- # cursive (1)
- # datascript (2)
- # emacs (13)
- # events (1)
- # figwheel-main (4)
- # fulcro (17)
- # graphql (8)
- # heroku (2)
- # honeysql (8)
- # lsp (76)
- # luminus (30)
- # malli (12)
- # meander (23)
- # music (1)
- # nextjournal (83)
- # off-topic (6)
- # pathom (3)
- # polylith (19)
- # re-frame (8)
- # reagent (2)
- # reveal (3)
- # shadow-cljs (54)
- # sql (9)
- # testing (11)
- # tools-deps (15)
- # xtdb (14)
So I'm in the middle of converting all our internal dependencies from :mvn/version to :git/url (this would only make sense inside Walmart) and I"m having problems:
> clj -X:dev:test
Error building classpath. Unable to compare versions for com.walmartlabs.clojure/util: {:mvn/version "1.3.0", :deps/manifest :mvn} and {:git/tag "v1.4.0", :git/sha "925c4a5c6984ec641c3fa0f786ec7e48da5e7c64", :git/url ":clojure/util.git", :deps/manifest :deps, :deps/root "/Users/hship/.gitlibs/libs/com.walmartlabs.clojure/util/925c4a5c6984ec641c3fa0f786ec7e48da5e7c64"}
The issue is that I have, somewhere, a transitive dependency that uses the :mvn/version coordinate, and this library now uses a :git/url coordinate. I'm OK with the tool complaining that you can't mix and match this way BUT the above message does not help me hunt down which transitive dependency itself has the :mvn/version coordinate. Is there a tool option that helps here? Is there additional logging that can be enabled? -Strace
doesn't seem to work; this error seem to prevent that from being written.maybe try clj -X:deps tree
I forget what the exact command is, I think that should print out a tree of deps
ok, if you temporarily add the problematic dep to your project's deps.edn, you can run clj -X:deps tree, and it will show all the places that dep is depended on, and show them all as overridden at the top level
then you can find the problem, fix it, and remove the temporary addition to your project's deps.edn
if you add a dependency to the deps.edn of the project where you are invoking clj on the problematic dependency com.walmartlabs.clojure/util
it will override all the other deps transitive deps (closer to the root of the tree wins) and let you run tree