Fork me on GitHub
#tools-deps
<
2019-11-15
>
rickmoynihan10:11:23

So assuming I was on your team for a second… Presumably I’d need any personal aliases to be committed into that file? What about if I wanted to use classpath overrides etc, to stub a dep with a localised version etc? I like to use scope-capture, assuming noone did already would that need to be a conversation with the team, or would I just add it in as a dep into everyones :dev alias? I’m curious how the build script works… Does it start a repl as well as build stuff? Does it accept aliases as arguments? Or does it manages alias groups? i.e. ./build repl cider would start it with cider ./build repl cursive suitable for cursive etc? What environments do people on your team use? Does everyone use chlorine and nrebl like you? Or do folk also user cider, intellij etc?

rickmoynihan10:11:40

You have me thinking though, that there’s a benefit to the consistency wrt to transitive deps of always at least having things like the cider deps on the classpath even if not everyone uses it; it wouldn’t need to be loaded after all :thinking_face:

danieroux11:11:40

We optimise for pairing. And therefore value consistency very high. We have Makefiles. And a make repl creates an nRepl on a known port, and both Cider and Cursive is configured to connect to it. We also share configurations.

dominicm11:11:48

Cider doesn't really have deps

rickmoynihan13:11:42

yeah they’re shaded by mr anderson — but not all tools/libs will do this.

dominicm14:11:43

Then we must be careful in our selection

dominicm14:11:13

Pick development tooling that itself only has safe deps

rickmoynihan14:11:31

if its always there yeah… if it’s something you can opt in to it doesn’t matter as much

dominicm14:11:34

I would say it's the other way round 😊 if it is bundled with the project and is always present then it doesn't matter. If I load it as a user, then it ought to be stable so I know I'm not causing the reproducibility problems that were mentioned.

rickmoynihan14:11:53

You might be right but I was thinking more for stuff like: https://github.com/clojure-goes-fast/clj-async-profiler I tend to only include it one off when I need it; rather than always have it there… not sure what its deps are tbh.

dominicm16:11:25

That's a good example of something you only use sometimes

dominicm11:11:12

Tooling dependencies have to be carefully selected because of what you describe

dominicm11:11:14

As someone who likes to tinker and improve on my development process, I find the idea of not supporting personal aliases distasteful.

seancorfield16:11:47

No one on our team uses CIDER or nREPL these days but there are still two aliases in our shared deps file for starting such things (old and new versions).

seancorfield16:11:21

Yes, the build script takes a list of aliases to use. Yes, it can start a REPL, REBL, Socket REPL, and several other variants (including old and new nREPL servers).