Fork me on GitHub

Does anyone have any thoughts/experience on using Makefiles for development... orchestration? E.g. I consider running podman, showing logs, starting the development browser with all the requires flags, etc.


I've seen people do it before. But it still feels like abusing the tool. Right now I'm using a bunch of shell scripts. My only complain is that their support in IntelliJ IDEA is not the best.


Right now I'm using this simple clojure/babashka script to start a couple of dev things at the same time:


I use a Makefile, and I document everything worth doing in the projects there - including downloading and installing Datomic related tools and jars, starting REPLs. Am considering Babashka. What I like is typing make, and TAB, and getting all the targets completed

💯 3

Makefile is for making things. It's not a command runner.

👍 6

I usually lean on scripts with a case


I would strongly discourage you from starting the jvm. You might want to leave that to the user so they can jack in.


> Makefile is for making things That's exactly my thoughts. > I would strongly discourage you from starting the jvm. Yeah, didn't intend to.


@U04V15CAJ Do I remember correctly that you're not using IDEA? I don't think using bb would be much easier than using bash there. Although bb is definitely nicer if you need something more than just running a command with some particular arguments.


You can probably do this with bash (run things in parallel, kill them all when the last process dies by SIGINT), but I'd have to look up how to do that


Which is for me the case for babashka: I don't have to look up bash stuff I keep forgetting


Right. Thanks!


@U09LZR36F and I strongly discourage jack-in in teams. I do want a stable and consistent way to start up my REPL to be connected. I am not super excited about Make, it’s the best I could come up with right now. A strong case can be made for shell-with-case (hah). I’ll see where that goes


People will make the same changes to their repl for their workflow to work. If I want to load cider, spy scope, etc. Then that's my choice...


I also don't use cider-jack-in, was never a big fan of that.


I don't want my REPL process to be a subprocess of my editor


Yes, and in a team - if you add spy scope, I would like to benefit from it. And when we pair, it’s grand to be able to assume that we all have the same toolbox. We load cider, with, nrebl-middleware and explicit lispy deps. And connect to the configured nREPL port via a shared (committed) Cursive run configuration. The consistency has huge payoffs for me


I have used in my company this task runner with big success It can do very complicated things very easily, a few abstractions over tasks are doing their job. I agree though that she'll or babaska script most of the times are enough... We had a complicated build + app startup and we needed something better. Also we needed something portable for Windows users.


Mentioned it a day ago, but I use rake for that stuff


using Make for arbitrary dev tasks is not abusing the tool, any more than using lein for them is


and it's simpler and more reliable than lein is


it's a domain specific language for tasks, artifacts, and subtask resolution, I don't like the fact that it uses tabs semantically, but it's superior to the other general purpose task execution DSLs I've used


@U0C8489U6 Thanks for the pointer to pydoit, this looks good 🙂

👍 3
Endre Bakken Stovner17:08:11

If you want the Make paradigm, check out Snakemake. It is a Python DSL that is much used in science.