ring

ezmiller77 2018-06-04T00:20:29.000151Z

Here's a repo illustrating the problem I've been having: https://github.com/ezmiller/datomic-ring-dep-conflict

seancorfield 2018-06-04T03:21:51.000088Z

@ezmiller77 You might want to update the README to explain what the problem actually is and what you've tried so far to resolve it...

2018-06-04T13:42:58.000231Z

Looks like a dependency issue, @ezmiller77. Perhaps try checking lein deps :tree for conflicts.

ezmiller77 2018-06-04T13:44:02.000150Z

@weavejester got solved overnight. The trick was to specify a jetty-server version. Hopefully, the datomic folks will add it to there docs. Seems others wasted a bunch of time trying to figure this one out as well.

2018-06-04T13:44:30.000477Z

Glad you got it sorted

seancorfield 2018-06-04T17:03:58.000079Z

To be honest @ezmiller77 this sort of thing -- version conflicts in transitive dependencies -- is fairly common, so adding exclusions and then also adding specific versions of the excluded libraries is just something we have to get used to with Maven dependency resolution 😐 We have several dependencies at work on external Java libraries and we have to have a fairly long list of exclusions and a long list of top-level dependencies for stuff that our code "needs" transitively even tho' none of those libraries are explicitly used by our code.

seancorfield 2018-06-04T17:05:27.000281Z

We rely on Microsoft Azure authentication for a couple of apps and their libraries bring in all sorts of transitive dependencies that conflict with several other libraries we use. Every time we want to update the Azure library, we have to go through a big dependency dance to ensure we have the right exclusions and the right set of top-level dependencies 😞

ezmiller77 2018-06-04T17:23:28.000022Z

Yeah. I saw somewhere else that this has something to do with how Java and thus clojure deals with dependencies. It's a pretty big weakness. I haven't been that frustrated in solving a problem in years. Ironically, I was longing to get back to the ease of the Javascript dev environment, and if that's the case you know something's off 😉

jumar 2018-06-05T08:12:39.000307Z

To be honest, I think Java/JVM has one of the best tools for dependency resolution. It's still broken, but others are so much worse.