Fork me on GitHub

Has the boot community done anything along the lines of lein voom, where a project can depend on specific git commits or branches of other projects?


I was thinking of the built-in —checkouts option… but I haven’t actually looked at that.


Hmm, —checkouts seems to be about JAR files and watching/refreshing dependencies on change? EwenG’s task looks more like Leiningen’s checkouts support perhaps?


boot voom would be awesome... i have a bunch of lein voom projects and one boot project which currently gets its deps updated by hand


When running tests with boot test, the executing namespace (`*ns*`) of my tests appears to be pod. However, when I run them manually from the REPL via (clojure.test/run-tests <my ns>), the namespace is boot.user. This means if the code I'm testing generates symbols based on *ns* they will be different between the two scenarios. Is there a way to have the same executing namespace in both situations?


I'm learning boot. I've updated to use current versions of boot, and current library versions. I'm having a problem with .cljs.edn tenzing-re-frame-todomvc has the file resources/js/app.cljs.edn If I remove the .cljs.edn file and adjust index.html to use main.js rather than js/app.js, the application works. If use resources/js/app.cljs.edn, I get the ClojureScript could not load :main, did you forget to specify :asset-path? error. I think that the app.js shim is trying to load the goog dependencies from the server root directory rather than from the js subdirectory. Any ideas for debugging and fixing this problem?


@jannis: The trick we use is to have this in each namespace where we’d want to reference *ns*:

(def my-ns *ns*)
Then use my-ns instead. Since this is bound to a value at load time, you’re guaranteed that my-ns refers to the actual namespace and not the dynamic value of the calling namespace. Does that help?


anyone have any experience with boot-figwheel? having trouble getting it set up


@uwo: What kind of problems? With a quick glance ajchemist/boot-figwheel looks like it is not compatible with boot watch and doesn't integrate with Boot filesets, so it can't access files created by other tasks


right. I’ve avoided using it with watch. I think i probably asked for help too soon. my main problem is actually just getting my assets served properly. But, secondarily I run into this error java[15899] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21) when I don’t blow away the compiled javascript files before attempting to run the task again


@uwo: have you tried boot-cljs yet? it offers a similar workflow, is better integrated into boot


yes. we just switched to boot-cljs (and boot), however compile times were much slower than with figwheel, so I was experimenting with using figwheel at dev time


Not sure what is the status on OS X or Windows but on Linux the compile times should be similar


right. I’m running on OS X


perhaps our pipeline isn’t set up optimally


But I believe compile times should be similar on OS X also, all my co-workers are using OS X and I haven't noticed that their builds would be any slower than mine


for me, a fresh compile with figwheel was around 14 seconds, and restarting thereafter about 2-4. With boot-cljs I’m around a half minute, though incremental compiles are fine


Okay, slow compile after Boot start is a "feature"


Boot starts with new temp dirs each time and I haven't found slow starts too annonying yet to store Cljs cache in persistent location


Plus, Cljs cache can still cause random problems, after changing deps etc, that require cleaning it


sure. and I always clean after new deps.


okay. cool. this wasn’t intended to be a complaint about the speed of boot-cljs, just an inquiry into boot-figwheel. Thanks for your time!


@alandipert: do you guys use mount or component with boot? I'm just curious


@bsima: I’m not Alan (and I don’t work there) and I’m not sure of the context of your question but… at World Singles we use Component with Boot.


cool, thanks


i've used component and mount, I'm just curious what others do


I was thinking it might be possible to do something fun with different systems in different pods, for example a client task and a server task, each running in a separate pod so I can run them completely isolated from each other in development


Yup, sounds feasible.


We run our Expectations test suite in a pod and it does the whole component start / stop inside the pod there.


(that allows us to run our test suite against different versions of Clojure all in a single Boot run)