Fork me on GitHub
#hyperfiddle
<
2022-05-27
>
Daniel Jomphe15:05:27

Photon is getting too much love these days ☺️, allow me to bring RCF in focus just a bit. Here's me wondering if it would be fine for RCF tests forms to print a newline after their last test?

Geoffrey Gaillard17:05:10

This is welcome 😄 The concept of a "last test" in RCF is not clear. An RCF test block is just an expression. Adding a newline at the end of each test could be is a solution (in the reporter) Using a test runner is another one.

Dustin Getz20:05:24

yeah agree this needs fixing but not sure how. we do have monkey patches that hook into the module loader in clj and cljs that we could reconsider

nottmey18:05:17

When I do this: (adding com.datomic/dev-local)

{:paths   ["src" "resources"]
 :deps    {ch.qos.logback/logback-classic {:mvn/version "1.2.11"}
           ch.qos.logback/logback-core    {:mvn/version "1.2.11"}
           com.datomic/client-api         {:mvn/version "1.0.58"}
           hyperfiddle/photon             {:local/root "../photon"}
           org.clojure/clojure            {:mvn/version "1.11.1"}
           org.clojure/clojurescript      {:mvn/version "1.11.4"}
           thheller/shadow-cljs           {:mvn/version "2.18.0"}}
 :aliases {:dev {:extra-deps {com.datomic/dev-local {:mvn/version "1.0.243"}}
                 :exec-fn    user/main
                 :exec-args  {}}}}
I get a com.google.javascript.jscomp.deps.ModuleLoader Error … (see thread) This seems like a ClojureScript Error, but com.datomic/dev-local should be a Server-Side only dependency. How do I configure it to only be included in the server side?

1
nottmey18:05:40

