edge
edge copied to clipboard
A single version of 3rd party dependencies with tools.deps
Would be desirable for a number of reasons to guarantee a single version of each 3rd party lib across all modules, not the case for now:
etc..
In Lein this would be where managed deps comes in.
Doesn't seem to be any great way to do this with current tools.deps, one (admittedly clunky) option would be a deps.edn in the root of edge with an alias of override deps for all the 3rd party libs. Set CLJ_CONFIG to the root of edge and make sure that alias is always specified.
Or a Make/Mach preprocessor?
I'm not keen on any solutions that require setting CLJ_CONFIG.
The primary reasoning being that it stops me from setting useful aliases in my personal development setup.
e.g. if I'm working on kick, I have :user/kick
setup for my machine paths.
There has been some indication that tools.deps will expose the required data for this feature at some point. However, this is not a major issue from the perspective of tools.deps. This is because tools.deps doesn't resolve dependencies like maven does. Maven uses the first version it finds, which could be very old, or very new. tools.deps uses the most recent version, which alleviates the common path of unintentionally using old versions of transitive dependencies.
gone stale!