Fork me on GitHub
#boot
<
2016-02-19
>
devn03:02:16

@numberq: I think your question probably fits better here in #C053K90BR than in #C03RZMDSH

numberq03:02:37

Hmm, I'll move it in that case

devn03:02:15

@numberq: either way, at the top of tailrecursion.boot-datomic, a private var deps is defined which specified datomic-transactor-pro

devn03:02:19

specifies*

numberq03:02:05

I'm having some trouble getting Datomic setup using Boot. I tried using tailrecursion (https://github.com/tailrecursion/boot-datomic) but that seems to be tailored for the pro version, and I'm on datomic-free. Is there something I'm missing in this process? I'll post my boot.build in a second.

numberq03:02:51

tailrecursion has a :repositories line in their example boot.build, but it asks for a username and password which I obviously don't have with the free version

devn03:02:45

@numberq: you could get the pro starter edition http://www.datomic.com/get-datomic.html

numberq03:02:54

@devn: I see that now, in boot_datomic.clj. Does that mean tailrecursion can't be used with the free version?

numberq03:02:59

I'll look into the starter edition

mitchelkuijpers09:02:24

I am retrying boot and I have a question, I am moving away from leiningen with figwheel. Can you guys recommend figwheel or boot-reload?

mitchelkuijpers10:02:10

Another question while I am at it. I am using the boot-less task and want to move the compiles css file to resources/public/css but I can’t figure out how to do it with the

sift
task

mitchelkuijpers10:02:47

this is basically what I want to do: src/public/css/(.*).css:resources/public/css/$1.css

martinklepsch10:02:27

sift operates on the classpath/fileset and so it can't move files outside of these

martinklepsch10:02:54

@mitchelkuijpers: really you don't want to move compiled stuff into resources/ but instead just compile to public/css on the classpath and dump the fileset somewhere else if you need it as files. Putting compiled files into resources/ is not what resources/ is intended for

jethroksy10:02:22

It's possible but not ideal

jethroksy10:02:47

As long as it's in a subdir of a boot project

jethroksy10:02:08

This works but I wouldn't recommend it

jethroksy10:02:41

Things like CSS/js shouldnt be packaged with the jar

martinklepsch10:02:06

@jethroksy: why are you moving files into resources there? like what's the end goal?

martinklepsch10:02:25

+ TIL sift can break out of fileset stuff simple_smile

mitchelkuijpers10:02:44

@martinklepsch: I am trying to serve my files with catacumba and that gives me some problem I don’t really care where the files are as long as they are on my classpth

jethroksy10:02:51

Because I have a route that serves up static files

jethroksy10:02:06

Technically /resources is in my resources-path

martinklepsch10:02:14

@mitchelkuijpers: files that are in the fileset are on the classpath

jethroksy10:02:24

That makes it on the class path

jethroksy10:02:54

The hard link gets picked up so my CSS reloads

martinklepsch10:02:54

@jethroksy: are you serving files from the filesystem or from the classpath? if the latter you should not need to move files into resources/

jethroksy10:02:29

That was really old code

mitchelkuijpers10:02:37

@martinklepsch: that solves a lot of my problems

jethroksy10:02:41

I just wanted it to be in the right place 😕

jethroksy10:02:56

My sass files are not on the classpath

jethroksy10:02:15

For my dev task

mobileink15:02:34

here's some odd behavior: i have ~3000 files in my bower dir in resources, and when I run boot show -f i get tons of these:

mobileink15:02:35

2016-02-19 09:19 java[53645] (CarbonCore.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)

mobileink15:02:15

this is os x java 1.8. the show -f command does (eventually) seem to complete correctly.

micha15:02:33

yeah this is a limitation of the fsevents api in osx

micha15:02:50

the warnings are harmless

mobileink15:02:12

ok, thought it might be an os x problem or maybe something in iterm2. thanks. another item for the FAQ, oh boy!

micha15:02:42

there is supposedly a fix, but i can't really follow the code to implement it

micha15:02:03

it's using a 3rd party thing for getting fsevents support in java on osx

micha15:02:11

java doesn't support it

micha15:02:21

it only polls

mobileink15:02:49

i'm going to look at the boot-bower lib listed in community tasks and see if it can help me cut down on the stuff in my bower dir anyway

micha15:02:18

yeah the jvm is really designed to have dependencies in jar files

micha15:02:29

not in files in the working set

micha15:02:37

because you need to be able to scan the working set

jethroksy15:02:45

does boot manage the mutable part of the classpath as well?

micha15:02:59

the classpath is completely managed by boot

micha15:02:10

which means you can actually remove directories from the classpath

micha15:02:21

which is otherwise impossible since classloaders are append-only

mobileink15:02:44