Exception in thread "main" Syntax error macroexpanding at (closure.clj:77:5).
	at clojure.lang.Compiler$StaticMethodExpr.eval(Compiler.java:1750)
	at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3713)
	at clojure.lang.Compiler$DefExpr.eval(Compiler.java:457)
	at clojure.lang.Compiler.eval(Compiler.java:7199)
	at clojure.lang.Compiler.load(Compiler.java:7653)
	at clojure.lang.RT.loadResourceScript(RT.java:381)
	at clojure.lang.RT.loadResourceScript(RT.java:372)
	at clojure.lang.RT.load(RT.java:459)
	at clojure.lang.RT.load(RT.java:424)
	at clojure.core$load$fn__6908.invoke(core.clj:6161)
	at clojure.core$load.invokeStatic(core.clj:6160)
	at clojure.core$load.doInvoke(core.clj:6144)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5933)
	at clojure.core$load_one.invoke(core.clj:5928)
	at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
	at clojure.core$load_lib.invokeStatic(core.clj:5974)
	at clojure.core$load_lib.doInvoke(core.clj:5953)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$load_libs.invokeStatic(core.clj:6016)
	at clojure.core$load_libs.doInvoke(core.clj:6000)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$require.invokeStatic(core.clj:6038)
	at clojure.core$require.doInvoke(core.clj:6038)
	at clojure.lang.RestFn.invoke(RestFn.java:551)
	at shadow.build.js_support$eval14638$loading__6789__auto____14639.invoke(js_support.clj:1)
	at shadow.build.js_support$eval14638.invokeStatic(js_support.clj:1)
	at shadow.build.js_support$eval14638.invoke(js_support.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7194)
	at clojure.lang.Compiler.eval(Compiler.java:7183)
	at clojure.lang.Compiler.load(Compiler.java:7653)
	at clojure.lang.RT.loadResourceScript(RT.java:381)
	at clojure.lang.RT.loadResourceScript(RT.java:372)
	at clojure.lang.RT.load(RT.java:459)
	at clojure.lang.RT.load(RT.java:424)
	at clojure.core$load$fn__6908.invoke(core.clj:6161)
	at clojure.core$load.invokeStatic(core.clj:6160)
	at clojure.core$load.doInvoke(core.clj:6144)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5933)
	at clojure.core$load_one.invoke(core.clj:5928)
	at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
	at clojure.core$load_lib.invokeStatic(core.clj:5974)
	at clojure.core$load_lib.doInvoke(core.clj:5953)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$load_libs.invokeStatic(core.clj:6016)
	at clojure.core$load_libs.doInvoke(core.clj:6000)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$require.invokeStatic(core.clj:6038)
	at clojure.core$require.doInvoke(core.clj:6038)
	at clojure.lang.RestFn.invoke(RestFn.java:619)
	at shadow.build.resolve$eval12786$loading__6789__auto____12787.invoke(resolve.clj:1)
	at shadow.build.resolve$eval12786.invokeStatic(resolve.clj:1)
	at shadow.build.resolve$eval12786.invoke(resolve.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7194)
	at clojure.lang.Compiler.eval(Compiler.java:7183)
	at clojure.lang.Compiler.load(Compiler.java:7653)
	at clojure.lang.RT.loadResourceScript(RT.java:381)
	at clojure.lang.RT.loadResourceScript(RT.java:372)
	at clojure.lang.RT.load(RT.java:459)
	at clojure.lang.RT.load(RT.java:424)
	at clojure.core$load$fn__6908.invoke(core.clj:6161)
	at clojure.core$load.invokeStatic(core.clj:6160)
	at clojure.core$load.doInvoke(core.clj:6144)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5933)
	at clojure.core$load_one.invoke(core.clj:5928)
	at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
	at clojure.core$load_lib.invokeStatic(core.clj:5974)
	at clojure.core$load_lib.doInvoke(core.clj:5953)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$load_libs.invokeStatic(core.clj:6016)
	at clojure.core$load_libs.doInvoke(core.clj:6000)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$require.invokeStatic(core.clj:6038)
	at clojure.core$require.doInvoke(core.clj:6038)
	at clojure.lang.RestFn.invoke(RestFn.java:2793)
	at shadow.build.api$eval12778$loading__6789__auto____12779.invoke(api.clj:1)
	at shadow.build.api$eval12778.invokeStatic(api.clj:1)
	at shadow.build.api$eval12778.invoke(api.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7194)
	at clojure.lang.Compiler.eval(Compiler.java:7183)
	at clojure.lang.Compiler.load(Compiler.java:7653)
	at clojure.lang.RT.loadResourceScript(RT.java:381)
	at clojure.lang.RT.loadResourceScript(RT.java:372)
	at clojure.lang.RT.load(RT.java:459)
	at clojure.lang.RT.load(RT.java:424)
	at clojure.core$load$fn__6908.invoke(core.clj:6161)
	at clojure.core$load.invokeStatic(core.clj:6160)
	at clojure.core$load.doInvoke(core.clj:6144)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5933)
	at clojure.core$load_one.invoke(core.clj:5928)
	at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
	at clojure.core$load_lib.invokeStatic(core.clj:5974)
	at clojure.core$load_lib.doInvoke(core.clj:5953)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$load_libs.invokeStatic(core.clj:6016)
	at clojure.core$load_libs.doInvoke(core.clj:6000)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$require.invokeStatic(core.clj:6038)
	at clojure.core$require.doInvoke(core.clj:6038)
	at clojure.lang.RestFn.invoke(RestFn.java:2793)
	at shadow.build$eval12407$loading__6789__auto____12408.invoke(build.clj:1)
	at shadow.build$eval12407.invokeStatic(build.clj:1)
	at shadow.build$eval12407.invoke(build.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7194)
	at clojure.lang.Compiler.eval(Compiler.java:7183)
	at clojure.lang.Compiler.load(Compiler.java:7653)
	at clojure.lang.RT.loadResourceScript(RT.java:381)
	at clojure.lang.RT.loadResourceScript(RT.java:372)
	at clojure.lang.RT.load(RT.java:459)
	at clojure.lang.RT.load(RT.java:424)
	at clojure.core$load$fn__6908.invoke(core.clj:6161)
	at clojure.core$load.invokeStatic(core.clj:6160)
	at clojure.core$load.doInvoke(core.clj:6144)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5933)
	at clojure.core$load_one.invoke(core.clj:5928)
	at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
	at clojure.core$load_lib.invokeStatic(core.clj:5974)
	at clojure.core$load_lib.doInvoke(core.clj:5953)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$load_libs.invokeStatic(core.clj:6016)
	at clojure.core$load_libs.doInvoke(core.clj:6000)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$require.invokeStatic(core.clj:6038)
	at clojure.core$require.doInvoke(core.clj:6038)
	at clojure.lang.RestFn.invoke(RestFn.java:3204)
	at shadow.cljs.devtools.api$eval12270$loading__6789__auto____12271.invoke(api.clj:1)
	at shadow.cljs.devtools.api$eval12270.invokeStatic(api.clj:1)
	at shadow.cljs.devtools.api$eval12270.invoke(api.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7194)
	at clojure.lang.Compiler.eval(Compiler.java:7183)
	at clojure.lang.Compiler.load(Compiler.java:7653)
	at clojure.lang.RT.loadResourceScript(RT.java:381)
	at clojure.lang.RT.loadResourceScript(RT.java:372)
	at clojure.lang.RT.load(RT.java:459)
	at clojure.lang.RT.load(RT.java:424)
	at clojure.core$load$fn__6908.invoke(core.clj:6161)
	at clojure.core$load.invokeStatic(core.clj:6160)
	at clojure.core$load.doInvoke(core.clj:6144)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5933)
	at clojure.core$load_one.invoke(core.clj:5928)
	at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
	at clojure.core$load_lib.invokeStatic(core.clj:5974)
	at clojure.core$load_lib.doInvoke(core.clj:5953)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$load_libs.invokeStatic(core.clj:6016)
	at clojure.core$load_libs.doInvoke(core.clj:6000)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:669)
	at clojure.core$require.invokeStatic(core.clj:6038)
	at clojure.core$require.doInvoke(core.clj:6038)
	at clojure.lang.RestFn.invoke(RestFn.java:482)
	at user$eval138$loading__6789__auto____139.invoke(user.clj:1)
	at user$eval138.invokeStatic(user.clj:1)
	at user$eval138.invoke(user.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7194)
	at clojure.lang.Compiler.eval(Compiler.java:7183)
	at clojure.lang.Compiler.load(Compiler.java:7653)
	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:486)
	at clojure.lang.RT.init(RT.java:467)
	at clojure.main.main(main.java:38)
