lilactown / punk

A data REBL built for the web
Eclipse Public License 2.0
148 stars 5 forks source link

Published versions of the JVM-adapter lack transitive deps #15

Closed christoph-frick closed 5 years ago

christoph-frick commented 5 years ago

Following the README it would seem like just adding the JVM adapter to the leiningen deps would be enough. Yet as seen in the clojars page of the project/version, it references only the core. compojure and aleph are not referenced.

(defproject try-punk "0.1.0-SNAPSHOT"
  :dependencies [[org.clojure/clojure "1.10.0"]]
  :profiles {:dev {:dependencies [[lilactown/punk-adapter-jvm "0.0.7"]]
                   :source-paths ["src" "dev"]}})

And then add the example code to the dev/user.clj. Start lein repl and fails with Caused by: java.io.FileNotFoundException: Could not locate aleph/http__init.class, aleph/http.clj or aleph/http.cljc on classpath

Adding them manually makes that work, but then it fails around wrong requires from frame, which might be another bug.

jvtrigueros commented 5 years ago

I'm also seeing the same issue, I've added these dependencies:

[lilactown/punk-adapter-jvm "0.0.7"]
[aleph "0.4.6"]
[compojure "1.6.1"]

I'm not able to get past the frame issue, looking forward to trying out punk once this is addressed!

lilactown commented 5 years ago

Can you post the errors around frame?

christoph-frick commented 5 years ago
% lein repl      
Exception in thread "main" java.lang.ExceptionInInitializerError
        at clojure.main.<clinit>(main.java:20)
Caused by: Syntax error compiling at (frame/interceptors.cljc:1:1).
        at clojure.lang.Compiler.load(Compiler.java:7647)
        at clojure.lang.RT.loadResourceScript(RT.java:381)
        at clojure.lang.RT.loadResourceScript(RT.java:372)
        at clojure.lang.RT.load(RT.java:463)
        at clojure.lang.RT.load(RT.java:428)
        at clojure.core$load$fn__6824.invoke(core.clj:6126)
        at clojure.core$load.invokeStatic(core.clj:6125)
        at clojure.core$load.doInvoke(core.clj:6109)
18:22 !6 ridcully@ofnir:~/src/scratchpad/try-punk [master] % lein repl
Exception in thread "main" java.lang.ExceptionInInitializerError
        at clojure.main.<clinit>(main.java:20)
Caused by: Syntax error compiling at (frame/interceptors.cljc:1:1).
        at clojure.lang.Compiler.load(Compiler.java:7647)
        at clojure.lang.RT.loadResourceScript(RT.java:381)
        at clojure.lang.RT.loadResourceScript(RT.java:372)
        at clojure.lang.RT.load(RT.java:463)
        at clojure.lang.RT.load(RT.java:428)
        at clojure.core$load$fn__6824.invoke(core.clj:6126)
        at clojure.core$load.invokeStatic(core.clj:6125)
        at clojure.core$load.doInvoke(core.clj:6109)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5908)
        at clojure.core$load_one.invoke(core.clj:5903)
        at clojure.core$load_lib$fn__6765.invoke(core.clj:5948)
        at clojure.core$load_lib.invokeStatic(core.clj:5947)
        at clojure.core$load_lib.doInvoke(core.clj:5928)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$load_libs.invokeStatic(core.clj:5985)
        at clojure.core$load_libs.doInvoke(core.clj:5969)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$require.invokeStatic(core.clj:6007)
        at clojure.core$require.doInvoke(core.clj:6007)
        at clojure.lang.RestFn.invoke(RestFn.java:512)
        at frame.core$eval9339$loading__6706__auto____9340.invoke(core.cljc:1)
        at frame.core$eval9339.invokeStatic(core.cljc:1)
        at frame.core$eval9339.invoke(core.cljc:1)
        at clojure.lang.Compiler.eval(Compiler.java:7176)
        at clojure.lang.Compiler.eval(Compiler.java:7165)
        at clojure.lang.Compiler.load(Compiler.java:7635)
        at clojure.lang.RT.loadResourceScript(RT.java:381)
        at clojure.lang.RT.loadResourceScript(RT.java:372)
        at clojure.lang.RT.load(RT.java:463)
        at clojure.lang.RT.load(RT.java:428)
        at clojure.core$load$fn__6824.invoke(core.clj:6126)
        at clojure.core$load.invokeStatic(core.clj:6125)
        at clojure.core$load.doInvoke(core.clj:6109)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5908)
        at clojure.core$load_one.invoke(core.clj:5903)
        at clojure.core$load_lib$fn__6765.invoke(core.clj:5948)
        at clojure.core$load_lib.invokeStatic(core.clj:5947)
        at clojure.core$load_lib.doInvoke(core.clj:5928)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$load_libs.invokeStatic(core.clj:5985)
        at clojure.core$load_libs.doInvoke(core.clj:5969)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$require.invokeStatic(core.clj:6007)
        at clojure.core$require.doInvoke(core.clj:6007)
        at clojure.lang.RestFn.invoke(RestFn.java:805)
        at punk.adapter.jvm$eval9$loading__6706__auto____10.invoke(jvm.clj:1)
        at punk.adapter.jvm$eval9.invokeStatic(jvm.clj:1)
        at punk.adapter.jvm$eval9.invoke(jvm.clj:1)
        at clojure.lang.Compiler.eval(Compiler.java:7176)
        at clojure.lang.Compiler.eval(Compiler.java:7165)
        at clojure.lang.Compiler.load(Compiler.java:7635)
        at clojure.lang.RT.loadResourceScript(RT.java:381)
        at clojure.lang.RT.loadResourceScript(RT.java:372)
        at clojure.lang.RT.load(RT.java:463)
        at clojure.lang.RT.load(RT.java:428)
        at clojure.core$load$fn__6824.invoke(core.clj:6126)
        at clojure.core$load.invokeStatic(core.clj:6125)
        at clojure.core$load.doInvoke(core.clj:6109)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5908)
        at clojure.core$load_one.invoke(core.clj:5903)
        at clojure.core$load_lib$fn__6765.invoke(core.clj:5948)
        at clojure.core$load_lib.invokeStatic(core.clj:5947)
        at clojure.core$load_lib.doInvoke(core.clj:5928)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$load_libs.invokeStatic(core.clj:5985)
        at clojure.core$load_libs.doInvoke(core.clj:5969)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$require.invokeStatic(core.clj:6007)
        at clojure.core$require.doInvoke(core.clj:6007)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at user$eval3$loading__6706__auto____4.invoke(user.clj:1)
        at user$eval3.invokeStatic(user.clj:1)
        at user$eval3.invoke(user.clj:1)
        at clojure.lang.Compiler.eval(Compiler.java:7176)
        at clojure.lang.Compiler.eval(Compiler.java:7165)
        at clojure.lang.Compiler.load(Compiler.java:7635)
        at clojure.lang.RT.loadResourceScript(RT.java:381)
        at clojure.lang.RT.loadResourceScript(RT.java:368)
        at clojure.lang.RT.maybeLoadResourceScript(RT.java:364)
        at clojure.lang.RT.doInit(RT.java:485)
        at clojure.lang.RT.<clinit>(RT.java:338)
        ... 1 more
