Clojurians
#cljs-dev
<
2016-04-05
>

This page is not created by, affiliated with, or supported by Slack Technologies, Inc.

darwin16:04:36

@nberger: finally got to testing :parallel-build option, so far it looks good in my projects, thanks for working on this

nberger16:04:27

@darwin: glad to hear that, thanks for testing

darwin16:04:40

@nberger: btw. the warnings are still present in my CI builds[1], but not present on my dev machine where I have your patch applied https://travis-ci.org/binaryage/dirac#L723

dnolen17:04:29

@darwin thanks for the feedback on the patch

darwin18:04:33

@nberger, @dnolen: bad news, I ran into the issue again even with the patch applied, I also modified the warning string just to make sure I’m running my patched version

dnolen18:04:04

@darwin: seeing warnings are not actually evidence of a problem though

dnolen18:04:15

the patch is about corrupted builds

darwin18:04:32

ok, take my reports with a grain of salt, it could be caused by something else

dnolen18:04:35

you may see warnings if your dependency graph is wrong

dnolen18:04:53

i.e. some ns assumes something else loaded something already

dnolen18:04:07

I’ve seen a couple libraries that have this bad assumption

darwin18:04:12

I think I have reproducible steps for my rather complex project, if I disable :parallel-build and try to reproduce it again, it could confirm at least that the problem is somewhat related to parallel-build feature

darwin18:04:37

I’m going to play with it

nberger18:04:06

@darwin is it possible for me to play with your project? Is it dirac? I could use the ad-hoc instrumentation I used to debug the issue, and see if it looks like the same issue

darwin18:04:51

@nberger: yes, it is dirac, you should be able to reproduce it if you are under Mac OS, but it will involve some setup steps (for example you need a chrome canary)

darwin18:04:12

because I can trigger it only when using figwheel so far

nberger18:04:11

hummmm, I'm not on Mac OS. I'll try to share that instrumentation with some explanation later for you to try

darwin18:04:44

ok, so now I confirmed, that the problem is present even without :parallel-build enabled, so this one will be some other problem

darwin18:04:54

I’m sorry for confusion

nberger18:04:59

oh cool (or not so :stuck_out_tongue: )

darwin18:04:36

I can trigger it by modifying a library in leiningen’s checkouts dependencies, which triggers figwheels hot-reloading in several of my projects, which then spits a bunch of warnings, there is probably a race in my setup or figwheel cannot handle it properly

darwin18:04:36

interesting on this case is, that that hot-reloading is triggered on multiple running watching figwheel instances in parallel

darwin18:04:52

because all those projects depend on that lib

darwin18:04:29

will test if I can reproduce it with only single of those projects running

nberger18:04:29

sweet, it would be nice to find what's breaking in that scenario

darwin19:04:14

getting closer what triggers it, figwheel is ruled out, running multiple builds in parallel too

darwin19:04:55

so the problem seems to be triggered when I compile my cljsbuild build first with "cljsbuild” “once” (30s) and then I start it with "cljsbuild" “auto”, the auto mode definitely reuses caches from once run, because compilation is incremental

darwin19:04:32

if I do lein clean and run just "cljsbuild" “auto” directly, it takes 30s for first-time compile and then works as expected without warnings

darwin19:04:14

I’m going to narrow it further, maybe I don’t need to trigger it via a checkouts lib, but some normal code changes will be enough

darwin19:04:42

I’m aware this seems to be outside of the scope of #C07UQ678E, so I’m moving elsewhere. Conclusions: this is probably not cljs fault, but problem in lein-cljsbuild possible candidate is https://github.com/emezeske/lein-cljsbuild/commit/5485e25bfa6c44cdf0e9d7cb106584915cec0616 I can confirm all warnings are macro-related. And I can confirm that my projects contain clj files with the same namespaces as cljs files (for good reasons).

darwin20:04:53

just a follow up, I was able to prepare a minimalistic repro case for lein-cljsbuild project: https://github.com/emezeske/lein-cljsbuild/issues/443

darwin20:04:07

the good news is that this has nothing to do with :parallel-build :tada: