Fork me on GitHub
#boot
<
2015-09-25
>
alandipert01:09:40

hm, looks like you could get the dep manually with boot -d, and then pass -javaagent arg in BOOT_JVM_OPTS

alandipert01:09:04

but, no, nothing like that built in currently afaik

alandipert01:09:59

http://stackoverflow.com/a/13032771 looks promising too, for adding at rnutime

alandipert01:09:04

that would be more boot-ish

mynomoto02:09:52

Thanks, I did try setting the jvm-options but couldn't make it work. I will try again on another time.

juhoteperi08:09:26

Does the change in that branch look sane? If it does, I'll merge it and do the same for cljs repl

martinklepsch09:09:32

@juhoteperi looks sane even though I feel like we should not just limit messages but also cache these modifications.

juhoteperi09:09:28

@martinklepsch makes sense. I'll see what I can do.

juhoteperi09:09:25

Should work by using fileset-diff to find changed cljs edns

martinklepsch09:09:45

@juhoteperi: maybe store a content hash of the files somewhere and only modify fileset if it changed

martinklepsch09:09:23

that could also work. then just commit either new or old fs

juhoteperi10:09:17

Thats effectively what fileset-diff does

juhoteperi11:09:42

Boot-cljs also needs to check diff so that in only writes the main ns when .cljs.edn has changed

juhoteperi11:09:10

that way cljs compiler won't think the main ns changes everytime

meow15:09:08

@crimeminister: I think I have a setup similar to what you described.

meow15:09:55

It's still under development, but I have multiple independent clojure libraries within the same repo.

meow15:09:18

I have a task for each environment that then gets comp'd with a generic build task.

crimeminister15:09:11

Sounds like just the thing, I will take a look. Thanks!

meow15:09:13

The important parts for building say, the ergo library are: :resource-paths #{"src/ion/ergo"})) and sift {:move {+re-source-files+ "ion/ergo/$1"}}) and then using sift in the build task: (comp (pom) (sift) (jar) (install))

meow15:09:35

I've even published some of the libaries to clojars using that build.boot file, so I think it's safe to say that it can be done, and I still like this setup, even if it isn't that common.

meow15:09:56

Everyone thought I was crazy, but I like it.

alandipert15:09:04

looks awesome to me!

crimeminister15:09:50

Will try implementing that pattern in my repo, see how much friction I get… seems like it would be great for the Clojure parts, am now going to need to see how many tasks are out there for the other stuff, e.g. packer, pallet, docker/rkt, etc.

crimeminister15:09:22

Glad I asked, was planning just to pick Bazel/Buck/Pants

alandipert15:09:24

@crimeminister: the thing to keep in mind is that with boot you might have to program things instead of finding a lib/plugin, but the barrier to programming is low

alandipert15:09:43

but it works out because programming is always more fun than configuring simple_smile

meow15:09:44

and the support here is great

crimeminister15:09:26

@meow as I am discovering 😄

crimeminister15:09:12

@alandipert forced to write more Clojure? O, the horror

alandipert15:09:29

hehe exactly

crimeminister15:09:46

(meanwhile I am sneaking it into PROD hidden in JARs)

mathiasx19:09:07

Dunno if folks are over in IRC, but there’s someone trying boot and I haven’t seen the error before. Something like Exception in thread "main" java.lang.IllegalArgumentException: Bad artifact coordinates boot:pod:jar:, expected format is

mathiasx19:09:23

