boot

:boot-clj: https://boot-clj.github.io/ — build tooling for Clojure. Dev chat in #boot-dev
dpsutton 2018-10-23T15:20:10.000100Z

we're really liking deps.edn workflows for running our project and declaring dependencies. is there a boot workflow where we can use deps.edn deps and use boot for building and packaging?

borkdude 2018-10-23T15:23:58.000100Z

https://github.com/seancorfield/boot-tools-deps?

dpsutton 2018-10-23T15:24:44.000100Z

thanks. reading now

borkdude 2018-10-23T15:25:05.000100Z

not sure how it works, never used it. we rolled our own multi-project .edn file

dpsutton 2018-10-23T15:25:28.000100Z

do yall make artifacts from libs for consumption in older projects? that's where we are right now

borkdude 2018-10-23T15:25:39.000100Z

we do yes.

dpsutton 2018-10-23T15:25:53.000100Z

older lein project, rewrite of library with deps edn. need to make a maven artifact. how do you do it?

dpsutton 2018-10-23T15:26:22.000100Z

you work at juxt don't you?

borkdude 2018-10-23T15:26:46.000100Z

there are some clj “plugins” for this already I believe. I used one to create uberjars, but haven’t pushed to maven

borkdude 2018-10-23T15:27:04.000100Z

I guess you could still write the pom file and do anything you like with it

borkdude 2018-10-23T15:27:19.000100Z

and no, I don’t work for juxt

dpsutton 2018-10-23T15:27:41.000100Z

ah ok. thought you did. we were looking at one of their "plugins". thanks for the recommendations

borkdude 2018-10-23T15:28:12.000100Z

fwiw, we use this https://github.com/borkdude/boot-bundle to manage deps in multiple projects that we would like to keep the same

2018-10-24T09:11:23.000100Z

@borkdude Where can one find the current state of dependencies? Is this defined within the project as well or just in bundle.edn?

borkdude 2018-10-24T09:12:35.000100Z

You can combine deps just the way you like, by picking them from the bundle file or mixing it with your own inside set-env

2018-10-24T09:12:53.000100Z

Ah I see, I guess you always put a bundle file within a git repo?

borkdude 2018-10-24T09:17:03.000100Z

Only if we use bundle (but we do this for each project yes). Typically at the root of the repo. We have some JVM opts that we read from a .boot-jvm-options file in each project, that has -Dboot.bundle.file="../bundle.edn"

borkdude 2018-10-24T09:17:16.000100Z

@jeroenvandijk but you can also define this in the build.boot file or via an env variable

borkdude 2018-10-24T09:22:07.000100Z

@jeroenvandijk you can even get your boot.bundle file from a shared library

2018-10-24T09:26:38.000100Z

Nice 🙂

borkdude 2018-10-24T09:43:24.000100Z

;; if you share your bundle via clojars, uncomment and change:
            ;; [your-bundle "0.1.1" :scope "test"]

borkdude 2018-10-24T09:44:39.000100Z

https://clojars.org/nl.michielborkent/boot.bundle.edn

seancorfield 2018-10-23T15:29:49.000100Z

@dpsutton You can use boot-tools-deps with Boot to make JAR and uber JAR files from your deps.edn library but I'd look at cambada or juxt's pack instead.

seancorfield 2018-10-23T15:30:08.000100Z

We use depstar to create uber JARs at work.

dpsutton 2018-10-23T15:30:33.000100Z

we tried pack and making a skinny jar. had to modify it to remove a :gen-class in it and it also had no manifest or pom info

dpsutton 2018-10-23T15:30:45.000100Z

so it just kinda zipped our files ¯\(ツ)

seancorfield 2018-10-23T15:30:55.000100Z

We build uber JARs without manifests and use those in production.

seancorfield 2018-10-23T15:31:18.000100Z

We haven't, yet, had a need to build skinny JARs for deployment to Clojars etc.

dpsutton 2018-10-23T15:31:21.000100Z

we're making a library for consumption from an older lein project

dpsutton 2018-10-23T15:31:42.000100Z

and ps thanks for the discussion @borkdude @seancorfield

seancorfield 2018-10-23T15:34:41.000100Z

BTW, you can generate a pom.xml using clj directly. I haven't checked how compatible it is with Clojars/Maven tho'...

alexmiller 2018-10-23T16:56:21.000100Z

it needs additional adornment (but clj -Spom is intended to update the deps and leave the rest alone)

dominicm 2018-10-23T19:12:04.000100Z

I work at JUXT. Have your daily dose of marketing 😁 https://github.com/juxt/pack.alpha#uploading-to-clojars-or-maven

dominicm 2018-10-23T19:13:29.000100Z

What's your comment about :gen-class? :thinking_face: pack doesn't really do anything with AOT, so if you need that you need to combine it with pack using something like https://github.com/juxt/edge/blob/152f1f696479e74d8ed9c63d2f4ed7e846eff585/bin/uberjar#L17-L26

dominicm 2018-10-23T19:13:49.000100Z

Happy to answer questions in #juxt or directly (it'll be me either way)