no additional deps for the repl, or started on launch?
Assuming deps.edn to form classpath and deps right?
Culprit is nrepl
For non-local processes, I just provide a JVM option when starting the JAR or when running clojure
.
For my local dev process, I have a Clojure script that starts Rebel Readline, Reveal, and a Socket REPL (in a DynamicClassLoader), and that also sends a custom view into Reveal (that makes it more like REBL). But I could just run clojure
to start a REPL with a JVM option.
https://github.com/seancorfield/dot-clojure is my ~/.clojure/deps.edn
file and the dev.clj
I start my REPL with, but on QA/production, we just start JAR files with a JVM option to start the Socket REPL — yup, we run REPLs in production.
Awesome! Thanks. Will check out the setup. Been meaning to revamp. Had the same process now for years.
I use VS Code + Clover for Clojure evaluation. I have Calva installed for everything else Clojure-related (but I have its nREPL features turned off). My VS Code / Clover set, with all the tap>
extensions to work with Reveal, is also on GitHub https://github.com/seancorfield/vscode-clover-setup
(I used Emacs on and off for twenty years but I was happy to move off it — initially to Atom in 2015 and then to VS Code last year)
Fair. Going to be setting up some proper dev infra later this year. Will checkout the socket stuff. Emacs has worked well for me for a while. Think if I moved away I’d go to a slimmed down IDEA. But relearning key bindings for a whole new ide is going to be painful.
VSCode is nice. But if I move I expect it will be to gain static analysis and broader language support. Also concerned about VSCode performance
Thanks for the feedback. Appreciate the pointers. Also, a general thanks for being so active on here and in the broader ecosystem. Helps us all
Re: VS Code performance — I work with 113K lines of Clojure at work all-day, every-day in VS Code and it’s fine. Calva also has LSP under the hood and clj-kondo so you can get a lot of static analysis for Clojure, even without a REPL running.
I am trying to run a project locally inside a project which has a conflicting dep:
$ clojure -M:babashka/dev recent-clj-kondo
Error building classpath. Unable to compare versions for borkdude/sci: {:local/root "/Users/borkdude/Dropbox/dev/clojure/babashka/sci", :deps/manifest :deps, :deps/root "/Users/borkdude/Dropbox/dev/clojure/babashka/sci"} and {:mvn/version "0.2.4", :deps/manifest :mvn}
I would say: always prioritize the local/root?I don't understand where it gets 0.2.4 from and I can't see this with clojure -Stree
my bad, I added a dep in my home .clojure/deps.edn for testing something and this pulled in 0.2.4
Request to improve developer experience:
Basic sanity checks of deps.edn keys.
The one I've run into a few times is adding :jvm-opts
as a top level key, but it can only be supplied within an alias. It would be nice to get an error or at least a warning if this key is present in the top level map.
@danvingo clj-kondo already does a couple of these sanity checks. feel free to request more
in an issue
thanks borkdude! good to know, will try it now