Fork me on GitHub
#polylith
<
2022-03-06
>
Adam Helins08:03:42

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?

seancorfield17:03:52

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.

seancorfield18:03:04

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).

👍 1
seancorfield18:03:38

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.

👍 1
Braden Shepherdson13:03:46

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)