tools-build

seancorfield 2021-12-01T20:18:36.286200Z

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

seancorfield 2021-12-01T20:47:38.287200Z

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}

borkdude 2021-12-01T21:07:15.288200Z

@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.

borkdude 2021-12-01T21:10:20.288800Z

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

seancorfield 2021-12-01T21:26:22.289200Z

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
seancorfield 2021-12-01T21:30:30.289400Z

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.

seancorfield 2021-12-01T21:30:54.289600Z

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