Fork me on GitHub
#boot
<
2017-03-08
>
micha00:03:52

@chancerussell can you try with 2.7.1 please?

micha00:03:01

we fixed some issues with symlinks

skynet01:03:28

hey all, wondering if anyone happens to be using protocol buffers in a boot project, and if so how do you depend on the auto-generated .java code?

micha01:03:16

have you seen the javac task?

skynet01:03:48

I'll look into it, thanks!

chancerussell02:03:46

@micha will give it a try in the morning and let you know. Thanks!

skynet05:03:34

is there a way to solve a transitive dependency conflict in a boot project with two different system tasks? currently I'm loading each of the systems at the top level in boot, wasn't able to find a better way

seancorfield05:03:36

@skynet Not quite sure what you're asking but it sounds like something pods can help address, since you can manage the dependencies separately inside each pod...?

skynet11:03:26

@seancorfield I think that's right, do you have an example of using pods to manage dependencies like that?

skynet13:03:29

more details on what I'm doing, right now my build.boot looks like:

(require '[my.ns1 :refer [my-sys1] '[my.ns2 :refer [my-sys2])

(deftask sys1 [] (comp (watch) (system :sys #'my-sys1)))

(deftask sys2 [] (comp (watch) (system :sys #'my-sys2)))
but now I need them to have different dependencies. It seems like I need to wrap them in pods, but I'm not sure how

martinklepsch13:03:06

@skynet I don’t think you can do that “just like that"

martinklepsch13:03:56

What you can do is create multiple pods that run those systems. If you want to use the system task however you’d need to run two boot pipelines in parallel to get the isolation you want.

skynet13:03:21

I should clarify that I never intend to run both of those tasks at the same time

skynet13:03:54

I just want boot sys1 and boot sys2 to work in different terminals for example, but they have to have different dependency sets

skynet13:03:05

is that what you mean by two boot pipelines?

martinklepsch13:03:31

ah! @skynet in that case: you probably now have a set-env! call with all your dependencies top-level right now — you’ll need to move that into a task, say env1 and env2 and then you can define sys1 like this (deftask sys1 [] (comp (env1) (watch) (system :sys #‘my-sys1)))

martinklepsch13:03:14

here’s some documentation on how to set dependencies from inside a task: https://github.com/boot-clj/boot/wiki/Boot-for-Leiningen-Users#profiles-middleware

martinklepsch13:03:58

a word of warning: multiple subsequent tasks to set-env! might result in a different combination of versions than as if you call set-env! only once. To keep things predictable you should try to only have one set-env! :dependencies call

skynet14:03:37

What I'm struggling with is, when I do it that way the require fails

skynet14:03:57

Might be on the right track though, thanks

laforge4915:03:45

I've created a boot issue on Microsoft / Bash on Windows: https://github.com/Microsoft/BashOnWindows/issues/1760

chancerussell16:03:42

@micha bumping version to 2.7.1 solved my symlink issue. Will try that first next time! Thanks 🙂

richiardiandrea16:03:07

Awesome you folks have merged some PR. I know that you don't like it, but are changes in 2.7.2-SNAPSHOT by any chance?

martinklepsch16:03:47

or -alpha1 ? 🙂

seancorfield16:03:30

@laforge49 That’s an old build of Windows 10. I think you’ll find it’s been fixed in the latest version. I run Boot on Windows 10 15046 with no problems.

richiardiandrea16:03:08

Never mind I see there are more PRs left to merge 😀

seancorfield16:03:39

@laforge49 Yeah, the error you reported is one I reported in August 2016 and that’s definitely been fixed. They also fixed a subsequent error (about processes not spawning due to memory allocation issues). You’ll need to consider joining the Insider program and get Fast Ring builds if you want the fix “sooner” rather than later.

laforge4917:03:09

Thanks @seancorfield. I've closed that issue and joined insider. Having only one machine, I think I'll wait for the creator release... next month?

seancorfield17:03:20

Not sure when the public release of that will be. I got the creator release a while back. Lots of good updates since the anniversary release (which introduced WSL / Bash on Windows).

seancorfield17:03:54

I can run my entire Mac/Linux DEV stack on WSL* now, after a bit of a shaky start with JVM-powered stuff. *Technically, on a combination of Windows 10 native and WSL.

laforge4917:03:23

That's good to hear, Sean! I'm looking forward to using wsl, but don't have a pressing need. 🙂

chancerussell18:03:40

I’m writing a packaging task that needs to operate on the whole output fileset, and it needs to present the current output files to an external (`dosh`) call as a directory. Anyone know of a clean pattern for doing this?

chancerussell18:03:28

Obviously there isn’t one directory within the cache dirs that underly the file set that I could point the external program to

chancerussell18:03:08

Wondering if I have a better option than creating a tmp directory and copying all of the files from a call to output-files into it

micha18:03:44

the target task can be used for that i think

micha18:03:10

you can tell it to use a temp dir of your choosing, too

chancerussell18:03:46

So simple but I wouldn’t have thought of it

chancerussell18:03:57

@micha you are a helpful person 🙂

micha18:03:07

(deftask foop []
  (let [tmp (tmp-dir!)]
    (comp
      ...
      (target :dir #{(.getPath tmp)})
      ...

juhoteperi19:03:27

Have people tested the latest Boot-cljs 2.0.0-SNAPSHOT? After the latest changes it finally works with all my work projects so I'll be releasing it soon if no one reports new problems

mobileink19:03:48

juhoteperi: is the changelog up to date? support for :output-to, :output-dir, and :modules?

juhoteperi20:03:20

output-to and output-dir changes are not included

juhoteperi20:03:00

Is there something wrong with :modules I don't recall any open issue with that

mobileink21:03:58

sorry, not yet sure. tried using this morning and had problems, but that may be due to my output-x patch. should :modules work?

martinklepsch21:03:18

Will give it a shot tomorrow and report back

juhoteperi22:03:15

@U0LGCREMU Yes, modules should be supported since 1.7.228-0: https://github.com/boot-clj/boot-cljs/pull/114

juhoteperi22:03:52

@U0LGCREMU Also, make a PR from your output-to patch, else I will re-implement it 🙂

mobileink22:03:26

ok. might take a day or two.

mobileink00:03:45

ok, I need a little help with git here. I cleaned up my patch, added, commited, and pushed, thinking I was pushing to my fork. but i see my changes in the main repo: https://github.com/boot-clj/boot-cljs/compare/master…mobileink:outputs-fix - is that supposed to happen?

mobileink00:03:12

I’m not sure about the etiquette - in my fork it looks like i should click on “Compare & pull request” . but I see kinda sorta the same thing in the boot-cljs repo. confused.

mobileink00:03:39

also, just created an issue ticket, just for the record. some way to link the PR to the issue?

kommen12:03:33

using boot-cljs 2.0.0-SNAPSHOT since two weeks and haven’t run into any issues. that said, the project just migrated from lein to boot, so we never used boot-cljs 1.x

juhoteperi19:03:34

I know there are many open issues but I'd like to get this version out before starting fixing those

juhoteperi19:03:01

(So I'm mostly asking about regressions related to new changes)

chris-andrews20:03:51

has anyone ever used boot.util/sh or boot.util/dosh on windows (with or without WSL)?

chris-andrews20:03:04

boot.user=> (sh "ls")

java.io.IOException: Cannot run program "ls": error=12, Cannot allocate memory
java.io.IOException: error=12, Cannot allocate memory

chris-andrews20:03:35

get the above when I try in WSL

chris-andrews20:03:02

boot.user=> (sh "ls")

IOException CreateProcess error=2, The system cannot find the file specified  java.lang.ProcessImpl.create (:-2)

chris-andrews20:03:12

get that one when I try in vanilla boot for Windows