The import of next.jdbc 1.0.3 failed and I don't understand why https://circleci.com/gh/cljdoc/builder/8536 -- org.clojure/java.data
is in the POM and deps.edn
so it should have been downloaded but it doesn't show up in the tree and so the namespace isn't available. Is this a caching issue somehow, that cljdoc's CI job has cached older deps?
@carkh you can switch back to depstar
now 😁
I'll give it a go and tell you how it goes
The problem might be a missing manifest file inside the jar
curl -O <https://repo.clojars.org/seancorfield/next.jdbc/1.0.3/next.jdbc-1.0.3.jar>
clj -Sdeps '{:deps {seancorfield/next.jdbc {:local/root "next.jdbc-1.0.3.jar"}}}' -Stree
is what’s happening inside the analyzerthe decision to rely on stuff inside jars like this might be something worth reconsidering
related-ish https://github.com/cljdoc/cljdoc/issues/275#issuecomment-479989370 (assuming you’re using depstar to build the jar)
Yup, I use depstar
to build all my OSS projects.
I assumed cljdoc worked from the pom.xml
file since without that it didn't build properly.
And Daniel said "It also tells you nothing about the build or compile versions of any dependencies" so why would cljdoc rely on the manifest for that?
Oh wait, I'm misunderstanding what he means there I think...
But, yeah, I think cljdoc
needs to read the pom.xml
file (which it could get from Clojars).
After all, when programs depend on JARs on Clojars, they use the pom.xml
there to pull in the transitive dependencies, right?
(! 702)-> clj -Sdeps '{:deps {seancorfield/next.jdbc {:mvn/version "RELEASE"}}}' -Stree
org.clojure/clojure 1.10.1
org.clojure/spec.alpha 0.2.176
org.clojure/core.specs.alpha 0.2.44
seancorfield/next.jdbc 1.0.3
org.clojure/java.data 0.1.1
org.clojure/tools.logging 0.2.3
So, yeah, clj
gets the transitive dependencies right, based on the .pom
file on http://clojars.org.
Right but clj
also properly works when providing the jar via local/root
Which is what I’ve shown in the first code snippet
But not for depstar
-built JARs?
(! 703)-> clj -Sdeps '{:deps {seancorfield/next.jdbc {:local/root "/Developer/workspace/next.jdbc/next-jdbc.jar"}}}' -Stree
org.clojure/clojure 1.10.1
org.clojure/spec.alpha 0.2.176
org.clojure/core.specs.alpha 0.2.44
seancorfield/next.jdbc /Developer/workspace/next.jdbc/next-jdbc.jar
Confirmed. Sigh. I was really hoping to not need to deal with manifests and such like in depstar
.(mostly because depstar
currently has zero dependencies and I want to keep it that way)
for the record i had to switch from depstar to maven because of this cljdoc issue
I guess I'm going to cave and add manifest and pom support... 😐
(I'm still not going to add AOT! That's a line I will not cross!)
there might be an issue with clojure.xml, at least i've witnessed most clojure tools are adding blank lines in the produced xml
that is when they edit the pom.xml
I won't edit the pom.xml file at all, just copy it into the JAR
I only need to parse it.
good then =)