Hiya! I've just tried bumping kaocha to the current release (v1.88.1376) and see that kaocha might no longer be compatible with clojure 1.9? I'll elaborate in thread.
Given empty folder with deps.edn:
{:deps {org.clojure/clojure {:mvn/version "1.9.0"} }
:aliases
{:test {:extra-deps {lambdaisland/kaocha {:mvn/version "1.88.1376"}}
:main-opts ["-m" "kaocha.runner"]}}}
If I run:
clojure -M:test
I see:
Exception in thread "main" java.lang.ClassCastException: class clojure.lang.Var cannot be cast to class java.lang.String (clojure.lang.Var is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap'), compiling:(clojure/core/specs/alpha.clj:4:1), compiling:(kaocha/version_check.clj:1:1)
at clojure.lang.Compiler.checkSpecs(Compiler.java:6891)
at clojure.lang.Compiler.macroexpand1(Compiler.java:6907)
at clojure.lang.Compiler.macroexpand(Compiler.java:6972)
at clojure.lang.Compiler.eval(Compiler.java:7046)
at clojure.lang.Compiler.load(Compiler.java:7514)
at clojure.lang.RT.loadResourceScript(RT.java:379)
at clojure.lang.RT.loadResourceScript(RT.java:370)
at clojure.lang.RT.load(RT.java:460)
at clojure.lang.RT.load(RT.java:426)
at clojure.core$load$fn__6548.invoke(core.clj:6046)
at clojure.core$load.invokeStatic(core.clj:6045)
at clojure.core$load.doInvoke(core.clj:6029)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5848)
at clojure.core$load_one.invoke(core.clj:5843)
at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
at clojure.core$load_lib.invokeStatic(core.clj:5887)
at clojure.core$load_lib.doInvoke(core.clj:5868)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:659)
at clojure.core$load_libs.invokeStatic(core.clj:5925)
at clojure.core$load_libs.doInvoke(core.clj:5909)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:659)
at clojure.core$require.invokeStatic(core.clj:5947)
at clojure.core$require.doInvoke(core.clj:5947)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at user$eval11.invokeStatic(runner.clj:1)
at user$eval11.invoke(runner.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:7062)
at clojure.lang.Compiler.load(Compiler.java:7514)
at clojure.lang.RT.loadResourceScript(RT.java:379)
at clojure.lang.RT.loadResourceScript(RT.java:370)
at clojure.lang.RT.load(RT.java:460)
at clojure.lang.RT.load(RT.java:426)
at clojure.core$load$fn__6548.invoke(core.clj:6046)
at clojure.core$load.invokeStatic(core.clj:6045)
at clojure.core$load.doInvoke(core.clj:6029)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5848)
at clojure.core$load_one.invoke(core.clj:5843)
at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
at clojure.core$load_lib.invokeStatic(core.clj:5887)
at clojure.core$load_lib.doInvoke(core.clj:5868)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:659)
at clojure.core$load_libs.invokeStatic(core.clj:5925)
at clojure.core$load_libs.doInvoke(core.clj:5909)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:659)
at clojure.core$require.invokeStatic(core.clj:5947)
at clojure.main$main_opt.invokeStatic(main.clj:317)
at clojure.main$main_opt.invoke(main.clj:313)
at clojure.main$main.invokeStatic(main.clj:424)
at clojure.main$main.doInvoke(main.clj:387)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.main.main(main.java:37)
Caused by: java.lang.ClassCastException: class clojure.lang.Var cannot be cast to class java.lang.String (clojure.lang.Var is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap'), compiling:(clojure/core/specs/alpha.clj:4:1)
at clojure.lang.Compiler.load(Compiler.java:7526)
at clojure.lang.RT.loadResourceScript(RT.java:379)
at clojure.lang.RT.loadResourceScript(RT.java:370)
at clojure.lang.RT.load(RT.java:460)
at clojure.lang.RT.load(RT.java:426)
at clojure.lang.Compiler.ensureMacroCheck(Compiler.java:6877)
at clojure.lang.Compiler.checkSpecs(Compiler.java:6889)
... 57 more
Caused by: java.lang.ClassCastException: class clojure.lang.Var cannot be cast to class java.lang.String (clojure.lang.Var is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap')
at clojure.core$symbol.invokeStatic(core.clj:579)
at clojure.core$symbol.invoke(core.clj:574)
at clojure.spec.alpha$__GT_sym.invokeStatic(alpha.clj:309)
at clojure.spec.alpha$__GT_sym.invoke(alpha.clj:305)
at clojure.spec.alpha$res.invokeStatic(alpha.clj:323)
at clojure.spec.alpha$res.invoke(alpha.clj:320)
at clojure.spec.alpha$res$fn__1883.invoke(alpha.clj:324)
at clojure.walk$walk.invokeStatic(walk.clj:50)
at clojure.walk$postwalk.invokeStatic(walk.clj:52)
at clojure.walk$postwalk.invoke(walk.clj:52)
at clojure.core$partial$fn__5561.invoke(core.clj:2616)
at clojure.core$map$fn__5587.invoke(core.clj:2747)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.RT.seq(RT.java:528)
at clojure.core$seq__5124.invokeStatic(core.clj:137)
at clojure.core$apply.invokeStatic(core.clj:652)
at clojure.walk$walk.invokeStatic(walk.clj:44)
at clojure.walk$postwalk.invokeStatic(walk.clj:52)
at clojure.walk$postwalk.invoke(walk.clj:52)
at clojure.spec.alpha$res.invokeStatic(alpha.clj:324)
at clojure.spec.alpha$res.invoke(alpha.clj:320)
at clojure.spec.alpha$def.invokeStatic(alpha.clj:354)
at clojure.spec.alpha$def.invoke(alpha.clj:347)
at clojure.lang.AFn.applyToHelper(AFn.java:165)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.lang.Compiler.macroexpand1(Compiler.java:6912)
at clojure.lang.Compiler.macroexpand(Compiler.java:6972)
at clojure.lang.Compiler.eval(Compiler.java:7046)
at clojure.lang.Compiler.load(Compiler.java:7514)
... 63 more
If I bump deps.edn clojure version to 1.10.3 same test yields an expected:
WARNING: Did not load a configuration file and using the defaults.
This is fine for experimenting, but for long-term use, we recommend creating a configuration file to avoid changes in behavior between releases.
To create a configuration file using the current defaults and configuration file location, create a file named tests.edn that contains '#kaocha/v1 {}'.
WARNING: In :test-paths, no such file or directory: test
WARNING: No tests were found. This may be an issue in your Kaocha test configuration. To investigate, check the :test-paths and :ns-patterns keys in tests.edn.Leaving clojure version at 1.9.0 and downgrading kaocha to previous release of 1.87.1366 also works fine.
If new min clojure version is 1.10 that seems fine, but kaocha README currently states "Kaocha requires Clojure 1.9 or later."
Happy to transcribe the above to a git issue if that is helpful.
that's certainly not intentional, not sure from skimming the above what's going on. A git issue would be appreciated.
Thanks for following up! Here's an issue for you https://github.com/lambdaisland/kaocha/issues/433