I had a problem which I thought was that local deps weren't transitive, but appears to be a caching issue:
~/d/t/test-project (master)> tree .
.
├── deps.edn
└── sub-project
├── deps.edn
└── sub-sub-project
└── deps.edn
2 directories, 3 files
~/d/t/test-project (master)> cat deps.edn
{:deps {org.clojure/data.json {:git/url "
https://github.com/clojure/data.json"
:sha "13e9d244678be7b235bb24a10310f9d147ea088d"}
test/sub-project {:local/root "sub-project"}}}
~/d/t/test-project (master)> cat sub-project/deps.edn
{:deps {org.clojure/data.json {:git/url "
https://github.com/clojure/java.data"
:sha "0f06ca5eb08726e74b2dab8654923894b7ace6af"}
test/sub-sub-project {:local/root "sub-sub-project"}}}
~/d/t/test-project (master)> cat sub-project/sub-sub-project/deps.edn
{:deps {}}
~/d/t/test-project (master)> clojure -Spath
Error building classpath. Manifest type not detected when finding deps for test/sub-sub-project in coordinate #:local{:root "sub-sub-project"}
~/d/t/test-project (master)> clojure -Spath -C:test
test:src:/Users/colin/.m2/repository/org/clojure/clojure/1.9.0/clojure-1.9.0.jar:/Users/colin/.gitlibs/libs/org.clojure/data.json/13e9d244678be7b235bb24a10310f9d147ea088d/src/main/clojure:/Users/colin/dev/tools.deps.alpha/test-project/sub-project/src:/Users/colin/.m2/repository/org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar:/Users/colin/.m2/repository/org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar
Here the first classpath with no alias gives an error that the manifest is not supplied.The second doesn't give that error, but returns an incorrect classpath.
I add the manifests:
~/d/t/test-project (master)> cat deps.edn
{:deps {org.clojure/data.json {:git/url "
https://github.com/clojure/data.json"
:sha "13e9d244678be7b235bb24a10310f9d147ea088d"}
test/sub-project {:local/root "sub-project"
:deps/manifest :deps}}}
~/d/t/test-project (master)> cat sub-project/deps.edn
{:deps {org.clojure/data.json {:git/url "
https://github.com/clojure/java.data"
:sha "0f06ca5eb08726e74b2dab8654923894b7ace6af"}
test/sub-sub-project {:local/root "sub-sub-project"
:deps/manifest :deps}}}
And then both work:
~/d/t/test-project (master)> clojure -Spath
src:/Users/colin/.m2/repository/org/clojure/clojure/1.9.0/clojure-1.9.0.jar:/Users/colin/.gitlibs/libs/org.clojure/data.json/13e9d244678be7b235bb24a10310f9d147ea088d/src/main/clojure:/Users/colin/dev/tools.deps.alpha/test-project/sub-project/src:/Users/colin/.m2/repository/org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar:/Users/colin/.m2/repository/org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar:/Users/colin/dev/tools.deps.alpha/test-project/sub-sub-project/src
~/d/t/test-project (master)> clojure -Spath -C:test
test:src:/Users/colin/.m2/repository/org/clojure/clojure/1.9.0/clojure-1.9.0.jar:/Users/colin/.gitlibs/libs/org.clojure/data.json/13e9d244678be7b235bb24a10310f9d147ea088d/src/main/clojure:/Users/colin/dev/tools.deps.alpha/test-project/sub-project/src:/Users/colin/.m2/repository/org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar:/Users/colin/.m2/repository/org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar:/Users/colin/dev/tools.deps.alpha/test-project/sub-sub-project/src
Then if I remove the manifest, I get the error with both:
~/d/t/test-project (master)> cat deps.edn
{:deps {org.clojure/data.json {:git/url "
https://github.com/clojure/data.json"
:sha "13e9d244678be7b235bb24a10310f9d147ea088d"}
test/sub-project {:local/root "sub-project"}}}
~/d/t/test-project (master)> cat sub-project/deps.edn
{:deps {org.clojure/data.json {:git/url "
https://github.com/clojure/java.data"
:sha "0f06ca5eb08726e74b2dab8654923894b7ace6af"}
test/sub-sub-project {:local/root "sub-sub-project"}}}
~/d/t/test-project (master)> clojure -Spath
Error building classpath. Manifest type not detected when finding deps for test/sub-sub-project in coordinate #:local{:root "sub-sub-project"}
~/d/t/test-project (master)> clojure -Spath -C:test
Error building classpath. Manifest type not detected when finding deps for test/sub-sub-project in coordinate #:local{:root "sub-sub-project"}