does anything special need to be done to upgrade to 0.1.2?
my code no longer compiles š
Iām not aware of anything
actually
0.1.1 doesn't work for me either
just what I wrote into release notes, you donāt have to specify all deps dirac needs, they are bundled in the jar
but that was the case since beginning
removing the dependencies didn't help š
23:54:06 figwheel.1 | Exception in thread "main" java.lang.NoClassDefFoundError: clojure/lang/Tuple, compiling:(cljs/repl.cljc:1:1)
23:54:06 figwheel.1 | at clojure.lang.Compiler.load(Compiler.java:7239)
23:54:06 figwheel.1 | at clojure.lang.RT.loadResourceScript(RT.java:371)
23:54:06 figwheel.1 | at clojure.lang.RT.loadResourceScript(RT.java:362)
23:54:06 figwheel.1 | at clojure.lang.RT.load(RT.java:446)
23:54:06 figwheel.1 | at clojure.lang.RT.load(RT.java:412)
23:54:06 figwheel.1 | at clojure.core$load$fn__5448.invoke(core.clj:5866)
23:54:06 figwheel.1 | at clojure.core$load.doInvoke(core.clj:5865)
23:54:06 figwheel.1 | at clojure.lang.RestFn.invoke(RestFn.java:408)
23:54:06 figwheel.1 | at clojure.core$load_one.invoke(core.clj:5671)
23:54:06 figwheel.1 | at clojure.core$load_lib$fn__5397.invoke(core.clj:5711)
23:54:06 figwheel.1 | at clojure.core$load_lib.doInvoke(core.clj:5710)
23:54:06 figwheel.1 | at clojure.lang.RestFn.applyTo(RestFn.java:142)
23:54:06 figwheel.1 | at clojure.core$apply.invoke(core.clj:632)
23:54:06 figwheel.1 | at clojure.core$load_libs.doInvoke(core.clj:5749)
23:54:06 figwheel.1 | at clojure.lang.RestFn.applyTo(RestFn.java:137)
23:54:06 figwheel.1 | at clojure.core$apply.invoke(core.clj:632)
23:54:06 figwheel.1 | at clojure.core$require.doInvoke(core.clj:5832)
23:54:06 figwheel.1 | at clojure.lang.RestFn.invoke(RestFn.java:3204)
23:54:06 figwheel.1 | at figwheel_sidecar.repl$eval9$loading__5340__auto____10.invoke(repl.clj:1)
23:54:06 figwheel.1 | at figwheel_sidecar.repl$eval9.invoke(repl.clj:1)
23:54:06 figwheel.1 | at clojure.lang.Compiler.eval(Compiler.java:6782)
23:54:06 figwheel.1 | at clojure.lang.Compiler.eval(Compiler.java:6771)
23:54:06 figwheel.1 | at clojure.lang.Compiler.load(Compiler.java:7227)
...
I realize it says figwheel, but this doesn't happen on dirac 0.1.0
did you upgrade to the latest figwheel? with that dependency fix I linked?
also make sure you donāt have mixed Clojure 1.7 and 1.8 deps, that Tuple thing could be confusion between clojure versions
does 0.1.2 require clojure 1.8?
yes, I think
yes, it has scope āprovidedā
https://github.com/binaryage/dirac/blob/master/project.clj#L10
I wonder why you are having problems with figwheel_sidecar, do you include dirac agent in your figwheel repl?
I don't think so
where does that figwheel_sidecar come from? this is not dirac agent, is it your code?
oh sorry
this is me trying to compile the code with the lein figwheel
command
anyhow, it looks like upgrading to clojure 1.8 solved the problem
although I'm not sure if I can safely upgrade the clojure version on the project š
dirac has scope āprovidedā so it should inherit your clojure version, if specified
try lein deps :tree
and see who is depending on what and what version wins
I don't see clojure 1.8 anywhere in the output š
not sure what this bit of the output means:
[org.clojure/clojure "1.7.0" :exclusions [[org.clojure/clojurescript] [org.clojure/clojure]]]
looking at the history, I'm inclined to believe that the clojure version change is causing this
since that change was made between 0.1.0 and 0.1.1
which is the same point where this is breaking for me š
ok, where you include dirac, try to put org.clojure/clojure into :exclusions
so you donāt bring diracās clojure and you use your own
I seem to be able to reproduce this on the demo project when I change the clojure version to 1.7.0 as well
I tried putting org.clojure/clojure into exclusions but that didn't seem to work š
ok, Iām going to try it here
on the demo project
@frank: a shot in the dark, but are you sure you have the appropriate Chrome plugin version?
When I updated dirac to 0.1.2 but I forgot about plugin the REPL was hanging on connect and I later noticed NPEs in logs.
Also Tuple
? I thought it had been rejected.
I haven't had the chance to test the chrome plugin yet since upgrading
still at the point where I'm trying to compile the cljs
Iām able to reproduce it here
ah ok good to know I'm not crazy :simple_smile:
how the hell can I figure out what is introducing a dependency displayed in lein deps :tree
Doesn't what's it child of introduce it? Though it's been a while since I've used lein deps tree
I think this has to do something with how dirac bundles all deps into āuberjarā althought I never told lein to do that
it looks the code is AOTed wiht Clojure 1.8 or something and it crashes when included into environment with Clojure 1.7 (my theory)(
I will try to prepare a new release with dirac sources only, didnāt have energy yesterday to investigate this
I used lein jar
and lein deploy clojars
which works just fine in my other projects
ok, the problem is caused by https://github.com/binaryage/dirac/blob/master/project.clj#L26
that :main causes bundling all dependencies and AOTing them inside dirac.jar
that is why 0.1.0 worked for your @frank, and 0.1.1 does not
Iām going to cut a new release without all the crap,
ah I see
I did spot the huge jar files size of 0.1.2, but I compared it only to 0.1.1, not to 0.1.0 - otherwise I would spot the difference
looking forward to it!
just pushed it to clojars, bump dirac version to 0.1.3 and it should work
(testing)
works for me in the demo project with both 1.7 and 1.8
now when I think about it more, it makes sense, AOTed code is probably fragile (I can imagine, Iām not a java guy)
a side note: in the demo I noticed something it bringing in dependency [org.clojure/tools.nrepl ā0.2.10ā], lein deps :tree does not tell me who
there is newer version 0.2.12 (referenced by dirac) but that 0.2.10 wins for some reason
btw. @jaen yesterday I almost switched to boot, because of inconsistency how lein deals with ācheckoutsā dependencies, I needed to read my project version during runtime and it is non-trivial task to achieve, and impossible when you want to use checkouts dependencies
but then I realized rewriting all my project.clj files would take me several hours, maybe days with learning boot, so I decided to do it dirty way: have version in multiple places and use some bash scripts to keep them in sync: https://github.com/binaryage/dirac/blob/master/scripts/update-versions.sh
Hah, I think it's for example what Clojurescript does as well - just has a script to update versions when building.
But yeah, rewriting the project file into a boot build script might have taken a while, but if you feel compelled to try it now, then Modern Cljs series is a really good introduction.
I will switch eventually. bootās design is great.
also I like how they deal with ācheckouts depsā feature, you can watch dependency project and continuously install it into local maven repo on every change, other boot watch task can trigger rebuild when that dependency changes
this way you get exact behaviour like it would be installed by hand or from clojars
not some āemulationā by parsing dependenciesā project.clj files like lein does
I think they are not 100% satisfied with that, since I remember some talk about making checkout deps better, but not sure what's the plan exactly.