This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-09-17
Channels
- # beginners (51)
- # boot (31)
- # cider (14)
- # clara (13)
- # cljs-dev (15)
- # cljsjs (2)
- # cljsrn (53)
- # clojure (18)
- # clojure-dusseldorf (1)
- # clojure-russia (4)
- # clojure-uk (9)
- # clojurescript (53)
- # cursive (3)
- # datomic (5)
- # docs (1)
- # figwheel (2)
- # fulcro (42)
- # hoplon (3)
- # lein-figwheel (3)
- # leiningen (53)
- # off-topic (1)
- # om (4)
- # re-frame (11)
- # shadow-cljs (8)
is there a way to get boot to download dependencies in parallel?
@thedavidmeister I'm quite sure there isn't. If downloading deps is slow, check you are running 2.7.2 which has a fix related to this.
"slow" is relative
watching it download over and over on CI/deployment is slow simply because it happens so much
That's why CI services provide cache usually
cache is not a silver bullet for perf
neither is paralleziation, it wouldn't probably help if bottle neck is network
i'm currently doing work where caching the deps isn't appropriate because i'm tweaking them
other package management tools have demonstrated quite well that downloading deps in parallel is a significant boost
I'm not sure which version of Maven we use, but they added parallel loading to some files few years ago
it just isn't something that can be configured
oh ok, so it's something that would need to happen upstream of boot?
Boot uses Pomegranate which uses Maven-resolver (previously called Aether)
this seems to be what i want, POMs are taking ages for me
well that's very sad, that there was a PR up and now it has a ton of merge conflicts 😞
They don't use github
this must be wasting thousands of hours globally per year >.<
oh well, i hope it gets in someday
Wonder if clj
does things in parallel…
(In general would be interesting to see boot as a library on top of a preconfigured classpath provided by clj
but I guess that’s a bit further away :D)
Currently, clj (really tools.deps.alpha) does not do parallel download but it definitely could
There are two phases - expansion (needs poms) and download (jars). The first would be tricky to do in parallel but the latter would be easy
I wrote a little thing to control when the cljs task runs: https://gist.github.com/flyingmachine/dea69b7e62dabdfb26ae6419603eb4f7
It was also running when I would change a scss file, and the cljs compile would take ~3 seconds, which isn’t a great workflow
nonrecursive that's sweet
Cljs compile should not take 3 seconds if no Cljs files changed
using pom
to create a pom.xml
, i have
{pom :project 'myproject :version "1.0.0"}
i would like to use the output of git describe --dirty
for the version.
this seems like a common workflow. i have googled boot clj git version
and boot clj git describe
and haven’t found anything. thought i’d ask the slack channel. anyone know if there’s code for this?@andrew.sharp57 see https://github.com/juxt/edge/blob/054ed4879ba113ca3e52a732cb648e24ddc66921/build.boot#L19-L29
That version is slightly more complicated than just git describe, but should give you a good base to work from