Fork me on GitHub
#admin-announcements
<
2015-09-25
>
crimeminister14:09:37

Anyone seen an example in the wild of using Boot with a top level build.boot that calls a subsidiary project build task? Have got a monorepo with a bunch of libraries and apps within and am trying to decide if Boot is a good fit for build tooling for a system laid out like this.

martinklepsch14:09:36

@crimeminister: "subsidiary project build task” you mean like a boot task somewhere else in the project sources?

martinklepsch14:09:47

@crimeminister: I think @juhoteperi wrote something that builds multiple modules/libraries from a single source tree.

crimeminister14:09:55

@martinklepsch I have a top level directory with distinct library and application projects (along with devops stuff, VM/container creation, etc.), rather than a single Clojure repo with multiple projects nestled within, if that makes sense

crimeminister14:09:47

Will take a look around in case @juhoteperi has published something, thanks for the tip!

martinklepsch14:09:11

@crimeminister: I don’t really understand what you want to do

martinklepsch14:09:39

@crimeminister: building jars? calling shell scripts? …?

crimeminister14:09:18

Something analogous to how Bazel works (http://bazel.io)

crimeminister14:09:40

All of those, and more… 😁

crimeminister14:09:01

More simply, from a project root, building a project at /foo based on the contents of /foo/build.boot

crimeminister14:09:32

and a project at /bar based on /bar/build.boot

crimeminister14:09:16

so that /foo and /bar are effectively standalone projects

crimeminister14:09:33

That just happened to be nestled in a single containing repo

crimeminister14:09:05

Of course, am a total Boot n00b, this might not be idiomatic or desirable…

crimeminister14:09:28

But it could be nice to have a top level /build.boot that knows how to delegate the building of subsystems by calling their own build configs

crimeminister14:09:38

Anyways, thanks again!

martinklepsch14:09:06

if you put the tasks you use for building your projects into require’able clojure files you can require them in a top-level build.boot file as well as any other build.boot file. I guess it’s a bit more nuanced than that but usually “there is a way” simple_smile

martinklepsch14:09:26

@crimeminister: there’s also a #C053K90BR channel FYI

crimeminister14:09:17

Cool, it escaped me that straight forward (:require) might do the trick, was assuming explicit support for that feature was needed. Off to #C053K90BR I go to lurk 🐊