Fork me on GitHub
#tools-deps
<
2018-07-09
>
dnolen01:07:48

seems like there’s a bug with git deps where top-level :paths applies instead of the defaults or whatever is supplied in the git deps.edn

Alex Miller (Clojure team)03:07:40

Yes, there is a ticket for it

dominicm13:07:16

Worse than the silently ignoring problem, I seem to have encountered a case where all aliases are ignored if one of them is not present.

Alex Miller (Clojure team)13:07:31

I’m planning to look at this today

dominicm13:07:36

fwiw, they weren't all ignored. Just no fetching took place. I haven't looked hard at this, but it confused me.

kenny20:07:59

I seem to be running into an issue with local deps. If I have this directory structure

app
lib1
lib2
with app/deps.edn as
{:deps {lib2 {:local/root "lib2"}}}
and lib1/deps.edn as
{:deps {}}
and lib2/deps.edn as
{:deps {lib1 {:local/root "../lib1"}}}
and I run clj -Spath in the app directory, I get this message:
Error building classpath. Manifest type not detected when finding deps for lib2/lib2 in coordinate #:local{:root "lib2"}
Are nested local dependencies supposed to work?

Alex Miller (Clojure team)22:07:50

Shouldn’t your app one have ../lib2 ?

kenny22:07:20

You're absolutely right. That's what I get for working while hungry...

hagmonk22:07:07

Oh wow, I came here to report the same thing, except I've had lunch so I know it's a bug :)

kenny22:07:19

I think I'm hitting the same problem with a slightly different directory structure. Except this time it is correct.

lib1
lib2
samples/sample1
with lib1/deps.edn as
{:deps {}}
and lib2/deps.edn as
{:deps {lib1 {:local/root "../lib1"}}}
and samples/sample1/deps.edn as
{:deps {lib2 {:local/root "../../lib2"}}}
and I run clj -Spath in the samples/sample1 directory, I get this message:
Error building classpath. Manifest type not detected when finding deps for lib1/lib1 in coordinate #:local{:root "../lib1"}

hagmonk22:07:46

Yeah same issue:

./libs/dep-b
{:deps {org.clojure/clojure {:mvn/version "1.9.0"}}}
./libs/dep-a
{:deps {dep-b {:local/root "../dep-b"}}}
./apps/foo-app
{:deps {dep-a {:local/root "../../libs/dep-a"}}}

hagmonk22:07:35

I can work around it by having libs/dep-a refer to ../../libs/dep-b instead, but that is only a coincidence in this case, if apps was one level deeper it wouldn't work

kenny22:07:04

Oh ok. That's a nasty one.

hagmonk22:07:32

push the "vote" button :)

4
kenny23:07:08

It looks like the user in that issue is able to get output from clj -Spath though.

kenny23:07:46

But it sounds identical. Perhaps an older version of tools-deps didn't have this error message.

hagmonk23:07:45

I thought :deps/root might be another way to dig oneself out of this hole, but perhaps I'm misunderstanding how that works