Fork me on GitHub
#boot
<
2019-04-26
>
jeroenvandijk07:04:16

I'm porting a lein project to boot. In the process i'm just reading from the project.clj. Now i'm wondering isn't there a boot library for this?

Perry Fraser11:04:15

Hi, I’m trying to play around with overtone but a recent bug fix hasn’t been published on clojars for whatever reason. How can I specify in the dependencies env that I just want to pull the latest version from their github repo’s master branch?

jeroenvandijk11:04:08

via boot-tools-deps possibly? You might run into other issues, but it's an option

Perry Fraser11:04:25

Seems like it’s archived, I’m more wondering if there’s an idiomatic boot method to do this.

seancorfield03:04:31

Just to clarify -- as the author of boot-tools-deps -- the reason I archived it is because there are inherent limitations to what you can do combining tools.deps and Boot as an external tool, because Boot's view of classpaths and dependencies has some cognitive dissonance with how the Clojure CLI / deps.edn works. I created the tool as a path to migrate from Boot to deps.edn but in the end, it worked best when you had a working deps.edn project and wanted to add some simple Boot-based functionality to it... Over time, the tooling around deps.edn improved to the point where it was no longer necessary to try to "bolt on" parts of Boot (or Leiningen). My recommendation would be either use deps.edn -- and stick with the tooling supported for that -- or use build.boot and stick with Boot.

Perry Fraser11:04:49

And unless I’m missing something from reading boot-tools-deps I’m not sure how that let’s you pull boot deps from github.

jeroenvandijk12:04:00

other option is to install it locally

jeroenvandijk12:04:33

boot-tool-deps might be archived but deps.edn will have a place in the roadmap of boot if i'm correct. So it would be a temporary thing

Perry Fraser12:04:41

@jeroenvandijk in the example you sent do you know why you have #_:scope #_"provided" for the boot-tool-deps dep?

jeroenvandijk12:04:06

I don't remember

jeroenvandijk12:04:31

i think because you don't want to have it part of the uberjar

jeroenvandijk12:04:40

but i guess that didn't work

jeroenvandijk12:04:09

there are issues to this approach, but it might solve your immediate issue

Perry Fraser12:04:13

and how would you get this to actually pull the deps when you run e.g. boot repl?

jeroenvandijk12:04:48

something like this

(deftask repl []
  (comp
   (deps :quick-merge true)
   (boot.task.built-in/repl)))

jeroenvandijk12:04:54

you sound skeptical

jeroenvandijk12:04:05

i'm working with this on a daily basis

Perry Fraser12:04:37

Oh I see, I’m sorry.

Perry Fraser12:04:42

I’m just not to familiar with boot in general.

jeroenvandijk12:04:42

Everything is a bit new and it needs some time to mature. But if you want the benefits of deps.edn it like this atm i'm affraid

jeroenvandijk12:04:55

The deps.edn tools are not too mature as well

seancorfield04:04:02

Mature enough to run our 82,000 line Clojure code base in production with 30 sub-projects in a mono-repo 🙂

jeroenvandijk08:04:12

haha I agree! It does what I need, I didn't want to be disrespectful!

jeroenvandijk12:04:25

I'm not aware of other approaches in Boot (I'm pretty new myself as well)

Perry Fraser12:04:08

It doesn’t seem to like me redefining the repl task.

Perry Fraser12:04:37

I think I’ll just try manually git cloning and adding it as a local dep. Thanks for the help though!

jeroenvandijk12:04:15

@me1926 ah true. Add this before deftask repl:

(ns-unmap 'boot.user 'repl)

😄 4
jeroenvandijk12:04:26

the other approach sounds reasonable!

👍 4
flyboarder15:04:06

@jeroenvandijk there is not currently a built in task for reading a Lein project file

flyboarder15:04:24

However it’s fairly easy to implement and we recommend it for new users

seancorfield03:04:31

Just to clarify -- as the author of boot-tools-deps -- the reason I archived it is because there are inherent limitations to what you can do combining tools.deps and Boot as an external tool, because Boot's view of classpaths and dependencies has some cognitive dissonance with how the Clojure CLI / deps.edn works. I created the tool as a path to migrate from Boot to deps.edn but in the end, it worked best when you had a working deps.edn project and wanted to add some simple Boot-based functionality to it... Over time, the tooling around deps.edn improved to the point where it was no longer necessary to try to "bolt on" parts of Boot (or Leiningen). My recommendation would be either use deps.edn -- and stick with the tooling supported for that -- or use build.boot and stick with Boot.