Cross-post from #cider I just got an excuse to dive into a lot of new libraries/frameworks after only dabbling in clojure for 2-3 years. Fulcro led me to mount. Swagger led me back to Immutant (which I've really enjoyed using) and reitit. I'm not sure how obscure this stack really is. Maybe it would be "mainstream" (for clojure) if I switched from Immutant to Jetty (I'll probably try that for grins after I post this, just to see). When I manually run (stop), recompile my http-server ns, and then run (start), everything works the way I expect. When I just C-c C-k (yes, I'm using CIDER) to compile the ns, (stop) does not get called. So compilation fails because the port is already bound. Is this normal? Am I doing something wrong? Is this just a weird interaction between the way mount works and cider handles compilation? Should I do something different? Thank you!
I don't think this is something with cider or mount but rather with the server release port bind timeout. this is somewhat common across servers. one thing you can do is to add ^{:on-reload :noop}
for the server state which will not restart the server during the namespace recompilation
here is an example: https://github.com/tolitius/hubble/blob/master/src/clj/hubble/server.clj#L51
it still will restart the server on (mount/start) (mount/stop)
, but not on a namespace recompilation
Awesome, thank you!
of course
here is some docs about it: https://github.com/tolitius/mount#on-reload