Fork me on GitHub
#clojure-uk
<
2017-07-18
>
dominicm00:07:01

PR welcome, or wait until Wednesday :)

thomas07:07:39

morning ☀️ 😼 mogge

maleghast09:07:17

@seancorfield - Thanks a million! 🙂

maleghast10:07:04

@seancorfield - Hmmmm… It’s not erroring out, but the web-app is not starting up - I get an nrepl reporting itself as “up” and then nothing…

yogidevbear10:07:56

It's never too late 🙂

yogidevbear10:07:18

Well, hopefully not 😆 I still have loads to learn

thomas10:07:19

@maleghast have a hug :hugging_face:

thomas10:07:29

we have all been there...

maleghast10:07:42

I just can’t get my Edge app running on prod…

yogidevbear10:07:43

So do most people here use Leiningen, Boot, or a bit of both with their (new) projects?

yogidevbear10:07:04

P.s. Hello 👋

maleghast10:07:13

The moral of this story is build to a live or live-like environment LONG before you need to deliver something…

maleghast10:07:46

@yogidevbear - Hello there 🙂 To answer your question, I use Leiningen for EVERYTHING Clojure, except the thing I am building right now__

yogidevbear10:07:46

I haven't really done much with Boot yet (I think partly because a lot of the learning resources/books I've been using were probably developed before Boot came into the picture

thomas10:07:12

lein mostly on older ones... boot on newer ones, specially if they are cljs ones.

yogidevbear10:07:24

So Leiningen was more of the "de facto"

maleghast10:07:02

@yogidevbear it was / still is for me - I am using Boot because I am using (Juxt/)Edge on this project and Edge is Boot-based.

elise_huard10:07:02

good morning (just)

maleghast10:07:24

I’ve asked in #boot but I think everyone’s asleep… How do I launch a REPL that connects to my nrepl server?

maleghast10:07:02

(at the command line)

maleghast10:07:36

I tried:

boot repl -p 5601
but to no avail… 😞

maleghast10:07:53

and for some reason Google is NOT helpful on this subject.

minimal11:07:17

boot repl -c -p 5601

minimal11:07:53

@maleghast you need to tell it to start a client only

maleghast11:07:14

Oh cool, thanks @minimal will try that now…

minimal11:07:20

see boot repl --help

maleghast11:07:46

Ah, so that’s the magic help incantation; was going to be my next question…

maleghast11:07:01

@minimal Thanks, that works nicely… Sadly getting into the nrepl for the app has not helped me… The web-app is simply not starting up in “:prod” mode and I have no idea why not…

minimal11:07:26

np. not sure about the prod problem

maleghast11:07:07

@minimal - Yeah, thanks 🙂 I was not asking you for help with that side of it, though would have been overjoyed if you were in a position to help! 😉

maleghast11:07:30

@dominicm - Are you still on vacation?

thomas11:07:11

@maleghast have you asked in #yada ? they might be able to help.

dominicm11:07:25

Got back at 3am. Although I'm now in Luton about to leave for Euroclojure.

maleghast11:07:43

@dominicm - Crikey! Well enjoy EuroClojure; with any luck I’ll be at it next year… 😞

maleghast11:07:26

@thomas - I would, but I had spotted that @malcolmsparks is showing as offline, showing at least, so I was stopping short of pinning my hopes on that…

dominicm11:07:53

I'm sat with Malcolm in Luton

thomas11:07:58

@maleghast Malcolm is probably on his way to Berlin as well

maleghast11:07:11

I expect so! 🙂

maleghast11:07:22

@dominicm - Oh say “hi” from me please 🙂

maleghast11:07:44

@thomas - He certainly is, Dom and he are sitting together in Luton airport…

thomas11:07:41

by magic powers of telepathy I just worked that out as well 😉

otfrom12:07:21

@dominicm would you give @malcolmsparks a :hugging_face: from me pls?

yogidevbear12:07:44

Super jealous of the JUXT peeps heading off to EuroClojure 😉

thomas12:07:28

We (my family and me) are going by 🚆 to Berlin tomorrow... looking forward it!

yogidevbear13:07:44

Enjoy it guys

yogidevbear13:07:53

Hopefully I can come next year

yogidevbear13:07:11

Got my ticket to ClojureX this year so really happy about that 🙂

jonpither14:07:47

I saw one the speakers of ClojureX advertised.. some Sparks guy. Will hold out hope for the wider line up.

malcolmsparks14:07:28

@maleghast do you need some help? We have just landed in Berlin and happy to help.

maleghast14:07:21

Thanks @malcolmsparks - @dominicm has got me sorted, thanks 🙂 Couple of changes needed to build.boot and being a Boot n00b I was drowning, but he’s nailed it.

maleghast14:07:29

Have a great conference

maleghast14:07:39

I’m not VERY jealous 😉

malcolmsparks14:07:28

Cheers. Glad you got it sorted! @dominicm is the best

dominicm14:07:54

✈️ code is best code

maleghast14:07:27

✈️ code is not something someone of my size can do without flying business class

maleghast14:07:37

Not enough room between the seats!

seancorfield16:07:57

@maleghast We used Leiningen for everything up until the end of 2015 when we switched to Boot. Boot has enabled us to do a lot more than Leiningen allowed, and Boot tasks are much easier to write than Leiningen plugins. Almost our entire build/test/deploy pipeline is handled by Boot now (in a single JVM!), whereas it was a mix of Ant, shell scripts, and multiple Leiningen invocations (with two JVMs each time).

dominicm18:07:36

I love the ad-hoc taskiness of boot. Switching to boot made quite clear some strange setups we had in leiningen

seancorfield19:07:26

It allowed us to compute dependencies on the fly from EDN files, inspecting namespace dependencies in code to figure out which sub-projects were needed to build uberjars.

seancorfield19:07:23

We have a version.properties file that lets us "pin" the version of any dependency, e.g., org.clojure/clojure=1.9.0-alpha17 and then in various sub-projects' deps.edn files we have [org.clojure/clojure "x.y.z"] and our Boot task automatically computes the version. We also break our code into "sub-projects" in any way we choose and we have Boot tasks that walk all the sub-projects, looking at namespaces defined and used, as well as deps.edn files, and compute the actual set of dependencies for building an uberjar from any given sub-project. Makes it so much easier to build a new application: create a new sub-project, add deps.edn, just start requiring code from anywhere in our code base -- Boot figures out the dependencies for us!

seancorfield19:07:49

We can also have Boot enforce any rules we have about certain sub-projects not using other sub-projects (e.g., we have an SDK sub-project that can only be used from certain sub-projects and in turn cannot use certain other sub-projects). If we accidentally introduce a "bad" namespace dependency, Boot won't let us build any JARs until we fix it.