(in #C08BDAPRA on Freenode)

mathiasx19:09:21

It is mostly safe to remove ~/.boot, right? He already reinstalled boot.

alandipert19:09:46

@mathiasx: yeah totally, except for ~/.boot/profile.boot

pandeiro19:09:24

I think there may be a race condition or something with boot-cljs when using the with-pre-wrap + with-post-wrap method of injecting stuff into the build

pandeiro19:09:03

it happens rarely (like 5-10% or less) but i have the stacktrace of it happening with adzerk/boot-reload

pandeiro19:09:26

wondering if this is a known thing

juhoteperi20:09:49

I created new Sass plugin for Lein and Boot which uses Libsass through Java wrapper library: https://github.com/Deraen/boot-sass

juhoteperi20:09:18

It can search for imports in classpath and it's quite fast (bootstrap 4 compile is 200ms).

juhoteperi20:09:57

Not sure how it works on OS X as the JNA lib says they don't have automated tests for OS X

martinklepsch21:09:14

@pandeiro: regarding the race condition — is there an exception (or whats the symptom)?

martinklepsch21:09:26

@juhoteperi: nice job on the boot-sass thing, will test!

pandeiro21:09:20

@martinklepsch: yeah I have the stacktrace

juhoteperi21:09:28

@martinklepsch: Great. I wrote it really fast so wouldn't be surprised if imports wouldn't work in some case. Also, it's still missing support for all options (including source-maps).

pandeiro21:09:40

i was just wondering if i should create an issue, and if so, if we think this is a boot-cljs issue or a boot-reload issue

pandeiro21:09:59

i can also just pastebin it

martinklepsch21:09:33

@pandeiro: what does the exception look like? I got something weird/similar when toying with both recently so maybe it’s the same

andrewboltachev21:09:43

Hi. Is there a way to require hoplon.core in index.hl.cljs?

martinklepsch21:09:12

@juhoteperi: I think it should probably also scan for .sass if it’s a sass task 😛

juhoteperi21:09:59

@martinklepsch: I don't know what's the difference between sass and scss, I only know that the implementation is libsass

martinklepsch21:09:08

@pandeiro: that’s not the one I’ve seen. Filing an issue against boot-cljs or reload is probably best

juhoteperi21:09:22

Also jsass, had some mention about sass syntax not being supported on some case

martinklepsch21:09:48

@juhoteperi: it’s

a
  color: blue
vs
a { color: blue }

pandeiro21:09:51

@martinklepsch: I've hit this now in several "plugins" that use this "trick" with boot-cljs... I guess I'll file there

martinklepsch21:09:16

@pandeiro: what “trick” do you mean?

martinklepsch21:09:57

@juhoteperi: afaik libsass supports both styles. (`sassc` is libsass I think and that’s what I’m currently using)

pandeiro21:09:04

@martinklepsch: (with-pre-wrap ;; create some cljs.edn builds dynamically ... + (with-post-wrap ;; do something after the compilation has happened ...

pandeiro21:09:18

like a boot-cljs sandwich

pandeiro21:09:26

the sandwich technique

martinklepsch21:09:16

@pandeiro: definitely file an issue and if possible some repro instructions simple_smile

pandeiro21:09:14

@martinklepsch: the kicker is that it is not repro-able

pandeiro21:09:23

it happens literally about 5% of the time

pandeiro21:09:47

at least i cannot figure out how to reliably trigger it

martinklepsch21:09:01

well, then the repro is “do it at least 20 times until it fails” 😛

pandeiro21:09:17

exactly, exactly... of course simple_smile

martinklepsch21:09:43

these bugs are the best, lol

juhoteperi21:09:47

Never seen it and I've been using boot-cljs/reload for 1 month at work now

pandeiro21:09:35

@juhoteperi: i think 5% may be high in fact

juhoteperi21:09:43

Do you have multiple cljs.edn files?

pandeiro21:09:43

i'm building hundreds of times a day

juhoteperi21:09:52

Could be something related to that

pandeiro21:09:17

I'm not even sure what to title the issue...

pandeiro21:09:26

Going to go with the exception text for now

martinklepsch21:09:24

@juhoteperi: just added .sass locally and works fine except that the extension stays .sass

juhoteperi21:09:54

@martinklepsch: Works fine = doesn't compile it at all?

martinklepsch21:09:16

@juhoteperi: no no, it’s compiled, just extension isn’t modified

juhoteperi21:09:12

ah you mean you editted the task?

martinklepsch21:09:19

yeah — added .sass to the list of extensions to search for

juhoteperi21:09:15

but I might move that to the task

martinklepsch21:09:34

@juhoteperi: I’d also suggest using core/tmp-path & core/tmp-file instead of boot.tmpd/file / boot.tmpd/path

lukemorton21:09:33

Talking of tmp-path I keep getting warnings running boot: temp-dir! was deprecated, please use tmp-dir! instead

lukemorton21:09:55

(might be boot-cljs)

martinklepsch21:09:59

@lukemorton: that means one of the tasks you are using uses an outdated api

martinklepsch21:09:13

@lukemorton: if it’s boot-cljs it must be really old

lukemorton21:09:26

hmm weird will investigate

lukemorton21:09:45

Meh will probably be one of the smaller libraries then, not too bothered. Only set this all up a few days ago.

lukemorton21:09:47

:dependencies '[[org.clojure/clojurescript "1.7.48"]
                [quiescent                 "0.2.0-RC2"]
                [adzerk/boot-cljs          "1.7.48-4"]
                [adzerk/boot-cljs-repl     "0.1.9"]
                [adzerk/boot-reload        "0.3.2"]
                [mathias/boot-sassc        "0.1.5"]]

juhoteperi21:09:57

Could be cljs-repl, 0.1.9 is quite old despite being latest stable

juhoteperi21:09:21

As I managed to use boot-cljs-repl succesfully today, I think I'll try doing proper release soon

martinklepsch21:09:55

I’ve been using boot-cljs-repl with great stability for a good while fwiw

lukemorton21:09:35

coo, cheers, upgraded... no warning

lukemorton21:09:46

apart from on installing WARNING: org.clojure/tools.nrepl version null is older than required 0.2.10

lukemorton21:09:56

seems to be working anyways tho