Closed rome-user closed 11 months ago
Thanks for taking the time to point this out. @TimoKramer @jsmassa are you aware of a way to handle this with deps? I think we discussed it at some point.
with deps we have to use aliases and @jsmassa was already starting to take things apart but the PRs stalled. we have to go through all the replikativ-libs to resolve this issue.
Although this is manual work, I think deps.edn lets you create a pom.xml file. Then you can edit the scope of dependencies in there. The downside is that you now have to maintain two sets of dependencies: those declared in deps.edn and those declared in pom.xml
Editing pom.xml
files separately is really not ideal. Aliases seem to be the official way https://clojureverse.org/t/how-to-provide-a-dependency-scope-in-tools-deps/1862. But I guess there are problems for downstream users with this approach, I don't know how Maven users would do this for instance(?) We can also fix any of the other replikativ libs.
@rome-user I agree that Datahike should be as lean as possible and it actually does not require more than JDK, Clojure and core.async, some serialization libs + replikativ libs atm. Are you running in specific obstacles?
No specific obstacles besides uberjars being very large (as they will inevitably bundle CLJS and related libraries), and the dependency tree having a lot of conflicts.
using exclusions for now
The latest release https://github.com/replikativ/datahike/releases/tag/0.6.1549 has the clojurescript-dependency removed. @rome-user
What version of Datahike are you using?
latest
What version of Java are you using?
17
What operating system are you using?
N/A
What database EDN configuration are you using?
N/A
Describe the bug
When project was using Leiningen, ClojureScript and some other libraries were declared with
:scope "provided"
. This allowed users to supply e.g. their own ClojureScript dependency, or simply not provide it if they did not use the functionality requiring ClojureScript.What is the expected behaviour?
I can use this in pure Clojure project without needing to pull in ClojureScript, cljs-node-io, etc.
How can the behaviour be reproduced?
Running the following commands
we see various CLJS dependencies pulled in, despite not using CLJS