Fork me on GitHub
#tools-deps
<
2022-10-13
>
Lone Ranger17:10:06

Does anyone here know about boot and cljsjs? I'm asking because I'm wondering if this step in the cljsjs readme is still relevant or this could be accomplished some other way with tools-deps now: https://github.com/cljsjs/packages/wiki/Creating-Packages#5-add-buildboot-and-readmemd-files

respatialized17:10:37

I think you could adapt the Boot task into a deps.edn alias analogous to those used by stuff like tools.build - just a main fn that you can invoke from the alias to accomplish all the packaging tasks. https://clojure.org/guides/tools_build I've never used cljsjs, but having used Boot a little bit ages ago its idea of "pods" is a little wonky and hard to directly translate into ordinary Clojure code. It looks like that description gives a decent overview of the steps you'd need to define in the function you run under a deps.edn alias, though.

Lone Ranger17:10:31

Ok. Wasn't sure if there was something "special" to boot, I'm assuming it's just because converting over a zillion packages in the cljsjs repo isn't worth it

Lone Ranger17:10:44

I've heard, though, that boot is w00t

seancorfield21:10:23

@U3BALC2HH FYI, we converted our work setup from Leiningen to Boot in 2015 but started to run into bugs/problems with both Boot's pods and the sort of shadow file system, so we switched to CLI/`deps.edn` in 2018. We've since added build.clj/`tools.build`. Everything you can do in Boot as tasks just maps to functions in build.clj except for the classloader isolation of "pods" -- but, as @UFTRLDZEW hinted above, there are definitely problems with that approach and spawning new Java processes (easy with tools.build) is simpler and safer.

✔️ 1
seancorfield21:10:02

I think at this point almost no one is still using Boot (compared to Leiningen and Clojure CLI).

Lone Ranger22:10:00

Awesome, thank you!