bhauman / devcards

Devcards aims to provide a visual REPL experience for ClojureScript
1.53k stars 116 forks source link

Support for clojurescript 2173 #6

Closed olivergeorge closed 10 years ago

olivergeorge commented 10 years ago

I see in the Readme that clojurescript 2197 or greater is required. That means I can't experiment with swapping out figwheel for LightTable's browser connection.

Unfortunately LightTable seems to have issues with these latest releases and, due to the nature of the changes, there's not a lot of focus on dealing with the CLJS related issues ("primarily clojure bugfixes, stick with 2173").

https://groups.google.com/forum/#!searchin/light-table-discussion/2197/light-table-discussion/X-Ij2rZFboQ/oE_elnAIs7kJ

Any chance you can require an 2173 or are their groovy new features which are needed? I'm hoping it's actually a figwheel related issue which might mean I can step gingerly around it.

If not, perhaps you could add a comment on that thread to emphasise the value of that release to the CLJS community.

olivergeorge commented 10 years ago

Actually, hold that thought. I think the latest clojurescript/cljsbuild versions might work.

bhauman commented 10 years ago

I've been working on LT compatibility today. Did you get it to work?

olivergeorge commented 10 years ago

Yes, I think I'm on top of it now but it's been a bit tricky.

My goal has been to use this workflow:

It can work but I didn't work for me out of the box.

I think the solution is this to change the project.clj dependancy to...

[devcards "0.1.0-SNAPSHOT" :exclusions [[fs]]]

The reason appears to be related to a dependency on fs which appears through devcards. From lein deps :tree I see...

[devcards "0.1.0-20140529.234449-2"] [crate "0.2.4"] [figwheel "0.1.3-20140523.180902-1"] [cljsbuild "1.0.3"] [fs "1.1.2"] <---- THIS IS QUITE OLD [digest "1.4.3"] [http-kit "2.1.16"] [me.raynes/fs "1.4.4"] [org.apache.commons/commons-compress "1.4"] [org.tukaani/xz "1.0"] [watchtower "0.1.1"] [frontier "0.1.0-20140529.235324-2"] [jayq "2.5.1"] [sablono "0.2.16"]

The error would occur when lighttable tries to compile / execute a form for the first time. There's a laggy delay and then this is the error is reported...

Error loading lighttable.nrepl.handler: java.lang.RuntimeException: No such var: fs/cwd, compiling:(lighttable/nrepl/core.clj:21:30)

olivergeorge commented 10 years ago

(I'm having trouble repeating this at the moment. the error is predictable but the fix might not be quite right)

bhauman commented 10 years ago

I'm looking at it right now too. cljsbuild is pulling in the fs 1.1.2

olivergeorge commented 10 years ago

Brilliant. Good luck. I did get it going but in trying to prove it repeatably I managed to lose the combination! A bit out of my depth too.

Really exited to hear you're working on LightTable compatibility. It's a killer combo if you can.

I'm very happy to help with testing if it's helpful.

bhauman commented 10 years ago

Which connection did you use? Light Table UI or project.cjl

olivergeorge commented 10 years ago

Sorry, I'm not sure I understand the question.

In LightTable I was using "Add Client" with the connection type of "Browser" which adds a browser tab within LightTable (the alternative would be Browser External which requires copying a new port number to your index.html each time you boot up LightTable).