Fork me on GitHub
#off-topic
<
2019-07-10
>
souenzzo00:07:57

@darioszr try something like a #rebl but that runs on browser

clj 4
āž• 4
dmaiocchi07:07:18

I found it. As side project I will try to use property based testing for a real world webapp

dmaiocchi07:07:43

It can be both usefull and learning experience

dmaiocchi07:07:00

Doing a website can be funny but I don't have any content for that website or direction for why to do it šŸ˜…šŸ˜‚šŸ˜

danieroux16:07:19

Which build systems are you all using? Iā€™m finding myself reaching for GNUMake, with tools.deps. The Makefiles are building things way outside tools.deps (or Leiningen/Boot) domains. Preferably I would want cross-platform, even possibly Windows

šŸ˜® 4
souenzzo17:07:13

I also use Makefile + deps.edn make clean test push deploy to deploy my datomic ions app šŸ™‚

hiredman18:07:43

I would be inclined to just write clojure functions that do different tasks and call them via aliases from clj and not bother with make

āž• 4
hiredman18:07:43

the biggest issue for building that stuff in clojure vs. make or shell scripts tend to be people calling shutdown-agents which breaks the ability to compose the things in a single clojure runtime

theeternalpulse18:07:59

I use it in a similar way except make is a gateway to clj

theeternalpulse18:07:51

how would you run something say clean, just implement that in clojure

theeternalpulse18:07:10

with lumo, or just plain old fs interop?

hiredman18:07:29

I have no idea what lumo is

hiredman18:07:39

part of the value of clj is it makes scripting things with clojure easier, so why are you writing scripts that call clj, instead of just doing everything in clojure?

hiredman18:07:43

the lumo question makes no sense to me whatsoever in this context, because lumo is a clojurescript runtime, so why would I advocate for getting rid of shell tasks around clj only to shell out to node?

hiredman18:07:30

the best thing you can do for any build process is keep node and javascript as far away from it as possible

theeternalpulse18:07:48

I think an example would be great, I wasn't trying to guess your methodology, just didn't have enough information on your process

hiredman18:07:17

you have a target in a makefile like

foo:
  X
  Y
  clj -A:whaterver some.namespace
  Z

hiredman18:07:17

instead write a clojure namespace like

(ns my.build)

(defn -main [& args]
  (x)
  (y)
  (some.namespace/-main)
  (z))

hiredman18:07:49

instead of doing make foo do clj -A:whatever my.build

hiredman19:07:57

make is great, but as a tool is largely about generating multiple artifacts and tracking dependencies between them, which is not something that is done in builds for most clojure projects.

šŸ‘ 4
hiredman19:07:43

a good use of make would be for writing a rule for generating a class file from a given source file or something, but that doesn't match the compilation model

theeternalpulse19:07:58

Right, I kind of thought about it earlier when doing it, since you have to create .PHONY targets that usi g it as a simple alias system isn't the best. But I have targets that run docker containers with certain params, and do other things which are readily available in bash so I went with that

theeternalpulse19:07:27

I only mentioned lumo because some I've heard use it for shell scripting in js

theeternalpulse19:07:08

I think for many that Target the web would already have mode on the environment so they use for that

jumar07:07:38

For building the clojure part of our project we use leiningen but there's also other stuff and we use make to orchestrate the whole build. E.g. running npm build, building end-user docs, deploying artifacts to s3

hiredman18:07:39

part of the value of clj is it makes scripting things with clojure easier, so why are you writing scripts that call clj, instead of just doing everything in clojure?

theeternalpulse18:07:39

for end users essentially