Fork me on GitHub

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 (
    clojure.lang.Compiler.analyze (
    clojure.main.main (
Caused by: java.lang.RuntimeException: No such var: fs/hidden?
 at clojure.lang.Util.runtimeException (
    clojure.lang.Compiler.resolveIn (
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.


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


@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.

👍 4

@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.


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


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.


I think that deps obfuscation should be completely transparent.


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


@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


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


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


In practice this would mean no runtime conflicts anyways.


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


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


Fair enough.


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


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


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