nrepl 2024-08-20

Hi all, I have just bumped cider to v1.13.1 - has anybody seen this error on jack-in? > error in process sentinel: Could not start nREPL server: Downloading: cider/cider-nrepl/0.45.0/cider-nrepl-0.45.0.pom from clojars > Downloading: cider/orchard/0.22.0/orchard-0.22.0.pom from clojars > Downloading: mx/cider/logjam/0.2.0/logjam-0.2.0.pom from clojars > Downloading: cider/orchard/0.22.0/orchard-0.22.0.jar from clojars > Downloading: mx/cider/logjam/0.2.0/logjam-0.2.0.jar from clojars > Downloading: cider/cider-nrepl/0.45.0/cider-nrepl-0.45.0.jar from clojars > Execution error (IllegalArgumentException) at orchard.misc/require-and-resolve (misc.clj:161). > No such namespace: orchard.java.parser-utils

Maybe you're on linux and don't have a full JDK?

uhm I have > openjdk version "21.0.4" 2024-07-16 LTS > OpenJDK Runtime Environment Temurin-21.0.4+7 (build 21.0.4+7-LTS) > OpenJDK 64-Bit Server VM Temurin-21.0.4+7 (build 21.0.4+7-LTS, mixed mode, sharing)

the above seems like a namespace missing though

should I try another JDK (zulu) ?

the namespace can fail to load if the jdk isn't full i.e. it doesn't have its sources available

cider docs indicate how to install them for different linux distros

ok let me try that

I was on 1.15.1 and it did not seem to break

I also tried (setq cider-enrich-classpath nil) and it still happens

but do you have a full JDK?

still checking

seems like I do not have sources / docs

my configuration comes from either devbox or asdf (global project by project) and I don't think they can include sources/docs Is there a way to disable that check and avoid the failure?

I assume this is all the output you get? There is no full exception available somewhere in the *`nrepl-server*` buffer?

let me see

I can send a .edn file - but do you want me to open an issue in github instead?

(it is against cider I guess?)

Send in the file and let's see what the best place for the issue is:)

👍 1

by the way I had this problem with the temurin-jre-21.0.4+7.0.LTS but unfortunately sometimes you don't have control over what gets installed (as mentioned above)

👍 1

> my configuration comes from either devbox or asdf (global project by project) and I don't think they can include sources/docs In many years we've never heard of someone unable to have a full JDK. I don't know those two tools in detail, I hear asdf is flexible by design. In general, everything is just software, hackable. If you can give it a good try, it would be the simplest fix and also an enhacement in our user manual.

but unfortunately sometimes you don't have control over what gets installed (as mentioned above)
Agreed, this shouldn't be a hard requirement for the whole CIDER. It never was.

sounds good - the devbox.json config is embedded in the repo and probably I can convince the team to change stuff

I think you can file it against Orchard. I'll get the JRE and try to reproduce it

🙏 1

it's a "dev" conf so not being able to use cider is probably a no go and the embedded conf will likely be changed

But I would also advise you to get the JDK if possible

@vemv It's not about the sources; JRE doesn't have a jdk.javadoc.doclet.Doclet class (and probably other classes)

👍 1

It's the same thing IME, a non-full (prod-oriented) JDK misses that stuff

This can be one of the warnings that CIDER displays on connect ("you are using JRE, switch to JDK for reliable experience")

That defers something that has to be done anyway. It's reasonable to force people to do something that takes a few minutes to accomplish, else we're back at debugging other people's machines/environments (we've never had an issue with this policy, that I remember)

> takes a few minutes to accomplish Not necessarily. In any case, the end result for the user should not be a random unrelated exception.

I'd welcome such a PR, but not sure about the current one

tldr, degraded modes increase the support burden, our support budget is already pretty scarce so it's a known-good approach to fail-fast (we already do for other conditions anyway)

Agree with Alexander here but also thinking it might be low prio as there is clear direction given in the readme

Will open an issue shortly - thank you both for the support

But it looks like some other things need fixing too