babashka-sci-dev

lispyclouds 2023-01-27T13:01:50.855799Z

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 ๐Ÿงต

โœ… 1
lispyclouds 2023-01-27T13:02:00.499479Z

{: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}}

lispyclouds 2023-01-27T13:03:10.135929Z

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!

borkdude 2023-01-27T13:05:18.025949Z

ls deps.clj?

lispyclouds 2023-01-27T13:06:20.683079Z

$ 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

borkdude 2023-01-27T13:06:54.266239Z

clj
(require '[borkdude.deps])

lispyclouds 2023-01-27T13:07:27.479379Z

that works

lispyclouds 2023-01-27T13:07:44.362319Z

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

borkdude 2023-01-27T13:08:13.846729Z

$ 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=>

lispyclouds 2023-01-27T13:08:49.750869Z

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

borkdude 2023-01-27T13:09:11.494089Z

did you suddenly switch to another jdk?

lispyclouds 2023-01-27T13:10:02.160969Z

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

borkdude 2023-01-27T13:11:06.098839Z

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=>

lispyclouds 2023-01-27T13:11:37.346849Z

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

borkdude 2023-01-27T13:12:13.308939Z

maybe try a fresh clone

lispyclouds 2023-01-27T14:00:04.295229Z

rm -rf ~/.m2 then it all magically works ๐Ÿคท๐Ÿพ facepalm

lispyclouds 2023-01-27T14:01:23.685749Z

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

borkdude 2023-01-27T14:55:50.280119Z

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

borkdude 2023-01-27T14:56:00.176129Z

it has better detection of staleness nowadays

borkdude 2023-01-27T14:56:24.080349Z

also -Sforce might help next time