Fork me on GitHub

tried a brew upgrade today:

% brew upgrade clojure/tools/clojure
==> Upgrading 1 outdated package:
clojure/tools/clojure ->
==> Upgrading clojure/tools/clojure ->

==> Downloading 
Already downloaded: /Users/ikoszo/Library/Caches/Homebrew/downloads/5c6b0abbbfd924d4e8b2057a3a9f89f28760bf1ef52d1467abee7d379fa0737f--clojure-tools-
Error: An exception occurred within a child process:
  NoMethodError: undefined method `path' for nil:NilClass
Did you mean?  paths


did I mess something up here?

Alex Miller (Clojure team)15:08:36

I think someone else reported this somewhere - what mac os are you on?

Alex Miller (Clojure team)15:08:05

I think it's something in brew itself

Alex Miller (Clojure team)15:08:13

yeah, this same error was reported last week on macOS 12.0 beta


macos 11.5.2


let me try a debug upgrade

Alex Miller (Clojure team)15:08:06

can you run brew doctor ?


sure thing

Alex Miller (Clojure team)15:08:07

seems like often this error occurs if xcode is out of date

Alex Miller (Clojure team)15:08:21

according to the googles


doctor does report my xcode is out of date


I'll try to update that


cheers, that indeed fixed it!

👍 3

interesting tho, the xcode update had to be forced, it did not show up in any lists


Is there a way to specify a subdirectory in a git library in my deps.edn? I.e. the pom.xml and src dir are not in the root of the git repo.


:deps/root ?


Optional key :deps/root

Specifies the relative path within the root to search for the manifest file


Bet that's it! Thanks @clj149 (and for the reference link)!

👍 3
Alex Miller (Clojure team)20:08:01

New prerelease of Clojure CLI version is now available. The only change in this is an update to all deps (aws api, maven resolver, maven core). I did find one pretty glaring breaking regression in the latest maven core which I suspect will be rolled back in the next release, but it's patched around in tools.deps. One other notable change is that the latest maven core fixes a lot of concurrency issues that were introduced in the prior version (which does coincide with our increase in seeing those issues with the Clojure CLI). So, hopefully, this is better behaved in that respect. Anyways, if anyone wants to try it out, would be grateful for any reports.


I started looking into what it would take to add lein project.clj manifest support to tools.deps.alpha and wanted to see what might or might not be acceptable w/r/t adding additional deps: 1. OK to pull in leiningen-core and use its project.clj reading code? 2. better to reimplement just enough project.clj reading in tools.deps.alpha to get what we need? 3. don't work on this right now because reasons? :)

Alex Miller (Clojure team)20:08:22

2. unsure what the effort/reach of doing this without 1 yields


yeah. it looks like there is potentially a decently-small subset of the project.clj reading code we could copy from leiningen-core b/c we don't need / want e.g. profiles support, etc.

Alex Miller (Clojure team)20:08:26

the impl should look like - that's basically the same set of extension methods that need to be implemented (plus adding the manifest-type detector at the top of


yep, makes sense


@cap10morgan should be possible to develop somthing like that: deps.edn

{:aliases {:lein {:deps {...lein-deps-connect ...} :fn lein-deps-connect}}}
Then you run clj -X:lein uberjar and it will generate an uberjar following project.clj spec


that's not quite what I'm trying to do


I'm trying to add support to tools-deps so that you can specify a lein-only dependency (most often as a git lib) and it will read from the project.clj (vs. needing to add a pom.xml to the repo)


yeah it will be harder.


@alexmiller what is the top level repo I need to build a clojure command w/ my modified tools.deps.alpha?

Alex Miller (Clojure team)21:08:36

the easiest way is to actually NOT do that

Alex Miller (Clojure team)21:08:34

instead, modify your which clojure in the line that starts tools_cp=" to include at the beginning /path/to/your/tools.deps.alpha/src/main/clojure:

Alex Miller (Clojure team)21:08:20

then your own tools.deps source is hooked into your existing clj (make sure to use -Sforce to ensure you're triggering classpath gen)


ah, beautiful. thanks!


Got a first basic cut at project.clj manifest support working: