Fork me on GitHub
#boot
<
2015-10-18
>
nha09:10:03

I am using the saapas template, and just cloning it and adding [org.onyxplatform/onyx "0.7.11-SNAPSHOT"] to the dependencies and I get and exception. Could someone confirm that they get the same result ?

martinklepsch11:10:45

@nha: what’s the exception?

nha11:10:38

@martinklepsch:

clojure.lang.Compiler$CompilerException: java.lang.ExceptionInInitializerError, compiling:(cljs/repl.cljc:1:1)
  java.lang.ExceptionInInitializerError: 
          java.io.FileNotFoundException: Could not locate clojure/tools/reader/impl/ExceptionInfo__init.class or clojure/tools/reader/impl/ExceptionInfo.clj on classpath.
                                                  ...                        

nha11:10:14

Note : I renamed my profiles.clj and profile.boot just in case it did something. I don't think it is specific to boot though, but I can't pinpoint the problem.

nha11:10:26

Do you get the same exception ? (I just do git clone [email protected]:Deraen/saapas.git , add onyx dependency, boot dev to get that error)

juhoteperi11:10:58

Looks like transitive dependency to old clojure reader

juhoteperi11:10:50

onyx seems to depend on org.clojure/clojure and core.async, make sure that you have clojure 1.7 dependency on your own project so that bad transtive dep doesn't get used

martinklepsch11:10:53

works fine for me with non snapshot dep

nha11:10:07

well I think saapas does set clojure 1.7 already (unless I misunderstand that)

nha11:10:14

I'll try non snapshot

nha11:10:45

hmm same for me using : [org.onyxplatform/onyx "0.7.10"]. So there is something wrong with my setup...

nha11:10:03

But if I do the same as you it works (with warnings)

nha11:10:33

This warning seem related : "Warning: version conflict detected: org.clojure/tools.reader version changes from 0.9.2 to 0.10.0-alpha3"

nha11:10:12

I am removing .m2 and .ivy2 and trying again just in case...

nha11:10:35

..same result

nha11:10:51

removed ./lein and /.boot too, still the same error

martinklepsch11:10:19

@nha: I just cloned master, added the dependency (non-snapshot) to build.boot and it just works fine. No warnings or anything.

martinklepsch11:10:56

@nha: what does boot -V give you when ran in the saapas dir?

juhoteperi11:10:16

Hmh, doesn't work for me

martinklepsch11:10:15

Hm, exactly the same for me.

martinklepsch11:10:51

@juhoteperi: you getting an error?

nha11:10:36

that works for me too ! (but not boot dev)

juhoteperi11:10:55

Looks like onyx is somehow breaking cljs compile

nha11:10:15

yeah it looks like it is related to cljs, but I am not really aware of the mechanics of cljs compile to pinpoint what is causing trouble.

juhoteperi11:10:17

It's probably related to macro reloading

nha12:10:56

could it be a dependency of onyx that uses an old version of clojure ? (I am asking because searching for "tools" in onyx doesn't seem to yield any suspect).

juhoteperi12:10:59

You can dependency tree with boot show -d

juhoteperi12:10:09

and no, doesn't seem to be caused by any dependencies

nha12:10:07

yes you're right. I tried importing all of them and there is no exception

nha12:10:44

(same for other versions of onyx too, all the way to 0.7.0)

juhoteperi12:10:11

doing (require 'cljs.analyzer) in repl will throw the same error

nha12:10:35

yes same here

nha12:10:11

...and requiring it works when removing onyx

juhoteperi12:10:27

Very strange

nha12:10:01

Well yes it has been bugging me for quite some time, but I always assumed it was something with my setup. I'm happy to learn that I'm not crazy 😛

juhoteperi12:10:40

Eh, Onyx jar is AOT compiled

juhoteperi12:10:56

at it includes all clojure core and tools AOT compiled

juhoteperi12:10:10

So it includes old tools.reader AOT compiled

juhoteperi12:10:25

so even though no transitive dependency is added, old version is used as it's included in onyx jar

nha12:10:53

Ooh that could be it yes !

nha12:10:07

How do you know it is aot compiled ?

juhoteperi12:10:18

by opening the onyx jar file

juhoteperi12:10:22

(it's a zip file)

juhoteperi12:10:28

and checking their project.clj

nha12:10:32

Oh so aot'ing a namespace makes the whole clojure deps compiled too, right ? (I wasn't doing a lot of java before plunging into clojure sorry if it is obvious)

nha12:10:29

So any program used as a library should not use aot, right ? is it different in their case as it seems to be for Java interrop ?

nha12:10:24

Thanks a ton !

nha12:10:46

(for that and doing saapas simple_smile )

juhoteperi14:10:25

Hmmh, I want to have Lein credentials.clj.gpg style settings for repositories

juhoteperi14:10:29

I guess I can make a task for that

micha14:10:26

@juhoteperi: can you have a look at danielsz's PR and tell me what you think?

juhoteperi17:10:28

I did quick test about using gpg to read ceredentials for write repos: https://github.com/Deraen/boot-contrib-gpg

juhoteperi17:10:49

Should be trivial to use it for signing also, I got it mostly working already

juhoteperi18:10:34

Hmh, does boot have separate repositories and deploy-repositories?