Fork me on GitHub
#tools-deps
<
2021-08-31
>
seancorfield02:08:21

(that's with HoneySQL's repo but I can repro this in any project where I try to select a different version of Clojure with -X)

slipset08:08:54

There is some traffic on the issues for http://github.com/slipset/deps-deploy I’d be happy to work on it, but it seems a bit of waste if the tools stuff is going to handle deploys. So, while not asking for a timeline nor a roadmap, what would the probability be that tools gets a deploy feature within 2021?

Alex Miller (Clojure team)12:08:05

It’s not something I’m working on or expect to work on soon, but is an area I’ve looked at and would like to have a more comprehensive deps based answer to

slipset13:08:31

Cool. Just for the record. I’d be happy to retire deps-deploy the moment there is support in tools for it.

Alex Miller (Clojure team)14:08:52

new CLI prerelease 1.10.3.967 is now available - undid the compilation of the exec stub, that's just too fragile

seancorfield16:08:52

Confirmed that works with -X and different versions of Clojure. Thank you!

Alex Miller (Clojure team)14:08:08

I'll probably release to stable tomorrow

borkdude14:08:25

@alexmiller care to elaborate why the exec stub compile was too fragile? is tool.deps still compiled?

Alex Miller (Clojure team)14:08:51

well, it has to mix into anyone's classpath that's using -X or -T so any pre-compilation risks tying you into a Clojure version and I'd rather have as few constraints there as possible. plus, it's just one namespace, so I can't imagine it really matters much anyway

Alex Miller (Clojure team)14:08:14

still compiling the tools.deps entry points - that's all internal to the cli so much safer

👍 1
Alex Miller (Clojure team)14:08:07

it's not really a huge win (most of the code is calling into stuff like maven which is all compiled Java anyways), but it helps a little

Alex Miller (Clojure team)14:08:16

it's interesting to consider the compilation story for -X and -T calls. you can still use the techniques in https://clojure.org/guides/dev_startup_time but I have spent some time looking at automating it inside the CLI (since it knows the classpath, the entry point, etc - it has all the knowledge). there are some tricky corners though so it's a future area to consider.

borkdude14:08:38

yes. I think the -X stuff could probably be done in the CLI (in deps.clj this would probably be trivial) and transformed to a program which is then handed off to the JVM.

seancorfield16:08:08

@U04V15CAJ We rely on the exec stuff from our build.clj at work because we have several things we were running with -X before that we now run in process so we build a command-line that we actually run with the exec stub so that it can do EDN parsing of arguments. @alexmiller has indicated that might get lifted out into a library of some sort so it can be reusable (since it's kinda hard to use the exec JAR as part of a classpath).

Alex Miller (Clojure team)15:08:07

how would that be different than what it does now?

borkdude15:08:30

not sure if that would have any benefits to be honest