Caused by: java.io.FileNotFoundException: Could not locate frame/interop__init.class, frame/interop.clj or frame/interop.cljc on classpath.
        at clojure.lang.RT.load(RT.java:466)
        at clojure.lang.RT.load(RT.java:428)
        at clojure.core$load$fn__6824.invoke(core.clj:6126)
        at clojure.core$load.invokeStatic(core.clj:6125)
        at clojure.core$load.doInvoke(core.clj:6109)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5908)
        at clojure.core$load_one.invoke(core.clj:5903)
        at clojure.core$load_lib$fn__6765.invoke(core.clj:5948)
        at clojure.core$load_lib.invokeStatic(core.clj:5947)
        at clojure.core$load_lib.doInvoke(core.clj:5928)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$load_libs.invokeStatic(core.clj:5985)
        at clojure.core$load_libs.doInvoke(core.clj:5969)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$require.invokeStatic(core.clj:6007)
        at clojure.core$require.doInvoke(core.clj:6007)
        at clojure.lang.RestFn.invoke(RestFn.java:436)
        at frame.interceptors$eval9345$loading__6706__auto____9346.invoke(interceptors.cljc:1)
        at frame.interceptors$eval9345.invokeStatic(interceptors.cljc:1)
        at frame.interceptors$eval9345.invoke(interceptors.cljc:1)
        at clojure.lang.Compiler.eval(Compiler.java:7176)
        at clojure.lang.Compiler.eval(Compiler.java:7165)
        at clojure.lang.Compiler.load(Compiler.java:7635)
        ... 90 more
Subprocess failed
christoph-frick commented 5 years ago

I can provide a repo with the error if that helps

christoph-frick commented 5 years ago

The lilactown/frame/0.0.1/frame-0.0.1.jar only contains a frame/interop.cljs

lilactown commented 5 years ago

Apologies! It looks like I didn't validated the JVM adapter thoroughly after the PR was merged in; it worked with deps.edn, but the project.clj wasn't up to date and the frame was a bit out of date as well.

I have released lilactown/punk-adapter-jvm "0.0.8" with aleph, compojure as well as the correct version of frame.

FYI, I have been working on a massive rewrite of the UI which I hope to release as an alpha in the next couple months. I hope you find the current iteration useful, and please don't hesitate to provide feedback; there's lots of rough edges and the way people want to use it can help shape the future.

I know it's effort though, so I appreciate you reporting this error!

christoph-frick commented 5 years ago

Version 0.0.8 fixes the problems. Thank you. /close