Caused by: java.lang.NoSuchMethodError: 'java.util.stream.Collector com.google.common.collect.ImmutableSortedSet.toImmutableSortedSet(java.util.Comparator)'
	at com.google.javascript.jscomp.deps.ModuleLoader.createRootPaths(ModuleLoader.java:257)
	at com.google.javascript.jscomp.deps.ModuleLoader.<init>(ModuleLoader.java:147)
	at com.google.javascript.jscomp.deps.ModuleLoader.<init>(ModuleLoader.java:48)
	at com.google.javascript.jscomp.deps.ModuleLoader$Builder.build(ModuleLoader.java:139)
	at com.google.javascript.jscomp.deps.ModuleLoader.<clinit>(ModuleLoader.java:408)
	at com.google.javascript.jscomp.DiagnosticGroups.<clinit>(DiagnosticGroups.java:182)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:167)
	at clojure.lang.Compiler$StaticMethodExpr.eval(Compiler.java:1743)
	... 178 more

Geoffrey Gaillard18:05:08

My first thought is a closure compiler dependency version conflict. This hypothesis can be verified by looking at the output of clj -A:dev -Stree

nottmey18:05:49

➜ clj -A:dev -Stree
org.clojure/clojure 1.11.1
  . org.clojure/spec.alpha 0.3.218
  . org.clojure/core.specs.alpha 0.2.62
ch.qos.logback/logback-classic 1.2.11
  X ch.qos.logback/logback-core 1.2.11 :use-top
  . org.slf4j/slf4j-api 1.7.32
