Fork me on GitHub
#boot
<
2018-01-25
>
Petrus Theron14:01:11

Does boot support the deps.edn :git/url style dependencies?

seancorfield16:01:37

@petrus boot-tools-deps doesn't support Git yet -- I've been holding off doing additional work on it until tools.deps stabilizes a bit (I think the last round of refactoring in tools.deps may have broken boot-tools-deps anyway). I'm hoping to spend this weekend bringing boot-tools-deps back up to the latest version and seeing how to make the Git stuff work. It'll be quite a change, I expect.

seancorfield16:01:31

Part of the issue is the tension between how Boot handles dependencies and how tools.deps handles them. For example, :scope doesn't work as expected for transitive dependencies so you can end up with unexpected libraries on your classpath if you're trying to build a project, rather than just run it (since clj and tools.deps is about running code, not building projects).

Petrus Theron17:01:15

Can I use Lein to fetch Git dependencies and then pass them as checkouts to boot?

Alex Miller (Clojure team)18:01:06

lein doesn’t have the ability to work with anything but Maven artifact-based deps afaik

kanwei19:01:30

Hey, what's a good way to run a command after "boot dev"?

kanwei19:01:45

I want to make it just run "(mount.core/start)" after

seancorfield21:01:49

@kanwei Look at the call task -- it can run Clojure expressions

seancorfield21:01:17

(you'll need to require the ns first, then call the start fn)

kanwei21:01:33

@seancorfield thanks! will look into that

kanwei22:01:31

@seancorfield tried to implement it like this, but didn't work.

kanwei22:01:33

(call :once true
                 :eval '((require 'mount.core) (mount.core/start))
                 )

seancorfield23:01:22

@kanwei Because that's not a legal Clojure expression -- you're going to get the result of the (require ..) and then call it as a function passing (mount.core/start) as an argument.

seancorfield23:01:48

add do at the beginning of that form and see if that works.

Alex Miller (Clojure team)23:01:57

I don’t think that will work either - isn’t that the Gilardi Scenario?

seancorfield23:01:30

Hah! Yes, I'd forgotten. So @kanwei will need two :eval arguments...

seancorfield23:01:59

(call :once true :eval "(require 'mount.core)" :eval "(mount.core/start)") I think?

seancorfield23:01:47

(I know that works from the command line because I've specified multiple -e arguments with a require as the first one)