Hmm, in CI I'm getting a failure like this: Caused by: java.io.FileNotFoundException: Could not locate shadow/cljs__init.class, shadow/cljs.clj or shadow/cljs.cljc on classpath. My deps look like this: ๐งต
thheller/shadow-cljs 3.3.5
. org.clojure/data.json 2.5.1
. org.clojure/tools.cli 1.1.230
. org.clojure/tools.reader 1.5.2
. nrepl/nrepl 1.3.1
. cider/piggieback 0.6.0
. com.cognitect/transit-clj 1.0.333
. com.cognitect/transit-java 1.0.371
. com.fasterxml.jackson.core/jackson-core 2.14.2
. 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.4.0-b180830.0359
. javax.activation/javax.activation-api 1.2.0
. com.cognitect/transit-cljs 0.8.280
. com.cognitect/transit-js 0.8.874
. org.clojure/core.async 1.8.741
. org.clojure/tools.analyzer.jvm 1.3.2
. org.clojure/tools.analyzer 1.2.0
. org.clojure/core.memoize 1.1.266
. org.clojure/core.cache 1.1.234
. org.clojure/data.priority-map 1.2.0
. org.ow2.asm/asm 9.2
X org.clojure/tools.reader 1.5.0 :older-versionsorry, incomplete:
. org.clojure/clojurescript 1.12.134
X com.cognitect/transit-java 1.0.362 :older-version
X org.clojure/tools.reader 1.3.6 :older-version
. com.google.javascript/closure-compiler v20250407
. org.clojure/google-closure-library 0.0-20250515-f04e4c0e
. org.clojure/google-closure-library-third-party 0.0-20250515-f04e4c0e
. org.clojure/google-closure-library-third-party 0.0-20250515-f04e4c0e
. thheller/shadow-util 0.7.0
. hiccup/hiccup 1.0.5
. thheller/shadow-client 1.4.0
. hiccup/hiccup 1.0.5
. thheller/shadow-undertow 0.3.4
X org.clojure/core.async 1.5.648 :older-version
. io.undertow/undertow-core 2.3.10.Final
. org.jboss.logging/jboss-logging 3.4.3.Final
. org.jboss.xnio/xnio-api 3.8.8.Final
. org.wildfly.common/wildfly-common 1.5.4.Final
. org.wildfly.client/wildfly-client-config 1.0.1.Final
X org.jboss.logging/jboss-logging 3.3.1.Final :older-version
. org.jboss.xnio/xnio-nio 3.8.8.Final
. org.jboss.xnio/xnio-api 3.8.8.Final
X org.jboss.threads/jboss-threads 2.3.6.Final :older-version
. org.jboss.threads/jboss-threads 3.5.0.Final
X org.jboss.logging/jboss-logging 3.4.1.Final :older-version
. thheller/shadow-cljsjs 0.0.22
. hiccup/hiccup 1.0.5
. ring/ring-core 1.14.1
. org.ring-clojure/ring-core-protocols 1.14.1
. org.ring-clojure/ring-websocket-protocols 1.14.1
. ring/ring-codec 1.3.0
. commons-io/commons-io 2.18.0
. org.apache.commons/commons-fileupload2-core 2.0.0-M2
X commons-io/commons-io 2.15.1 :older-version
. crypto-random/crypto-random 1.2.1
. commons-codec/commons-codec 1.15
. crypto-equality/crypto-equality 1.0.1
. io.methvin/directory-watcher 0.19.0
. net.java.dev.jna/jna 5.16.0
. org.slf4j/slf4j-api 1.7.36
. expound/expound 0.9.0
. fipp/fipp 0.6.27
. org.clojure/core.rrb-vector 0.1.2
. com.bhauman/cljs-test-display 0.1.1locally everything runs fine
Full CI run here: https://github.com/squint-cljs/squint/actions/runs/21360598014/job/61478617200 I also tried to downgrade to 3.3.4 but this also had the same error
Maybe relevant?
this is way above my paygrade, but the offending line seems to be https://github.com/thheller/shadow-cljs/blob/4973aea864f16c34368d3a3bc1fa62ceb46ef866/src/main/shadow/cljs/devtools/api.clj#L8
:as-alias doesn't normally load the namespace
yeah, exactly
maybe a new bug in 1.12.4...
I'm using 1.12.1 locally
let's test
$ clj -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.12.4"}}}'
Clojure 1.12.4
user=> (ns foo (:require [shadow.cljs :as-alias m]))
nilI'll force the clojure version in CI just in case
oooh wow, that's it
wild
I can't repro locally when I force it to 1.12.4 though
Perhaps some AOT thingie in there as well? Not sure.
this is a really wild guess, but it looks like it's running clojure < 1.11? For example at clojure.core$load_lib.doInvoke(core.clj:5917) matches 1.10.3
it's not
or at least, it should not...
let me double check
> Run DeLaGuardo/setup-clojure@12.5 > with: > cli: 1.10.3.1040
^ that's from your job output
you're right! I just found that too. I didn't realize that shadow-cljs shell out to the ambient CLI version, but that makes sense and I didn't realize I had an old cli around! bingo. thanks