tools-deps

Discuss tools.deps.alpha, tools.build, and the clj/clojure command-line scripts! See also #depstar #clj-new
seancorfield 2021-04-09T18:33:54.400200Z

I’m wondering: how many folks are using :override-deps (or :default-deps — but more specifically :override-deps)?

seancorfield 2021-04-09T18:35:49.402400Z

(background: we use it heavily at work but I’ve been looking at Polylith a lot recently and there doesn’t appear to be anywhere to “hang” a single alias with all of the “pinned” deps for a project — and I know our heavy use of :override-deps is somewhat core to our struggles to “fit” the CLI/`deps.edn` world — so I’m thinking that :override-deps is very rarely used in the wild)

tvaughan 2021-04-09T18:39:40.402500Z

We have small-ish monorepo with some libraries, and fulcro front and back ends. 0 uses of override-deps

nnichols 2021-04-09T18:48:35.403Z

I only use it in my personal deps.edn, and mostly for quickly testing version compatibility. I have yet to see it in a project edps.edn file

favila 2021-04-09T18:58:04.403200Z

Using both in a monorepo setup, or at least trying to. We keep encountering odd rough edges where the version replacement doesn’t seem to happen correctly

favila 2021-04-09T18:59:11.403400Z

we use :default-deps to synchronize direct dependencies among monorepo modules. none of them are supposed to use version coordinates, but inherit from default-deps, which is in an alias that must always be active

favila 2021-04-09T18:59:35.403600Z

we use :override-deps to address version-pinning problems for transient deps, e.g. to address CVEs on things we don’t depend on directly

seancorfield 2021-04-09T19:00:22.403900Z

@favila I’m curious how you specify the lib deps where :default-deps plays a role? some/lib nil?

favila 2021-04-09T19:00:39.404100Z

yes

seancorfield 2021-04-09T19:02:08.404300Z

We use some/lib {} with :override-deps. I seem to recall some tooling having a hard time with nil but maybe that’s just in the past. I’m just wondering how much value it is really adding to our setup, since it forces every invocation to specify an alias to pick those overrides up.

seancorfield 2021-04-09T19:03:41.404500Z

If we were using it solely to address transitive deps/CVEs, I wouldn’t be so averse to just duplicating the lib specs — I think Jackson is about the only thing where we have to force an older version due to incompatibilities with some other lib we use…