Fork me on GitHub
#babashka-sci-dev
<
2023-01-27
>
lispyclouds13:01:50

im trying to run bb locally with clojure -M -m babashka.main and see this error:

$ clojure -M -m babashka.main
Syntax error (ClassNotFoundException) compiling at (borkdude/deps.clj:1:1).
borkdude.deps
I have all the submodules cloned and there is no changes in the code. This is running on JDK 19 which i hope is not an issue? Same happens when I'm trying to ./script/uberjar. full error in 🧵

2
lispyclouds13:01:00

{:clojure.main/message
 "Syntax error (ClassNotFoundException) compiling at (borkdude/deps.clj:1:1).\nborkdude.deps\n",
 :clojure.main/triage
 {:clojure.error/phase :compile-syntax-check,
  :clojure.error/line 1,
  :clojure.error/column 1,
  :clojure.error/source "deps.clj",
  :clojure.error/path "borkdude/deps.clj",
  :clojure.error/class java.lang.ClassNotFoundException,
  :clojure.error/cause "borkdude.deps"},
 :clojure.main/trace
 {:via
  [{:type clojure.lang.Compiler$CompilerException,
    :message "Syntax error compiling at (borkdude/deps.clj:1:1).",
    :data
    {:clojure.error/phase :compile-syntax-check,
     :clojure.error/line 1,
     :clojure.error/column 1,
     :clojure.error/source "borkdude/deps.clj"},
    :at [clojure.lang.Compiler analyze "Compiler.java" 6825]}
   {:type java.lang.ClassNotFoundException,
    :message "borkdude.deps",
    :at
    [java.net.URLClassLoader findClass "URLClassLoader.java" 445]}],
  :trace
  [[java.net.URLClassLoader findClass "URLClassLoader.java" 445]
   [clojure.lang.DynamicClassLoader
    findClass
    "DynamicClassLoader.java"
    69]
   [java.lang.ClassLoader loadClass "ClassLoader.java" 588]
   [clojure.lang.DynamicClassLoader
    loadClass
    "DynamicClassLoader.java"
    77]
   [java.lang.ClassLoader loadClass "ClassLoader.java" 521]
   [java.lang.Class forName0 "Class.java" -2]
   [java.lang.Class forName "Class.java" 495]
   [java.lang.Class forName "Class.java" 474]
   [clojure.lang.RT classForName "RT.java" 2209]
   [clojure.lang.RT classForName "RT.java" 2218]
   [clojure.lang.Compiler resolveIn "Compiler.java" 7412]
   [clojure.lang.Compiler resolve "Compiler.java" 7375]
   [clojure.lang.Compiler analyzeSymbol "Compiler.java" 7336]
   [clojure.lang.Compiler analyze "Compiler.java" 6785]
   [clojure.lang.Compiler analyze "Compiler.java" 6762]
   [clojure.lang.Compiler$InvokeExpr parse "Compiler.java" 3900]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7126]
   [clojure.lang.Compiler analyze "Compiler.java" 6806]
   [clojure.lang.Compiler analyze "Compiler.java" 6762]
   [clojure.lang.Compiler$BodyExpr$Parser parse "Compiler.java" 6135]
   [clojure.lang.Compiler$TryExpr$Parser parse "Compiler.java" 2326]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7124]
   [clojure.lang.Compiler analyze "Compiler.java" 6806]
   [clojure.lang.Compiler analyze "Compiler.java" 6762]
   [clojure.lang.Compiler$BodyExpr$Parser parse "Compiler.java" 6137]
   [clojure.lang.Compiler$FnMethod parse "Compiler.java" 5479]
   [clojure.lang.Compiler$FnExpr parse "Compiler.java" 4041]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7122]
   [clojure.lang.Compiler analyze "Compiler.java" 6806]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7112]
   [clojure.lang.Compiler analyze "Compiler.java" 6806]
   [clojure.lang.Compiler analyze "Compiler.java" 6762]
   [clojure.lang.Compiler$InvokeExpr parse "Compiler.java" 3832]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7126]
   [clojure.lang.Compiler analyze "Compiler.java" 6806]
   [clojure.lang.Compiler analyze "Compiler.java" 6762]
   [clojure.lang.Compiler$BodyExpr$Parser parse "Compiler.java" 6137]
   [clojure.lang.Compiler$FnMethod parse "Compiler.java" 5479]
   [clojure.lang.Compiler$FnExpr parse "Compiler.java" 4041]
   [clojure.lang.Compiler analyzeSeq "Compiler.java" 7122]
   [clojure.lang.Compiler analyze "Compiler.java" 6806]
   [clojure.lang.Compiler eval "Compiler.java" 7191]
   [clojure.lang.Compiler eval "Compiler.java" 7183]
   [clojure.lang.Compiler load "Compiler.java" 7653]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__8621 invoke "core.clj" 6161]
   [clojure.core$load invokeStatic "core.clj" 6160]
   [clojure.core$load doInvoke "core.clj" 6144]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5933]
   [clojure.core$load_one invoke "core.clj" 5928]
   [clojure.core$load_lib$fn__8563 invoke "core.clj" 5975]
   [clojure.core$load_lib invokeStatic "core.clj" 5974]
   [clojure.core$load_lib doInvoke "core.clj" 5953]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$apply invoke "core.clj" 662]
   [clojure.core$load_libs invokeStatic "core.clj" 6017]
   [clojure.core$load_libs doInvoke "core.clj" 6000]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$apply invoke "core.clj" 662]
   [clojure.core$require invokeStatic "core.clj" 6106]
   [clojure.core$require doInvoke "core.clj" 6038]
   [clojure.lang.RestFn invoke "RestFn.java" 457]
   [babashka.deps$eval11136$loading__8486__auto____11137
    invoke
    "deps.clj"
    1]
   [babashka.deps$eval11136 invokeStatic "deps.clj" 1]
   [babashka.deps$eval11136 invoke "deps.clj" 1]
   [clojure.lang.Compiler eval "Compiler.java" 7194]
   [clojure.lang.Compiler eval "Compiler.java" 7183]
   [clojure.lang.Compiler load "Compiler.java" 7653]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__8621 invoke "core.clj" 6161]
   [clojure.core$load invokeStatic "core.clj" 6160]
   [clojure.core$load doInvoke "core.clj" 6144]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5933]
   [clojure.core$load_one invoke "core.clj" 5928]
   [clojure.core$load_lib$fn__8563 invoke "core.clj" 5975]
   [clojure.core$load_lib invokeStatic "core.clj" 5974]
   [clojure.core$load_lib doInvoke "core.clj" 5953]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$apply invoke "core.clj" 662]
   [clojure.core$load_libs invokeStatic "core.clj" 6017]
   [clojure.core$load_libs doInvoke "core.clj" 6000]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$apply invoke "core.clj" 662]
   [clojure.core$require invokeStatic "core.clj" 6106]
   [clojure.core$require doInvoke "core.clj" 6038]
   [clojure.lang.RestFn invoke "RestFn.java" 3894]
   [babashka.main$eval2669$loading__1607__auto____2670
    invoke
    "main.clj"
    1]
   [babashka.main$eval2669 invokeStatic "main.clj" 1]
   [babashka.main$eval2669 invoke "main.clj" 1]
   [clojure.lang.Compiler eval "Compiler.java" 7194]
   [clojure.lang.Compiler eval "Compiler.java" 7183]
   [clojure.lang.Compiler load "Compiler.java" 7653]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__1742 invoke "core.clj" 6161]
   [clojure.core$load invokeStatic "core.clj" 6160]
   [clojure.core$load doInvoke "core.clj" 6144]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5933]
   [clojure.core$load_one invoke "core.clj" 5928]
   [clojure.core$load_lib$fn__1684 invoke "core.clj" 5975]
   [clojure.core$load_lib invokeStatic "core.clj" 5974]
   [clojure.core$load_lib doInvoke "core.clj" 5953]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$apply invoke "core.clj" 662]
   [clojure.core$load_libs invokeStatic "core.clj" 6017]
   [clojure.core$load_libs doInvoke "core.clj" 6000]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$require invokeStatic "core.clj" 6038]
   [clojure.main$main_opt invokeStatic "main.clj" 514]
   [clojure.main$main_opt invoke "main.clj" 510]
   [clojure.main$main invokeStatic "main.clj" 664]
   [clojure.main$main doInvoke "main.clj" 616]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.lang.Var applyTo "Var.java" 705]
   [clojure.main main "main.java" 40]],
  :cause "borkdude.deps",
  :phase :compile-syntax-check}}

