Fork me on GitHub
#boot
<
2015-10-26
>
alandipert00:10:08

@micha: i wonder about cells for wrapping the FS states

alandipert00:10:45

well, ref-backed cells

micha00:10:20

how would you use that

micha00:10:37

also i figured out how to parse json with no external deps other than java 7

micha00:10:46

and without writing a json parser of course

micha00:10:58

nashorn ftw 💥

alandipert00:10:59

does it perfs?

micha00:10:19

yeah way faster than starting a pod and doing it with clojure

micha00:10:26

it's for the binary downloader thing

micha00:10:33

it has to parse github api responses

podviaznikov05:10:36

hi, in case anyone is interested: https://jarkeeper.com now supports boot projects. See https://jarkeeper.com/hashobject/perun

martinklepsch09:10:02

^ this is awesome 🎉 @juhoteperi boot watch all-jars with partial rebuilds is going to be a thing! simple_smile

juhoteperi13:10:23

@martinklepsch: Would be useful it dependencies could be passed to pom task

juhoteperi13:10:02

@martinklepsch: Would remove one reason for with-env etc.

juhoteperi13:10:24

And instead of using with-env/with-dir it would be possible to select the files using sift include

martinklepsch13:10:39

@juhoteperi: you still want dependencies on classpath for aot though

juhoteperi13:10:18

Yeah but for development the classpath could contain dependencies for all modules

martinklepsch13:10:37

I think the issue with using plain sift would be mostly that you cannot go back to the original fileset so you can pass it to following tasks?

micha18:10:10

Code review, thoughts, concerns welcome ^^

juhoteperi19:10:30

@micha: GPG PR could also use review, it should be ready now

micha19:10:46

i'm writing up how the loader thing works

micha19:10:53

forgot to do that in the commit message

micha19:10:55

^^ updated commit message

danielsz19:10:35

👍 Nice enhancements, @micha .

micha19:10:39

a cool thing about the new binary is that you can run any version of boot with it, back to boot 2.0.0

micha19:10:56

without needing to use a different binary of course

micha19:10:21

pre and rc versions are not supported, because some of those were borken

martinklepsch19:10:18

@micha: that sounds great. can head.sh get deleted?

micha19:10:41

@martinklepsch: we still use head.sh to build boot.sh

micha19:10:48

and Launch4J to make boot.exe

micha19:10:58

but we will only have one boot.sh and one boot.exe

micha19:10:11

we won't need to update those again, hopefully

micha19:10:26

the loader does so very little, there isn't much that can break with it

micha19:10:58

i made the loader a java program instead of a shell script because this way it has no external dependencies

micha19:10:01

other than java 7

martinklepsch19:10:24

@micha: looking at the Makefile I don’t see it being used?

micha19:10:46

it's in boot/loader/Makdefile i think

micha19:10:53

ah its in the main makefile

micha19:10:16

i used the fancy cat $^ > $@ makefile syntax lol

martinklepsch19:10:27

@micha: we’re very close to being able building everything with boot simple_smile

martinklepsch19:10:38

what do you all think about adding something like with-scope to the built-in tasks? https://github.com/boot-clj/boot/compare/boot-builds-boot#diff-0a1425bd66240468daf4c256a411ce75R125

martinklepsch19:10:25

seems like the right ratio between useful & complex

martinklepsch20:10:41

lol sorry for the noise simple_smile

martinklepsch20:10:27

Someone ideas what could make the build fail here? https://travis-ci.org/boot-clj/boot/builds/87538853

jannis20:10:48

@pandeiro: Although now it fails installing the latest boot.sh. I'll investigate that as well to see if I can get the whole thing to work before I send a pull request.

micha21:10:24

@jannis: i think this will get easier soon, with the self-downloading uberjar stuff

jannis21:10:20

Ok. I was looking for an easy way to deploy a web app built via boot. I don't even care if it's heroku. Are there other alternatives?

