Fork me on GitHub
#polylith
<
2022-06-01
>
oly07:06:02

Hoping someone can shed some light on this I have been hitting this issue Could not locate reitit/coercion/malli__init.class, reitit/coercion/malli.clj or reitit/coercion/malli.cljc on classpath which I have resolved by removing .cpcache from the project and base I had added it to my deps file i project, what I do not get is why I need to remove these folders something seems to be preventing it from picking up the new dependency I added to the project I am guessing this is not normal behaviour ?

Hukka08:06:16

I had these issues before upgrading the clojure command line tools (`clojure -version`) although perhaps I just haven't added dependencies with repl open lately

oly09:06:29

currently on Clojure CLI version 1.10.3.986 I will update to 1.11 and see if it occurs in the future, I have seen it happen a few times, just wastes time till I think to clear cpcache 🙂

oly09:06:41

at least I do know how to get around it

seancorfield19:06:03

It was a bug in tools.deps.alpha (and the CLI) and it was fixed in https://clojure.org/releases/tools#v1.10.3.1020 back in November last year -- @UU67HFS2X I'd recommend keeping your Clojure CLI up-to-date as it gets new releases almost every month. I use brew (on both macOS and Linux) to help keep mine up to date.

Oliver Marks13:06:51

okay great, ironically I maintain package updates for linux but for some reason I had disabledd them on that machine so had an older manual install probably from testing, switched back to one in the repo so hopefully it will not happen again, but thanks for the info

greg21:06:11

Does polylith check against circular dependencies between components?

seancorfield22:06:17

Yes:

poly check
  Error 104: A circular dependency was found in the batch-jobs project: environment > slack-notifications > environment

seancorfield22:06:40

(I put that in our code at work, just to check @U023TQF5FM3)

greg22:06:29

What are the advantages of using polylith over a bunch of libraries held locally, but structured in a way polylith does it: components, bases, projects?

seancorfield22:06:12

The main benefit you get is tool support: the poly tool can check the consistency of your repo, in terms of dependencies needed to build artifacts etc, it can show the dependencies between bricks/projects, the libraries (and versions) being used across every brick/project, and it can run incremental testing for you (only running tests for code that depends on bricks that changed).

seancorfield22:06:38

That also gives you "profile" support which is part of the "swappable component implementation" stuff (which we use at work for a couple of things).