Fork me on GitHub
#hoplon
<
2016-08-11
>
laforge4915:08:03

Having problems updating dependencies for the contacts demo. I've got my own demos repository, so as to not destroy anything. Here's my updated copy of the contacts demo:: https://github.com/rolonicArk/demos/tree/master/contacts

laforge4915:08:23

I've only changed the boot.properties and build.boot files:

laforge4915:08:38

Here's the error showing in the browser console:

laforge4915:08:04

Before the error, I get a warning: Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

flyboarder16:08:44

@laforge49: could it be a clojure 1.9 issue?

laforge4916:08:02

I can try 1.8.

flyboarder16:08:14

I have run into issues before when using versions higher than the cljs version of boot-cljs

flyboarder16:08:53

ie all my projects build against the 1.7.228 cljs version and 1.7clj

flyboarder16:08:37

not sure what changes are needed (if any) for proper support of higher versions since boot-cljs is only at 1.7.228-1 actually not even sure it matters, hmmm i would imagine that cljs should build against the same version as clj?

laforge4916:08:57

is worse now

laforge4916:08:03

BOOT_CLOJURE_VERSION=1.7 BOOT_VERSION=2.6.0 BOOT_EMIT_TARGET=no

laforge4916:08:22

[org.clojure/clojure "1.7"] [org.clojure/clojurescript "1.7.228"]

laforge4916:08:10

couldn't find clojure 1.7

flyboarder16:08:42

yeah should be 1.7.0

flyboarder16:08:32

did that work tho? Is it building?

flyboarder16:08:46

It would be nice knowing how these versions all play together

flyboarder16:08:53

we need some table

laforge4916:08:55

lots and lots of different errors now.

micha16:08:02

you can use boot show -p for that

micha16:08:11

that's the first place to start i think

micha16:08:28

you can see there the different versions of transitive dependencies

micha16:08:38

what various dependencies depend on

micha16:08:49

and try to select ones that work with all of them

laforge4916:08:01

It is too hot and humid

laforge4916:08:10

I can't work in these conditions.

micha16:08:26

get out of the shower dude

micha16:08:33

you can't compute in there

flyboarder16:08:38

@micha how does the boot clojure version work compared to project clojure version?

laforge4916:08:42

I just took a shower and need another

micha16:08:23

@flyboarder: boot clojure version is the version of clojure that will be loaded by boot, that's the one your build.boot runs in

micha16:08:55

if you have a clojure dependency in your project that's different it won't be loaded onto the classpath (because boot already loaded a different version of clojure)

micha16:08:05

but it will be part of your project :dependencies

flyboarder16:08:32

so it shouldn’t affect things really except for running tasks

laforge4916:08:05

One thing I see a lot these days is exceptions because the mondue name is "undefined"

flyboarder16:08:48

thats a new one for me

laforge4916:08:07

Thu Aug 11 12:14:03 EDT 2016 [worker-2] ERROR - handle websocket frame org.httpkit.server.Frame$TextFrame@427b93c6 java.lang.IllegalArgumentException: No method in multimethod 'handle-message' for dispatch value: null at clojure.lang.MultiFn.getFn(MultiFn.java:156) at clojure.lang.MultiFn.invoke(MultiFn.java:233) at adzerk.boot_reload.server$connect_BANG_$fn__261.invoke(server.clj:60) at org.httpkit.server.AsyncChannel.messageReceived(AsyncChannel.java:166) at org.httpkit.server.WSHandler.run(RingHandler.java:140) at org.httpkit.server.LinkingRunnable.run(RingHandler.java:120)

laforge4916:08:17

above is another

laforge4916:08:54

going for yet another shower

flyboarder16:08:19

hoplon.firebase now follows the 12-factor app config a bit, checks for existing env variables and auto init’s your firebase connection

laforge4916:08:17

lots of conflicts, which is important?

micha16:08:38

the ones with the [!] are the ones that are not resolved by you

micha16:08:59

those are resolved automatically by maven, but it uses a pretty simplistic algorithm

micha16:08:19

it just chooses the transitive dependency that has the shortes path from the root of the graph

micha16:08:28

so those are probably the ones i'd look at

micha16:08:47

although the ? business is not helping

micha16:08:57

those should be checkmarks or xes

micha16:08:17

is there a unicode capable terminal in windows you can use?

flyboarder16:08:16

@micha @laforge49 depending on your version of windows, powershell has unicode support

flyboarder16:08:46

PowershellV2 < HOST >Win7

laforge4916:08:08

Thanks guys. I'll dig into this later. Now for a walk to the dentist. 😄

laforge4916:08:48

I assume resolved by me means I specify the dependency.

laforge4916:08:40

I think my strategy is to revert to what works, upgrade the non-task dependencies and then show -p.

laforge4916:08:30

I just find it strange that all this is happening with something as simple as the contacts demo. 🙂

micha16:08:49

why do you upgrade dependencies there?

micha16:08:26

when apis are not stable there isn't much you can do other than deal with dependency hell

micha16:08:35

or not update things

alandipert16:08:49

@micha: btw did you see? macro auto-infer is in cljs apparently

micha16:08:56

at least with maven if something worked once it will continue to work

micha16:08:08

what is auto-infer

alandipert16:08:18

err, "implicit macro var"

alandipert16:08:24

your boot task

alandipert16:08:37

although they also added many other unsavory things

alandipert16:08:05

> Now, there is a new simplification that will be coming to a ClojureScript compiler near you: You can use clojure as an alias for cljs in the first segment of namespaces in the case of nonexistent clojure. namespaces that can be mapped to cljs. namespaces.

alandipert16:08:51

ns macro language features and oddities continue to accumulate

alandipert16:08:25

maybe it's a good thing though

laforge4916:08:31

All in the name of making it easier. What ever happened to keeping it simple?

alandipert17:08:08

i think it's just hard to do with an embedded DSL like the ns macro, inside of which the semantics are not clojure's

alandipert17:08:19

easy to accidentally go crazy

micha17:08:28

i don't see that it has :refer :all?

micha17:08:52

or automatically figuring out how to refer macros or cljs namespaces

alandipert17:08:13

like this works he says:

(ns foo.core-test
  (:require [clojure.test :as test :refer [deftest is]]))

alandipert17:08:17

deftest is a macro there

alandipert17:08:35

clojure.test is rewritten as cljs.test

alandipert17:08:58

but yeah, doesn't have :refer :all still afaict

micha17:08:16

also will it work if you have just a clj namespace with macros in it

micha17:08:26

and no cljs namespace that does :require-macros on it

micha17:08:31

that's how the above thing works

alandipert17:08:56

no clojure.test is rewritten to cljs.test by cljsc

micha17:08:57

you make a cljs namespace foo.bar and in that namespace you do (:require-macros '[foo.bar])

alandipert17:08:09

it's not clojure's clojure.test lol

alandipert17:08:00

err i think i misunderstand

micha17:08:38

yeah that one