This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-03-06
Channels
- # babashka-sci-dev (56)
- # beginners (13)
- # biff (3)
- # calva (24)
- # cider (2)
- # clj-together (2)
- # clojure (38)
- # clojure-europe (6)
- # clojure-norway (2)
- # clojurescript (1)
- # cursive (5)
- # introduce-yourself (3)
- # pedestal (4)
- # polylith (5)
- # portal (11)
- # re-frame (7)
- # reitit (6)
- # shadow-cljs (12)
- # spacemacs (5)
- # sql (7)
- # tools-deps (1)
Given that Polylith uses :local/root
abundantly, I was wondering about problems with transitive local deps. E.g:
• A requires B && B requires C
• Working on A
• Change something in C
• Clojure Deps does not pick up change in C (must recompute classpath)
However, this wouldn't happen using Polylith because all (local) deps are provided at the level of a project that centralizes everything. Is my understanding correct?
As Braden noted, you develop against the :dev
project so all your code is available in the REPL. If you change a function, eval it into the REPL. I often work for quite a while without even saving files -- just editing and eval'ing and running tests from my editor. I just make sure I have everything saved before I run poly test
.
However, if you add a new lib or change the version of a lib, you'd have to restart your REPL anyway (and the change would get picked up at that point).
If you use the add-lib3
branch of t.d.a., you can add new deps to the running REPL on the fly. That's how I do it.
it's conventional to have your development project depend on all the components directly, so you're not "working on A", you're working on the whole codebase (and happen to have A files open)