martinklepsch21:10:49

@jannis: digitalocean and uberjar are pretty handy. also dokku could work nicely with boot I guess

micha21:10:24

i think @alandipert deployed a web app to heroku this morning

jannis21:10:56

@martinklepsch: Dokku would be cool but I'd have to bring my old vServer up to date first, I guess. 😉 And DigitalOcean have no free option. This is just for a small demo project.

alandipert21:10:41

@jannis: you can use boot's web and war tasks to make a .war you can easily deploy to heroku

jannis21:10:25

@alandipert: Cool. Are there any instructions on how to do that anywhere?

micha21:10:41

i'm going to make a 2.4.0 release unless there are any concerns

martinklepsch21:10:34

for 2.4 you mean?

martinklepsch21:10:15

@micha: I don’t know why we should hold of stuff. Also smaller changeset will make troubleshooting easier.

micha21:10:28

yes i do it

martinklepsch21:10:30

but please tell me some ideas why the build fails: https://travis-ci.org/boot-clj/boot/builds/87538853 😄

micha21:10:56

that's a weird one

micha22:10:00

i've never seen that before

micha22:10:09

i assume ti works fine on your own machine?

martinklepsch22:10:23

me neither. build works locally. and aether code is unchanged.

micha22:10:25

it looks like maybe some kind of java sandboxing in the CI environment maybe?

martinklepsch22:10:18

wait ignore me. seems it must be some issue with my rebasing skills it now fails too for me

martinklepsch22:10:49

@micha: it really is the clojure 1.6 > 1.7 update

micha22:10:00

which version of clojure is having the problem, 1.6?

martinklepsch22:10:16

I guess the issue is that in aether there is 1.6 with :scope “compile” and in pod its with :scope “provided” — probably compile overrides the provided bit

micha22:10:16

hold on to your butts

micha22:10:55

@martinklepsch: can you update homebrew please?

micha22:10:18

all it should need now is the boot.sh

micha22:10:57

deploy failed

micha22:10:29

ok all good now whew

alandipert22:10:21

testing it out

martinklepsch22:10:18

@micha: so did I understand right that the new boot.sh kind of acts like a version manager as well? i.e. I can run any version of boot I want?

micha22:10:41

well v 2.0.0 and later

micha22:10:55

the rc and prerelease versions are not supported because those were crazy

alandipert22:10:32

@micha i installed 2.4 and first invocation downloaded stuff

alandipert22:10:37

but now it exits with status 254

micha22:10:56

does it print a stack trace or anything?

micha22:10:04

and what is the command line that fails?

alandipert22:10:16

do lein new hoplon app && cd app && boot dev

alandipert22:10:48

ah there's a boot.properties in here

micha22:10:21

@alandipert: it's something in the build.boot

alandipert22:10:29

yeah i'm bisecting

alandipert22:10:32

it's in the set-env

alandipert22:10:19

@micha: ok i think it's related to bringing in versions of clj... boot -d org.clojure/clojure:1.3.0 repl

micha22:10:39

clojure.lang.ExceptionInfo: loader constraint violation: loader (instance of java/net/URLClassLoader) previously initiated loading for a different type with name "clojure/lang/Compiler$Expr"

micha22:10:43

what is that

micha22:10:20

it's the hoplon dep

micha22:10:14

i wonder if it has something to do with setting the thread context classloader

micha22:10:22

damn i think maybe that's it

alandipert22:10:59

if i set-env from an established repl, it works

micha23:10:22

that looks like a possible culprit

martinklepsch23:10:56

@micha: anything that could require a new binary release?

micha23:10:11

maybe 😕

martinklepsch23:10:27

@micha: I’ll close the homebrew PR for now. let me know when I should reopen

micha23:10:47

it appears to work if i add a global (set-env :exclusions '[org.clojure/clojure] ...)

micha23:10:52

not sure what is going on there