Fork me on GitHub
#tools-build
<
2021-12-01
>
seancorfield20:12:36

Since I've been fielding Qs today about using aliases as data and abstracting builds in a monorepo, I figured it would be useful to highlight Polylith's build.clj script -- which is modeled on some of what we do at World Singles Networks: https://github.com/polyfy/polylith/blob/master/build.clj

seancorfield20:12:38

For folks using my build-clj but not needing the deploy-to-Clojars functionality and not wanting to bring in slipset/deps-deploy and "all" of its transitive dependencies:

:build {:deps {io.github.seancorfield/build-clj
                 {:git/tag "v0.6.0" :git/sha "2451bea"
                  ;; omits deps-deploy dependency:
                  :deps/root "slim"}}
          :ns-default build}

borkdude21:12:15

@seancorfield I was thinking, you can also requiring-resolve deps-deploy. That is what neil generates when you choose clj -Tneil add-build :deps-deploy true. It will lazily load deps deploy since it saves on startup time when you're not using it.

borkdude21:12:20

ah, you're already doing that, I've been meaning to suggest that :)

seancorfield21:12:22

In the very early versions of build-clj, in-house, before it became an actual project, it was doing the dynamic require, but then I turned it into a static require for that initial version so folks wouldn't trip over trying to deploy or install without adding the deps-deploy dependency to their :build alias themselves.

👍 1
seancorfield21:12:30

But deps-deploy originally didn't have many dependencies so I didn't worry much about it -- just pomegranate. Now it has a shed load of Maven and S3 stuff so I've been toying with the idea of making it an optional dep for a while.

seancorfield21:12:54

(and install switched to tools.build.api/install some time ago)