ch.qos.logback/logback-core 1.2.11
hyperfiddle/photon /Users/m/Projects/photon
  . org.eclipse.jetty/jetty-servlet 9.4.44.v20210927
    . org.eclipse.jetty/jetty-security 9.4.44.v20210927
      . org.eclipse.jetty/jetty-server 9.4.44.v20210927
    . org.eclipse.jetty/jetty-util-ajax 9.4.44.v20210927
      . org.eclipse.jetty/jetty-util 9.4.44.v20210927
  . org.clojure/tools.logging 1.2.4
  . org.clojure/tools.analyzer.jvm 1.2.2
    . org.clojure/tools.analyzer 1.1.0
    . org.clojure/core.memoize 1.0.253
    . org.ow2.asm/asm 9.2
    . org.clojure/tools.reader 1.3.6
  . org.hsluv/hsluv 0.2
  . com.cognitect/transit-cljs 0.8.269
    . com.cognitect/transit-js 0.8.874
  X org.clojure/clojurescript 1.11.4 :use-top
  . org.eclipse.jetty.websocket/websocket-api 9.4.44.v20210927
  . org.eclipse.jetty.websocket/websocket-servlet 9.4.44.v20210927
    . org.eclipse.jetty.websocket/websocket-api 9.4.44.v20210927
    . javax.servlet/javax.servlet-api 3.1.0
  . com.cognitect/transit-clj 1.0.329
    . com.cognitect/transit-java 1.0.362
      . com.fasterxml.jackson.core/jackson-core 2.8.7
      . org.msgpack/msgpack 0.6.12
        . com.googlecode.json-simple/json-simple 1.1.1
        . org.javassist/javassist 3.18.1-GA
      . javax.xml.bind/jaxb-api 2.3.0
  . missionary/missionary b.27-SNAPSHOT
    X org.clojure/clojurescript 1.10.879 :use-top
    . org.reactivestreams/reactive-streams 1.0.3
    . cloroutine/cloroutine 10
      X org.clojure/clojurescript 1.10.520 :use-top
      X org.clojure/tools.analyzer.jvm 0.7.2 :older-version
  . nextjournal/clojure-mode  699a445
    . applied-science/js-interop 0.2.5
    X org.clojure/clojurescript 1.10.866 :use-top
  . hyperfiddle/rcf  bcd9900
  . datascript/datascript 1.3.12
    . persistent-sorted-set/persistent-sorted-set 0.1.4
  . io.replikativ/datahike 0.4.1491
    . io.lambdaforge/datalog-parser 0.1.11
    . io.replikativ/hitchhiker-tree 0.1.11
      X org.clojure/clojurescript 1.10.773 :use-top
      . com.taoensso/carmine 2.20.0
        X com.taoensso/encore 2.127.0 :older-version
        X com.taoensso/timbre 4.10.0 :older-version
        . com.taoensso/nippy 2.14.0
          X org.clojure/tools.reader 1.1.1 :older-version
          X com.taoensso/encore 2.93.0 :older-version
          . org.iq80.snappy/snappy 0.4
          . org.tukaani/xz 1.6
          . net.jpountz.lz4/lz4 1.3
        . org.apache.commons/commons-pool2 2.4.2
        X commons-codec/commons-codec 1.13 :older-version
      X org.clojure/core.rrb-vector 0.1.1 :older-version
      X org.clojure/core.memoize 1.0.236 :older-version
      X org.clojure/core.cache 1.0.207 :older-version
      . io.replikativ/konserve 0.5.1
        . io.replikativ/incognito 0.2.5
        . fress/fress 0.3.1
          X org.clojure/clojurescript 1.10.339 :use-top
          . org.clojure/data.fressian 0.2.1
        X org.clojure/core.async 0.4.490 :older-version
        . org.clojure/data.fressian 0.2.1
          . org.fressian/fressian 0.6.6
        . io.replikativ/hasch 0.3.5
          X io.replikativ/incognito 0.2.2 :older-version
          . org.clojure/data.codec 0.1.1
        . org.clojars.mmb90/cljs-cache 0.1.4
          X org.clojure/core.async 0.2.385 :older-version
          X org.clojure/clojurescript 1.9.89 :use-top
          . adzerk/boot-test 1.1.2
          . crisptrutski/boot-cljs-test 0.2.2-20160402.204547-3
          . tailrecursion/cljs-priority-map 1.2.1
            X org.clojure/clojurescript 1.7.170 :use-top
    . mvxcvi/clj-cbor 1.1.0
    X org.clojure/clojurescript 1.11.4 :use-top
    . io.replikativ/zufall 0.1.0
    . environ/environ 1.2.0
    . com.taoensso/timbre 5.2.1
      . com.taoensso/encore 3.21.0
        . org.clojure/tools.reader 1.3.6
        . com.taoensso/truss 1.6.0
      . io.aviso/pretty 1.1.1
    . persistent-sorted-set/persistent-sorted-set 0.1.4
    . junit/junit 4.13.2
      . org.hamcrest/hamcrest-core 1.3
    . org.clojure/tools.reader 1.3.6
    . io.replikativ/superv.async 0.3.43
      X org.clojure/clojurescript 1.11.4 :use-top
      . org.clojure/core.async 1.5.648
  . org.eclipse.jetty.websocket/websocket-server 9.4.44.v20210927
    . org.eclipse.jetty.websocket/websocket-common 9.4.44.v20210927
      . org.eclipse.jetty.websocket/websocket-api 9.4.44.v20210927
      . org.eclipse.jetty/jetty-util 9.4.44.v20210927
      . org.eclipse.jetty/jetty-io 9.4.44.v20210927
    . org.eclipse.jetty.websocket/websocket-client 9.4.44.v20210927
      . org.eclipse.jetty/jetty-client 9.4.44.v20210927
        . org.eclipse.jetty/jetty-http 9.4.44.v20210927
        . org.eclipse.jetty/jetty-io 9.4.44.v20210927
      . org.eclipse.jetty/jetty-util 9.4.44.v20210927
      . org.eclipse.jetty/jetty-io 9.4.44.v20210927
      . org.eclipse.jetty.websocket/websocket-common 9.4.44.v20210927
    . org.eclipse.jetty.websocket/websocket-servlet 9.4.44.v20210927
    . org.eclipse.jetty/jetty-servlet 9.4.44.v20210927
    . org.eclipse.jetty/jetty-http 9.4.44.v20210927
      . org.eclipse.jetty/jetty-util 9.4.44.v20210927
      . org.eclipse.jetty/jetty-io 9.4.44.v20210927
  . org.eclipse.jetty/jetty-server 9.4.44.v20210927
    . javax.servlet/javax.servlet-api 3.1.0
    . org.eclipse.jetty/jetty-http 9.4.44.v20210927
    . org.eclipse.jetty/jetty-io 9.4.44.v20210927
      . org.eclipse.jetty/jetty-util 9.4.44.v20210927
