Fork me on GitHub

I use boot in a very basic way, mostly just "boot dev/prod/repl", when working with hoplon/castra projects. I've been getting inconsistent results from the same starting point, filewise. I can run "boot dev" 3 times in a row, getting 2 different errors and then get a clean run. What's boot doing in the background that might lead to this?


@john_tollison what are the errors you’re seeing?


"Unable to resolve var: XX" "No such var: XX" "namespace 'XX' not found" "Wrong number of args () passed to: XX" "namespace 'XX' not found", with all sorts of variation with the XX's


@john_tollison is there any chance you can reproduce this in a shareable project?


Hi, I am preparing a PR for a CLJSJS package, and just ran boot package install target… I see a package-named directory and version directory in ~/.m2, but no jar file. Does anyone have any ideas as to why a package wasn’t moved there? I’m using these instructions: And, this boot file:


Sorry, this is my first try at this.


The jar file ends up in a target dir, and the .m2/repository/phoenix/phoenix/1.3.0/ dir is empty.


@mudphone the jar should end up at .m2/repository/cljsjs/phoenix/


@martinklepsch ah, okay, thank you


@john_tollison I've seen that on projects where there's a non-deterministic namespace loading order, due to missing :require and use of fully qualified namespaces. In both boot & lein.


sorry for the delay, been keeping weird hours. I place a bare bones project that creates the problem here,


I'll see if I can find any missing requires, but I have no idea what I'm looking for. As far as I can tell, I have all the same things as it took to make a previous project work, although I had the same problems early on


Thanks for the feedback


I’m having a hard time trying to figure out why I can’t reload my clj source files using tools.namespace/refresh inside a boot task (using boot-refresh). The (app/start) function I call to restart my app after the refresh has completed is stale.


Is anyone able to shed some light on why the changes to the reloaded namespaces aren’t reachable inside boot tasks? And perhaps a workaround?


I've heard of this before, I can add that. I'd read the source to boot refresh, it can't be long.


No it’s tiny:

(boot/with-pass-thru _
    (apply tns/set-refresh-dirs (boot/get-env :directories))
    (with-bindings {#'*ns* *ns*}
      (let [result (tns/refresh)]
        (when (instance? Throwable result)
          (throw result))))))


All obvious to me except the with-bindings wizardry.


Is the task refreshing 0 namespaces, or is it not running?