This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-03-15
Channels
- # babashka (4)
- # beginners (136)
- # calva (63)
- # clerk (7)
- # clj-kondo (8)
- # clojure (43)
- # clojure-boston (1)
- # clojure-europe (37)
- # clojure-nl (1)
- # clojure-norway (11)
- # clojure-uk (3)
- # clojurescript (6)
- # clr (1)
- # code-reviews (16)
- # cursive (45)
- # datomic (2)
- # docker (32)
- # emacs (10)
- # events (2)
- # exercism (1)
- # fulcro (3)
- # hugsql (1)
- # hyperfiddle (47)
- # leiningen (3)
- # lsp (30)
- # malli (39)
- # missionary (1)
- # off-topic (24)
- # pathom (2)
- # portal (14)
- # practicalli (5)
- # rdf (13)
- # reagent (18)
- # reitit (18)
- # releases (7)
- # remote-jobs (1)
- # sci (2)
- # shadow-cljs (45)
- # sql (7)
- # tools-build (11)
- # xtdb (13)
I currently use portal 0.35.1
in the poly tool. This is specified in the https://github.com/polyfy/polylith/blob/master/components/tap/deps.edn component and used by the https://github.com/polyfy/polylith/blob/master/projects/poly/deps.edn project. If cloning the code, you will be able to start a shell from the root of the repository (called a workspace in Polylith terms) and execute clojure -M:poly
. If I change the version to 0.37.0
and try again, I get this error:
*$~*/so/*polylith* clojure -M:poly 1 err 11s 07:21:12
Execution error (ClassNotFoundException) at
com.google.gson.stream.JsonReader
Full report at:
/var/folders/q7/ky18vssj6jz0mhfr8lcv1xzh0000gp/T/clojure-4494528380173068312.edn
Sounds like a conflict in a transitive dependency between what Polylith depends on and what Portal depends on.
Hmm, no, I actually think there might be a problem with the Portal 0.37.0 artifact...
> clojure -Sdeps '{:deps {djblue/portal {:mvn/version "0.37.0"}}}' -Stree
org.clojure/clojure 1.11.1
. org.clojure/spec.alpha 0.3.218
. org.clojure/core.specs.alpha 0.2.62
djblue/portal 0.37.0
whereas
> clojure -Sdeps '{:deps {djblue/portal {:mvn/version "0.36.0"}}}' -Stree
org.clojure/clojure 1.11.1
. org.clojure/spec.alpha 0.3.218
. org.clojure/core.specs.alpha 0.2.62
djblue/portal 0.36.0
. org.clojure/data.json 2.4.0
. com.cognitect/transit-cljs 0.8.280
. com.cognitect/transit-js 0.8.874
. com.cognitect/transit-clj 1.0.329
. com.cognitect/transit-java 1.0.362
. com.fasterxml.jackson.core/jackson-core 2.8.7
. org.msgpack/msgpack 0.6.12
. com.googlecode.json-simple/json-simple 1.1.1
. org.javassist/javassist 3.18.1-GA
. javax.xml.bind/jaxb-api 2.3.0
. com.google.code.gson/gson 2.10
. http-kit/http-kit 2.6.0
So the transitive dependencies appear to be missing. I think we haven't noticed this because we have other libs that bring in those dependencies?Okay thanks. Let’s see what @U1G869VNV says.
And that's really weird since the pom.xml
in the JAR seems to have those dependencies...
I am also seeing issues with transitive deps on 0.37.0 and have reverted to 0.36.0 to fix the issue.
Thanks for catching this. I think I was generating a bad pom.xml, https://github.com/djblue/portal/commit/ca290e2f127379f4f9af8c4846bc286fae4d0f78 should fix the issue. Deploying the fix now.
clojure -Sdeps '{:deps {djblue/portal {:mvn/version "0.37.1"}}}' -Stree works for me now 👍
@U1G869VNV why not use tools.build
to generate the pom.xml
file (from a template file with all the non-dependency data in it)?
I think the main thing I needed was to https://github.com/djblue/portal/blob/master/dev/tasks/info.clj#L17-L23 to make cljdoc happy which I wasn't able to do previously with tools.build
Hmm, that's come up a couple of times... I'm not sure whether the better solution is for cljdoc to provide a way to "teach" it about additional dependencies needed for analysis, or for tools.build
to support <scope>
somehow... Might be worth posting on http://ask.clojure.org about creating pom.xml
files with test/provided scope deps to support other tooling?
Hmm, no, I actually think there might be a problem with the Portal 0.37.0 artifact...
> clojure -Sdeps '{:deps {djblue/portal {:mvn/version "0.37.0"}}}' -Stree
org.clojure/clojure 1.11.1
. org.clojure/spec.alpha 0.3.218
. org.clojure/core.specs.alpha 0.2.62
djblue/portal 0.37.0
whereas
> clojure -Sdeps '{:deps {djblue/portal {:mvn/version "0.36.0"}}}' -Stree
org.clojure/clojure 1.11.1
. org.clojure/spec.alpha 0.3.218
. org.clojure/core.specs.alpha 0.2.62
djblue/portal 0.36.0
. org.clojure/data.json 2.4.0
. com.cognitect/transit-cljs 0.8.280
. com.cognitect/transit-js 0.8.874
. com.cognitect/transit-clj 1.0.329
. com.cognitect/transit-java 1.0.362
. com.fasterxml.jackson.core/jackson-core 2.8.7
. org.msgpack/msgpack 0.6.12
. com.googlecode.json-simple/json-simple 1.1.1
. org.javassist/javassist 3.18.1-GA
. javax.xml.bind/jaxb-api 2.3.0
. com.google.code.gson/gson 2.10
. http-kit/http-kit 2.6.0
So the transitive dependencies appear to be missing. I think we haven't noticed this because we have other libs that bring in those dependencies?