Fork me on GitHub
#clojure-uk
<
2020-09-10
>
mccraigmccraig06:09:27

¡¡måning¡¡

dharrigan06:09:32

Good Morning!

yogidevbear07:09:36

Anyone seem the photos of SF yesterday?

yogidevbear07:09:05

It's like a scene out of The Martian

Ben Hammond08:09:42

i like the idea that the iphone photography software assumes its wrong, and rebalances the colours

seancorfield15:09:22

Not only iPhone. I took some photos with my One+ 7 Pro and they also got color-corrected 😞

Rachel Westmacott09:09:26

Morning! is anyone here using deps.edn, and if so do you have a "lein-ancient" equivalent that is prefered?

rickmoynihan09:09:07

@peterwestmacott yes we use it. You can use Depot or deps-ancient for that… See also: https://github.com/clojure/tools.deps.alpha/wiki/Tools

Rachel Westmacott10:09:13

depot is not actively maintained, deps-ancient is broken for the latest tools.deps and antq doesn't actually update your dependencies - am I missing something?

dominicm10:09:48

I think depot works despite being done.

dominicm10:09:01

Most tools won't touch your deps.edn to protect your comments and such.

seancorfield15:09:22

Not only iPhone. I took some photos with my One+ 7 Pro and they also got color-corrected 😞

seancorfield15:09:44

@peterwestmacott Depot has an update mode but I think tools modifying my project config is a Bad Idea(™). My main complaint with most of these outdated deps tools is that they don't follow the same semantics as the CLI / deps.edn because they try to read the EDN files directly instead of relying on t.d.a's semantics for finding and merging dependencies under aliases etc.

seancorfield15:09:15

(in particular, we use CLJ_CONFIG at work to override the user-level deps with a repo-specific one, and then we have a deps.edn in each of our 30+ subprojects in the repo -- and we rely heavily on :override-deps in the "master" file, which those tools can't cope with)

Rachel Westmacott15:09:24

we've gone with depot for now - it claims to leave your whitespace and comments alone

seancorfield15:09:32

We used to use Depot at work. Up to 1.8.4 (where it used to follow the CLI / deps.edn semantics correctly). But the update code used different rules to the reading/reporting code, and then in 2.x they switched the reading/reporting code to use the same (incorrect) semantics as the update code. Argh!

Rachel Westmacott15:09:13

I'm curious about "they don't follow the same semantics as the CLI / `deps.edn` " - what problems do you actually see in the real world as a result?

seancorfield15:09:27

So I wrote my own, using a shell script that just runs clojure -X:deps tree against two sets of deps (the repo set and a synthetic set created from those).

seancorfield15:09:32

As noted above: not respecting CLJ_CONFIG, not working properly with aliases, not following :local/root semantics. Lots of things that are avoided by leveraging t.d.a instead of just trying to read EDN files directly.

👍 3
seancorfield15:09:50

Reading the EDN only works in very simple setups.

seancorfield15:09:10

I suspect I'm more sensitive to that issue because of the setup we have at work: a monorepo with lots of subprojects, that depend on each other via :local/root, and nearly all of our dependencies are specified as {} for the version, which is supplied from a separate deps.edn alias (`:defaults`) via :override-deps.

👍 3
Rachel Westmacott15:09:18

It feels a bit like there's a world of things cobbled together (not in a derogatory sense) around deps.edn but as yet no Right Way(™) to do it all

Rachel Westmacott15:09:03

I guess it is still alpha!

seancorfield15:09:12

It will be interesting to see what tools.build offers.

👀 3
seancorfield15:09:41

I've talked with Alex a lot about that, in the context of JAR building and depstar.

Rachel Westmacott15:09:42

is that a secret project?

Rachel Westmacott15:09:57

or am I bad at search engines?

seancorfield15:09:06

Alex has mentioned it on and off in some Inside Clojure blog posts and in the #tools-deps channel here.

seancorfield15:09:02

It's stuff that's coming out of the work they do at Cognitect on Datomic and other projects. Beyond it having a JAR builder feature, not much has been discussed in any detail.