org.clojure/clojurescript 1.11.4
  X com.google.javascript/closure-compiler-unshaded v20210808 :superseded
  . org.clojure/google-closure-library 0.0-20211011-0726fdeb
    . org.clojure/google-closure-library-third-party 0.0-20211011-0726fdeb
  X org.clojure/data.json 0.2.6 :superseded
  X org.clojure/tools.reader 1.3.3 :superseded
  X com.cognitect/transit-clj 0.8.309 :older-version
thheller/shadow-cljs 2.18.0
  . org.clojure/data.json 2.4.0 :newer-version
  . org.clojure/tools.cli 1.0.206
  . org.clojure/tools.reader 1.3.6 :newer-version
  . nrepl/nrepl 0.9.0
  . cider/piggieback 0.5.3
  . com.cognitect/transit-clj 1.0.329
  . com.cognitect/transit-cljs 0.8.269
  . org.clojure/core.async 1.5.648
    . org.clojure/tools.analyzer.jvm 1.2.2
  X org.clojure/clojurescript 1.11.4 :use-top
  . com.google.javascript/closure-compiler-unshaded v20220301 :newer-version
  . org.clojure/google-closure-library 0.0-20211011-0726fdeb
  . org.clojure/google-closure-library-third-party 0.0-20211011-0726fdeb
  . thheller/shadow-util 0.7.0
    . hiccup/hiccup 1.0.5
  . thheller/shadow-client 1.3.3
    X org.clojure/core.async 0.3.443 :older-version
    . hiccup/hiccup 1.0.5
  . thheller/shadow-undertow 0.2.0
    X org.clojure/core.async 1.3.610 :older-version
    . io.undertow/undertow-core 2.2.4.Final
      . org.jboss.logging/jboss-logging 3.4.1.Final
      . org.jboss.xnio/xnio-api 3.8.0.Final
        . org.wildfly.common/wildfly-common 1.5.2.Final
        . org.wildfly.client/wildfly-client-config 1.0.1.Final
          X org.jboss.logging/jboss-logging 3.3.1.Final :older-version
          X org.wildfly.common/wildfly-common 1.2.0.Final :older-version
      . org.jboss.xnio/xnio-nio 3.8.0.Final
        . org.jboss.xnio/xnio-api 3.8.0.Final
          X org.jboss.threads/jboss-threads 2.3.3.Final :older-version
      . org.jboss.threads/jboss-threads 3.1.0.Final
        . org.jboss.logging/jboss-logging 3.4.1.Final
  . thheller/shadow-cljsjs 0.0.22
  . hiccup/hiccup 1.0.5
  . ring/ring-core 1.9.5
    . ring/ring-codec 1.1.3
      . commons-codec/commons-codec 1.15
    . commons-io/commons-io 2.10.0
    . commons-fileupload/commons-fileupload 1.4
      X commons-io/commons-io 2.2 :older-version
    . crypto-random/crypto-random 1.2.1
      . commons-codec/commons-codec 1.15
    . crypto-equality/crypto-equality 1.0.0
  . io.methvin/directory-watcher 0.15.1
    . net.java.dev.jna/jna 5.7.0
    X org.slf4j/slf4j-api 1.7.30 :older-version
  . expound/expound 0.9.0
  . fipp/fipp 0.6.25
    . org.clojure/core.rrb-vector 0.1.2
  . com.bhauman/cljs-test-display 0.1.1
