This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-10-19
Channels
- # announcements (5)
- # babashka (13)
- # beginners (62)
- # calva (46)
- # cider (24)
- # clj-kondo (4)
- # clojure (12)
- # clojure-europe (21)
- # clojure-hungary (1)
- # clojure-nl (1)
- # clojure-norway (18)
- # clojure-uk (6)
- # clojuredesign-podcast (4)
- # clojurescript (9)
- # conjure (1)
- # core-async (5)
- # datomic (3)
- # emacs (1)
- # holy-lambda (14)
- # hyperfiddle (36)
- # jobs-discuss (3)
- # joyride (7)
- # lsp (35)
- # om-next (1)
- # pedestal (11)
- # podcasts-discuss (1)
- # practicalli (2)
- # releases (3)
- # sci (17)
- # shadow-cljs (5)
- # testing (4)
- # tools-deps (10)
- # vim (2)
- # xtdb (5)
I want to set up a clean env to hack on cider "reproducibly". First attempt was just cloning the repo and using a minimal init.el
with
(setq load-prefer-newer t)
(use-package cider
:load-path "~/contrib/cider"
:demand t)
Though this will complain about
Error (use-package): cider/:catch: Cannot open load file: No such file or directory, parseedn
Before I go any further: should I just add all the packages that are required manually like above, or am I on the wrong path entirely?
Any further advice/resources are highly appreciated, e.g. on
• possible pitfalls, like stale [native?]compiled files
• testing against multiple emacs versionsProbably that approach is workable, but a more standard and enjoyable one would be to make cider a git submodule (or git clone) within your usual .emacs.d
i.e. cider wouldn't be your root thing, but instead just another lib
On non-hack days you would make the repo point at the latest tag (or master
).
On hack days, you branch out
Personally I use bare submodules, although https://github.com/radian-software/straight.el is surely more enjoyable
> testing against multiple emacs versions
I wouldn't care about that a lot, we have a CI matrix. But yeah it's possible! https://github.com/clojure-emacs/cider/blob/f85d5c17043a430d0bb730c6637fba52f5a7f94f/Makefile#L6
Normally I run make
(default task) before any commit and most relevant tests/linting would be run.
Happy hacking!
Thanks!
Just wanted to thank the team (especially @vemv) for the latest releases: they fixed the indentation issues I ran into a while back! Thanks! ❤️
Thanks to you! Curious, were you using clojurescript? Because that one has a funny story behind
On ClojureScript, repl detection used to be wrong (it was detected as a clj repl, at times), so fixing that broke indentation The fix was using the clojurescript analyzer info more comprehensively. Sometimes things have go get worse before they get improved 🌀
Well, thanks for looking into it, despite the very limited info I provided. I'm thinking about how to avoid disruption in the future, though — when CIDER breaks, my work essentially stops. This indentation problem meant I couldn't commit changes, for example. And Emacs doesn't make it easy to downgrade MELPA packages.
In an ideal world we would have a fantastic test suite. We currently have a just-fine one. Everyone deserves stability, so a good measure if you cannot afford 'downtime' so to speak would be to use Git-based lib management (e.g. https://github.com/radian-software/straight.el) instead of package-based. Personally I use a mixture of MELPA (most stuff) and bare git submodules (critical bits). I've had it like that for 10+y and it's fanstatic - my Emacs is the one place in my laptop that never randomly breaks :)
I also want to thank whoever elucidated why I was getting No comment syntax defined all the time. I’ve unbound comment-line now, too, so hopefully I’m not going to trip up on that while bumbling around emacs
@U01320BR6US found it and we got it in here https://github.com/clojure-emacs/cider/pull/3538 (cider + clojure-mode)
That was driving me crazy!
We're working on these https://github.com/clojure-emacs/cider/labels/inspector , if there's anything else you'd like to see in the Inspector, this is your chance
I suppose that the tapping of values from the inspector is in your pipeline already. See my PR here https://github.com/clojure-emacs/cider-nrepl/pull/824 which implements the nrepl side of it.
Having the inspector as a tap target would be cool, if that’s not already on the list.
Like a cider portal
Yes, we have https://github.com/clojure-emacs/cider/issues/3055 it's possible to quickly hack something locally as described in OP. I've been using something like that, for a few weeks. The main challenge is making it truly 'production ready'
Oh cooll!! Glad to see you’re thinking about this