hmm, i did once have all of the polymer components (that's whats in bower) jarred up but dropped that. maybe its not a bad idea after all.

jethroksy15:02:46

didn't want to convey wrong info

micha15:02:04

there is a bug in 2.5.5 related to that

micha15:02:10

which is fixed in 2.6.0-SNAPSHOT

micha15:02:32

like doing (set-env! :source-paths #{}) in 2.5.5 doesn't do it

micha15:02:45

if it previously had directories in there

micha15:02:54

but it's fixed in the snapshot

jethroksy15:02:17

what would you say would be the key focus until 3.0?

jethroksy15:02:28

right now i don't see any open issues under the 3.0 milestone

jethroksy15:02:40

something to get people excited about

jethroksy15:02:49

like the with-env passing stuff between pods

laforge4916:02:34

How to compile with optimizations none when using web workers: https://github.com/aatree/aaworker/wiki/Compiling-with-Optimizations-None

micha16:02:29

@jethroksy: we don't have anything planned yet for 3.0 because all the things we need can be implemented as 2xx versions really

micha16:02:48

3.0.0 will be removing deprecated things

micha16:02:08

but probably not for quite some time

jethroksy16:02:26

I think the improvements from 2.4 have been insane

micha16:02:28

i don't feel good about breaking anyone's builds with a new version

micha16:02:53

i've been working on better pod eval

micha16:02:58

in 2.6.0-SNAPSHOT

micha16:02:06

i have a new thing with-pod macro

micha16:02:14

which lets you pass almost anything into the pod

micha16:02:18

like for example

micha16:02:04

(defn foo [x] (+ x 10))
(with-pod p
  (~foo 32))
;;=> 42

micha16:02:59

you can pass any java object, plus functions, records, and all the clojure core data types

micha16:02:16

not atoms or refs yet

micha16:02:20

but i think it will be possible

jethroksy16:02:35

I thought I saw this a while ago

jethroksy16:02:27

also if i have clojure 1.8.0 in my boot.properties

micha16:02:30

yeah like a month ago or so

jethroksy16:02:39

and I launch the repl and set-env! 1.7.0

jethroksy16:02:45

it'll still be on 1.8.0 right

micha16:02:34

clojure loads before your build.boot is evaluated, naturally

micha16:02:43

cause build.boot is a clojure program

micha16:02:06

you can use a different version of clojure when you create a pod though

jethroksy16:02:49

yeah that makes perfect sense

jethroksy16:02:19

sean uses a pod to test against current clojure and snapshot clojure

jethroksy16:02:45

so they don't get surprised by breaking changes when bumping clojure versions

jethroksy16:02:53

@micha: I don't see with-pod in the source code

jethroksy16:02:10

with-eval-in does have similar semantics

micha16:02:22

yeah totally

jethroksy16:02:24

is that the one you're referring to?

micha16:02:51

no, with-eval-in can only transmit printable/readable forms from pod to pod

micha16:02:07

so you can't pass a function from one pod to the other, for instance

micha16:02:17

or a java.io.File object

micha16:02:57

it uses reflection heavily in the current implementation, so it's like 10x - 100x slower than pr-str/read-string

micha16:02:23

but that's not really a problem for most expressions

micha16:02:31

because most of the time you're passing in small things

micha16:02:54

but i'm still exploring other ways to speed it up

dominicm20:02:39

@micha For my updates to get-env, I feel a bit dirty doing (if pod/env :foo :bar) due to it not being particularly functional in nature. But I'm not sure if there really is a "functional" way to determine an environment status. Any strong opinions on this?

micha20:02:35

@dominicm: what is (if pod/env :foo :bar) doing there?

dominicm20:02:14

@micha Previously we discussed that tasks shouldn't need to be "pod aware" when grabbing details about the environment

micha20:02:59

but won't pod/env always be truthy?

dominicm20:02:57

Possibly, I haven't double checked the specifics, I was talking generally.

dominicm20:02:16

@micha pod/env is nil outside of a non-core pod it seems.

garethdavies20:02:48

Sorry if it's a silly question but with the boot war task is it possible to include static content in the war but outside of the WEB-INF folder. The lein project I'm porting to boot currently produces a war that is deployed to tomcat and has a number of static html/img files. The only example I've seen with boot still uses lein uberwar and specifies a war-resources-path.

dominicm20:02:18

@micha oh... the core pod also has a pod/env... So get-env should just use that.

micha20:02:49

@dominicm: yes all pods should have a pod/env

micha20:02:23

@garethdavies: the static things will end up in WEB-INF

micha20:02:44

there is a zip task you can use to put things in different places

micha20:02:22

i just put everything in web-inf though

micha20:02:28

keep things simple

dominicm20:02:35

@micha I thought that the boot.core pod might be special for some reason. Hmm, so is there any reason that get-env uses @boot-env instead of pod/env? Does one make more sense than the other?

dominicm20:02:52

get-env could be considered as referring to the original environment.

micha20:02:12

@dominicm: just historical, pod/env came after the core/env atom

garethdavies20:02:17

@micha, yes that's what has been happening. I'll take a look at the zip task but maybe look at refactoring the code as well. Thanks

micha20:02:33

but yeah you're right, it should be refactored to use pod/env

dominicm20:02:44

@micha it's a simple fix, just testing locally, PR inbound.

micha20:02:54

🚀 💥

dominicm21:02:14

@micha it doesn't particularly help that my pod doesn't have a reference to boot.core...

dominicm21:02:56

I need to refine my method for creating a stripped down pod. At the moment it's the result of concatenating the application depedencies to the repl's default dependencies, and now adding boot at version boot.core/boot-version

dominicm21:02:39

Works anyways simple_smile

settinghead22:02:28

what is a common techniques for running multiple tasks in parallel?

settinghead22:02:37

just spin off multiple terminals?

settinghead22:02:47

or should i look into something like pod?

richiardiandrea23:02:25

@settinghead: I have had this working in patch #401 but is specific for tests

richiardiandrea23:02:23

nonetheless you can have a look, I am passing a (thread safe) data structure using pod/data from/to which the different tasks are reading/writing

richiardiandrea23:02:01

also, @micha runboot task allows you to launch a boot in boot session on another thread