lispyclouds13:01:10

its been a while but i do remember to be able to run this. its a bit baffling as this is exactly what the CI does!

borkdude13:01:18

ls deps.clj?

lispyclouds13:01:20

$ tree deps.clj
deps.clj
├── CHANGELOG.md
├── LICENSE
├── README.md
├── appveyor.yml
├── assets
│   └── windows-scoop.png
├── bb
│   ├── artifact.clj
│   └── tasks.clj
├── bb.edn
├── deps.bat
├── deps.clj
├── deps.edn
├── install
├── install.ps1
├── project.clj
├── resources
│   ├── DEPS_CLJ_RELEASED_VERSION
│   └── DEPS_CLJ_VERSION
├── script
│   ├── bump_version.clj
│   ├── changelog.clj
│   └── gen_script.clj
├── src
│   └── borkdude
│       └── deps.clj
└── test
    └── borkdude
        ├── deps_test.clj
        └── exec_test.clj

borkdude13:01:54

clj
(require '[borkdude.deps])

lispyclouds13:01:44

i did make sure of the cp too when trying to debug

borkdude13:01:13

$ clojure -M -m babashka.main
Babashka v1.1.173-SNAPSHOT REPL.
Use :repl/quit or :repl/exit to quit the REPL.
Clojure rocks, Bash reaches.

user=>

lispyclouds13:01:49

yep i remember that working for me too, will try some more things

borkdude13:01:11

did you suddenly switch to another jdk?

lispyclouds13:01:02

well on this machine its JDK 19 temurin, didnt change that for a while.

borkdude13:01:06

borkdude@m1 ~/dev/babashka (master) $ export GRAALVM_HOME=~/Downloads/graalvm-ce-java19-22.3.0/Contents/Home
borkdude@m1 ~/dev/babashka (master) $ export JAVA_HOME=$GRAALVM_HOME
borkdude@m1 ~/dev/babashka (master) $ clj
Clojure 1.11.1
user=> (System/getProperty "java.version")
"19.0.1"
user=>
borkdude@m1 ~/dev/babashka (master) $ clojure -M -m babashka.main
Babashka v1.1.173-SNAPSHOT REPL.
Use :repl/quit or :repl/exit to quit the REPL.
Clojure rocks, Bash reaches.

user=>

lispyclouds13:01:37

yeah i'll investigate a more and report back, seems like a weird thing

borkdude13:01:13

maybe try a fresh clone

lispyclouds14:01:04

rm -rf ~/.m2 then it all magically works 🤷:skin-tone-5: facepalm

lispyclouds14:01:23

one day i'll understand how classpath truly works. thanks for the help anyways

borkdude14:01:50

Perhaps upgrade the clojure CLI if you haven't got the latest

borkdude14:01:00

it has better detection of staleness nowadays

borkdude14:01:24

also -Sforce might help next time