Fork me on GitHub
#boot
<
2015-12-23
>
alandipert02:12:30

@donmullen: sweet! he also wrote a great blog post about the porting experience, http://www.dotkam.com/2015/12/22/the-story-of-booting-mount/

dm310:12:36

I wonder if you guys looked at https://github.com/ndmitchell/shake

dm310:12:40

conceptually similar to boot - write your build in code, however Shake operates on monadic rules which build up a dynamic dependency graph, while Boot has a fileset which the tasks use as a playground

dm310:12:23

knowing more about the build allows Shake to be more efficient (invoking rules in parallel, etc), wonder if this kind of thing on top of the fileset makes sense

alandipert11:12:46

@dm3 i think that approach and boot are the two opposite conceptual high grounds

alandipert11:12:31

@dm3: a static dependency graph forms a data structure with properties similar to the immutable fileset, but isn't dynamic

alandipert11:12:18

vs. boot, with an immutable value, which empowers caching at a smaller granularity

alandipert11:12:36

that said, have not looked at shake

dm311:12:46

it's not a static graph

dm311:12:08

the rules are monadic, so the graph is being built as they execute

dm311:12:32

@alandipert:

alandipert11:12:51

sounds more similar to boot then, as it builds up a data structure with fileset-like properties

alandipert11:12:48

after boot though it's hard for me to imagine the advantage of a functional approach without an immutable value at the center

dm311:12:49

that's why I was thinking of layering the shake ideas on top of the fileset

dm311:12:00

although building clojure/clojurescript is not the area that would greatly benefit

alandipert11:12:18

what use case are you imagining?

dm311:12:33

mostly slow make-based build pipelines

dm311:12:53

where you have gcc and other slow stuff

alandipert11:12:56

i think i understand what you mean now, are you kind of thinking as an alternative to the task model?

dm311:12:20

as tasks would have to somehow indicate what they produce

alandipert11:12:12

or maybe a jit-like thing, where you run a task build once and then the system creates a parallelizable graph for you

dm311:12:04

yeah, that's interesting

dm311:12:21

wonder if there are more benefits than "just" efficiency

alandipert11:12:19

one thing i've been noodling is the idea of remote tasks, like "task services"

alandipert11:12:27

maybe different approaches are more amenable to distributed builds

dm311:12:46

so you could run a boot program as a CI-kind of server?

dm311:12:08

what's a distributed build in your mind?

escherize11:12:11

wow I never got boot until just recently, doing the new modern-cljs tutorial

escherize11:12:31

Awesome work, really loving it so far

alandipert11:12:18

@dm3: maybe boot entrypoint is a lambda function in aws. or maybe tasks can be microservices in lambda or some container, that are always warm and accept and return a fileset over network

alandipert11:12:57

and instead of sending the whole fileset contents around, the fileset value refers to values in S3

magomimmo11:12:51

@escherize: happy to serve! simple_smile

dm312:12:45

@alandipert: another interesting feature of shake - resuming (not restarting) the build after errors

alandipert12:12:22

@dm3: i feel boot blurs the distinction between resume and restart, as tasks can cache fileset values they've seen. but you've convinced me, i'll check this thing out now simple_smile

dm312:12:30

didn't look much at the sources/other docs

alandipert13:12:19

btw happy holidays everyone! boot -d boot/greet:2015 greet

artemyarulin14:12:07

Hi, can any body help - I’ve made brew install boot-clj, then boot -h returns me:

Retrieving boot-2.5.2.jar from 
Retrieving pod-2.5.2.jar from 
Retrieving core-2.5.2.jar from 
Retrieving worker-2.5.2.jar from 
Retrieving aether-2.5.2.jar from 
Please download latest Boot binary: 
I’ve cleaned up ~/.boot directory, but no success

martinklepsch14:12:39

@artemyarulin: do you have a boot.properties file? (in your working dir)

martinklepsch14:12:05

also is homebrew up to date? what does boot -V return?

artemyarulin14:12:35

fessguids-MacBook-Pro:~ fessguid$ tree ~/.boot/
/Users/fessguid/.boot/
└── cache
    ├── boot.properties
    ├── cache
    │   └── boot
    │       └── default
    │           └── 1.7.0
    │               └── 2.5.2
    │                   └── deps.cache
    └── lib
        └── 2.2.0
            └── aether.uber.jar
fessguids-MacBook-Pro:~ fessguid$ boot -V
#
#Wed Dec 23 16:50:22 EET 2015
BOOT_CLOJURE_VERSION=1.7.0
BOOT_VERSION=2.5.2
#App version: 2.2.0

martinklepsch14:12:08

@artemyarulin: your binary is very old. I guess updating homebrew and reinstalling will fix the problem.

martinklepsch14:12:44

maybe check boot version in homebrew with brew info boot-clj just to be sure simple_smile

artemyarulin14:12:17

@martinklepsch: Thanks, I had quite old brew, updated till the latest version, re-installed boot - everything is OK now

martinklepsch14:12:35

@artemyarulin: great :+1: