This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-08-01
Channels
- # babashka (2)
- # beginners (51)
- # calva (79)
- # cestmeetup (1)
- # chlorine-clover (1)
- # cider (6)
- # clj-kondo (1)
- # cljdoc (4)
- # cljsrn (2)
- # clojure (31)
- # clojure-europe (2)
- # clojurescript (5)
- # conjure (4)
- # cursive (26)
- # datascript (4)
- # datomic (1)
- # figwheel (1)
- # figwheel-main (2)
- # off-topic (25)
- # reagent (2)
- # reveal (4)
- # shadow-cljs (21)
- # xtdb (1)
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: https://gist.github.com/borkdude/8f5dff7c2330ca520403eb44c9013a83
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
(you can also use bb with Make if you want: https://twitter.com/borkdude/status/1261358361523691520)
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
@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...
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 https://pydoit.org/ 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.
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
If you want the Make paradigm, check out Snakemake. It is a Python DSL that is much used in science. https://snakemake.readthedocs.io/en/stable/tutorial/basics.html