Fork me on GitHub
#cider
<
2019-06-25
>
soulflyer06:06:51

I have a problem with the newest refactor-nrepl 2.5.0-SNAPSHOT included when I do a cider-jack-in. I can get working again by specifying 2.4.0 and starting the repl with lein and doing a cider-connect but then I get a version mismatch with clj-refactor. Anyone else seeing this?

error in process sentinel: Could not start nREPL server: clojure.lang.Compiler$CompilerException: Syntax error compiling at (refactor_nrepl/core.clj:101:29).
#:clojure.error{:phase :compile-syntax-check, :line 101, :column 29, :source "refactor_nrepl/core.clj"}
 at clojure.lang.Compiler.analyze (Compiler.java:6808)
    clojure.lang.Compiler.analyze (Compiler.java:6745)
...
...
    clojure.main.main (main.java:37)
Caused by: java.lang.RuntimeException: No such var: fs/hidden?
 at clojure.lang.Util.runtimeException (Util.java:221)
    clojure.lang.Compiler.resolveIn (Compiler.java:7387)
...
...
lein ancient and paradox-list-packages tell me I'm up to date, and the problem is appearing on multiple projects including one that I know worked a few days ago.

borkdude13:06:05

Is there a difference in licensing when you commit inlined deps to your repro (like eastwood does) or only distribute those in your .jar on clojars (like cider-nrepl does)? Eastwood mentions the libs explicitly with their licenses, but CIDER-nrepl doesn't

bozhidar13:06:14

@soulflyer I think that some deps upgrade broke clj-refactor’s master. There’s a ticket about this in refactor-nrepl’s repo, but it seems no one had the time to investigate the problem.

👍 1
bozhidar13:06:00

@borkdude I guess it depends on the licenses of the libraries. Frankly, I didn’t really think about this much. I don’t think this changes anything the way cider-nrepl (mranderson) does it, as you end up distributing the code in pretty much the same way as it normally would be. Only the namespaces get changed.

borkdude13:06:30

I'm also inlining some deps for a library, that's why I wondered. I'll probably do it like eastwood

bozhidar13:06:37

MrAnderson came after Eastwood and I’d suggest its approach simply because it makes it very easy deal with multiple deps and switch between versions.

bozhidar13:06:26

I think that deps obfuscation should be completely transparent.

bozhidar13:06:52

Btw, why do you need to inline deps? Isn’t clj-kondo typically used a pre-compiled binary?

borkdude13:06:06

@bozhidar two reasons: 1) clj-kondo can also be used as a JVM library. 2) I want to maintain a fork of rewrite-clj with different namespace prefixes to patch some things or maybe optimize a thing or two

borkdude13:06:57

Some people are using clj-kondo in CI using the JVM.

bozhidar13:06:24

Well, in this case I’d just add a direct dependency to your fork with its changed namespace.

bozhidar13:06:39

In practice this would mean no runtime conflicts anyways.

borkdude13:06:17

that's right, but right now rewrite-clj can't run with the newest tools.reader, so I'm also inlining that

borkdude13:06:41

the forked version will live in a subdirectory of the repo, it makes no sense to split it out, since it's the only place where it should be used

bozhidar13:06:25

Fair enough.

bozhidar16:06:58

@dpsutton It’s done (the var-query exclusion problems).

dpsutton16:06:49

awesome! apropos should be much better after releases of orchard and cider-nrepl

dpsutton16:06:56

oh i see you already did that. awesome. i'll try at lunch!