Fork me on GitHub

eya... do we have anything like for clj -A:new templates yet?


@goomba clj -A:new can use all of the Leiningen and Boot templates (they'll just produce whatever they are designed to produce).




But I doubt there are any clj-specific templates out there (yet).


psssshhhh I made one


you made it easy enough even for a @goomba ™️ to figure out


Oh, there are some ... look for /clj-template in the name.


cool! 😄 (man I was dangerously close to getting "bing"ed again hahaha)


The main issue is that clj -A:new can pull in templates from git or local deps (which lein/boot cannot) and those would never be discovered by


cough this one appears to be missing a vote button 😅


Give the issue a thumbs up emoji, that votes for it


Is it new that -Sdescribe shows deps.edn at the end of :config-files, and not just the system and user deps?

Alex Miller (Clojure team)21:10:50

I think it's always been that way

Alex Miller (Clojure team)21:10:40

I don't remember changing anything about it at least


@cfleming It only shows that if you're in a folder that has deps.edn in it.


Yeah, looking at the history of the script looks like it’s always been like that.


@seancorfield Oh, I see, you’re right.


@alexmiller that’s the source of the weird bug the other day where stijn was getting a spurious dep - he’s on linux, which starts IntelliJ in his home directory, and he had half a deps.edn file in his home dir.

Alex Miller (Clojure team)21:10:23

and by cool, I mean very confusing and not cool


I think that I usually run -Sdescribe without setting the CWD since I didn’t realise it was significant.


It’s a weird one, for sure.


Thanks 🙂


Any chance of ever getting that vector replaced by a map with actual names for the different paths?


It’s really ambiguous now - this has also caused confusion around the system file being bundled in t.d.a, too


I have a feeling I’ve asked for that previously, but I can’t remember the conclusion.


It needs to be ordered -- that's how the files are merged -- and, for a while, the system one was removed from the list because it got built in (but I think it was restored, at least until tooling catches up with that change?).


Well, it was restored, but I think that's why 🙂


Lots of tooling depends on the vector / order so it couldn't change to be a map, but I guess one or more new keys could be added to the overall describe result.


Cursive, for one

Alex Miller (Clojure team)22:10:27

well that's the one I was aware of :)

Alex Miller (Clojure team)22:10:44

I was wondering what else was in the "lots"


Cursive doesn’t really depend on the order per se, but does want to understand which of the files are system/user config files and which are the project files.


True, since the API changed, there should be fewer-to-none using the describe output now 🙂


I've just seen several tool authors talk about reading that list to get at the raw deps.edn files instead -- although I keep telling them not to do that!


depot just went through a major rewrite to "unify" its read/check behavior with its write behavior (it will update deps.edn to use the latest versions of artifacts).


Prior to the rewrite, the read/check behavior used the built-in t.d.a. logic and looked at the resulting deps/versions -- but the write behavior read deps.edn files directly. Now it does it on both paths which completely broke our usage of the tool 😞

Alex Miller (Clojure team)22:10:55

I sent PRs to all the projects I could find using clj -Sdescribe output this summer and it actually emits a big ugly warning to stderr if you use it, which I have seen no one mention

Alex Miller (Clojure team)22:10:04

this is via the ctda.reader/clojure-env


I think depot just reads the local deps.edn by default or the list of files you provide on the command-line otherwise. I don't think it even respects CLJ_CONFIG.

Alex Miller (Clojure team)22:10:44

I am actually working on a bunch of changes in this area right now

Alex Miller (Clojure team)22:10:29

we are naming the different deps files

Alex Miller (Clojure team)22:10:49

how that affects -Sdescribe output tbd (but not planning to break the existing)

Alex Miller (Clojure team)22:10:58

we may need to have a conversation @cfleming to make sure you stay in sync, but I need to work through it a little more first


@seancorfield Right, but you can still apply an ordering to the map elements (i.e. :system comes before :user comes before :project)

Alex Miller (Clojure team)22:10:33

the ordering can be independent (or more likely, fixed)


Anyway, I’m glad to hear changes are coming, much appreciated!

Alex Miller (Clojure team)22:10:17

do you call anything in ?


I don’t think so, let me check…


No, I use c.t.d.a, c.t.d.a.reader and c.t.d.a.util.dir

Alex Miller (Clojure team)22:10:42

that should all be stable (well, I added ctda.reader/user-deps-location if that's useful)

Alex Miller (Clojure team)22:10:45

but I am adding some features that are changing the glue between the clojure script and tda (really all logic in make-classpath)

Alex Miller (Clojure team)22:10:25

so if you're replicating that logic, it will need to change

Alex Miller (Clojure team)22:10:43

but I should really go finish all that so I can get it in rather than talking here :)


Interesting, thanks. I don’t think that’s relevant to Cursive since IntelliJ doesn’t reliably receive env vars from the shell environment, but I do need to allow users to specify where their user deps.edn file is. I already allow that for users using t.d.a directly, but not for CLI users at the moment.


Speaking of which, what’s the state of play of CLI on Windows? I haven’t followed that.

Alex Miller (Clojure team)22:10:04

when you use t.d.a directly, there may be something additional you need to do

Alex Miller (Clojure team)22:10:57

I wouldn't say it's done :)


What is the additional thing I may need to do when using t.d.a?


FYI, all I use in clj-new is

[ :as deps]
            [ :refer [default-deps
            [ :as session]
So I assume I'm safe @alexmiller?

Alex Miller (Clojure team)22:10:22

let me finish what I'm working on and then I can have things to point at

Alex Miller (Clojure team)22:10:57

I can't imagine clj-new is going to be affected by any of this


Ok, I shall await it with bated breath…

Alex Miller (Clojure team)22:10:19

actually it will be able to make use of some new stuff

Alex Miller (Clojure team)22:10:28

but I'm going to go work on it :)