com.datomic/dev-local 1.0.243
  . com.datomic/client 1.0.126
    . com.cognitect/anomalies 0.1.12
    . com.datomic/client-api 1.0.58
    . com.datomic/client-impl-shared 1.0.98
      . com.cognitect/hmac-authn 0.1.210
        . commons-codec/commons-codec 1.15
        . com.cognitect/anomalies 0.1.12
        . org.clojure/core.async 1.5.648
      X com.cognitect/http-client 1.0.111 :excluded
      . com.cognitect/transit-clj 1.0.329
    . com.datomic/query-support 0.8.28
    . org.clojure/core.async 1.5.648
  . com.cognitect/anomalies 0.1.12
  . com.datomic/client-api 1.0.58
    . org.clojure/core.async 1.5.648
  . com.datomic/client-impl-shared 1.0.98
    . com.cognitect/anomalies 0.1.12
    . org.clojure/core.async 1.5.648
  . com.datomic/query-support 0.8.28
  . org.clojure/core.async 1.5.648
  . org.clojure/tools.analyzer.jvm 1.2.2
  . org.clojure/tools.analyzer 1.1.0
  . org.clojure/core.memoize 1.0.253
    . org.clojure/core.cache 1.0.225
  . org.clojure/core.cache 1.0.225
    . org.clojure/data.priority-map 1.1.0
  . org.clojure/data.priority-map 1.1.0
  . org.ow2.asm/asm 9.2
  . org.clojure/tools.reader 1.3.6
  X org.clojure/spec.alpha 0.1.143 :older-version
  X org.clojure/core.specs.alpha 0.1.24 :older-version
  . com.google.guava/guava 31.0.1-android
    . com.google.guava/failureaccess 1.0.1
    . com.google.guava/listenablefuture 9999.0-empty-to-avoid-conflict-with-guava
    . com.google.code.findbugs/jsr305 3.0.2
    . org.checkerframework/checker-qual 3.12.0
    . org.checkerframework/checker-compat-qual 2.5.5
    . com.google.errorprone/error_prone_annotations 2.7.1
    . com.google.j2objc/j2objc-annotations 1.3
  . com.google.guava/failureaccess 1.0.1
  . com.google.guava/listenablefuture 9999.0-empty-to-avoid-conflict-with-guava
  . com.google.code.findbugs/jsr305 3.0.2
  . org.checkerframework/checker-qual 3.12.0
  . org.checkerframework/checker-compat-qual 2.5.5
  . com.google.errorprone/error_prone_annotations 2.7.1
  . com.google.j2objc/j2objc-annotations 1.3
  . org.fressian/fressian 0.6.6

nottmey18:05:30

If it’s a version conflict, I don’t see it 😅

Dustin Getz20:05:11

can you show us the app file?

nottmey20:05:52

basically it’s https://github.com/nottmey/photon-datomic-viewer only com.datomic/dev-local is uncommented in the deps file

nottmey23:05:07

(sadly this is blocking me in implementing the database access 😕)

Dustin Getz23:05:35

i'm afk and the team is asleep- i will take a look first thing tomorrow morning

👌 1
Dustin Getz23:05:48

I've reproduced it

Dustin Getz23:05:11

I removed all Photon dependencies and can still reproduce it, this is a Datomic issue

Dustin Getz00:05:16

it's a shadow issue; fix is to force Guava to latest

com.google.guava/guava {:mvn/version "31.1-jre"} ; force guava to latest to fix shadow issue

nottmey07:05:54

Oh wow 🙈

nottmey07:05:06

from the tree, I would never have guessed sorry that I didn’t check in that direction thank you very much for the find! (works)

🙂 1
nottmey23:05:45

Photon: I tried to create a simple routing concept (client side):

(p/defn App []
  (let [!route (atom :home)
        route  (p/watch !route)]
    (dom/div
      (condp = route
        :home (HomeScreen. !route)
        :other (OtherScreen.)))))
In HomeScreen I simply wanted to (reset! !route :other) . But I noticed, how do I listen on button clicks (`(dom/events dom/parent "click")`) and make it call a function? Or is there a better way of doing this?

1
Dustin Getz23:05:55

This pattern works for now (there is probably a better way to do it though)

nottmey07:05:00

Alright, I’ll try that

nottmey09:05:28

works like a charm