This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-11-08
Channels
- # aws (3)
- # bangalore-clj (1)
- # beginners (47)
- # boot (137)
- # cider (1)
- # cljs-dev (67)
- # cljsrn (7)
- # clojure (122)
- # clojure-argentina (5)
- # clojure-berlin (4)
- # clojure-czech (12)
- # clojure-france (27)
- # clojure-italy (9)
- # clojure-russia (88)
- # clojure-spec (44)
- # clojure-uk (157)
- # clojurebridge (2)
- # clojurescript (236)
- # datomic (5)
- # devcards (3)
- # dirac (23)
- # emacs (13)
- # hoplon (29)
- # incanter (1)
- # leiningen (41)
- # microservices (1)
- # off-topic (78)
- # om (145)
- # onyx (13)
- # parinfer (8)
- # pedestal (4)
- # planck (15)
- # protorepl (1)
- # re-frame (72)
- # reagent (25)
- # ring (2)
- # specter (23)
- # test-check (9)
- # untangled (106)
- # vim (8)
- # yada (1)
Hello - I’m gathering arguments. In your opinion, what are the arguments in favour of using boot over leiningen ?
What might cause this type of stacktrace in ClojureScript application?
2016-11-08 12:52 java[39083] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
2016-11-08 12:52 java[39083] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
2016-11-08 12:52 java[39083] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
2016-11-08 12:52 java[39083] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
2016-11-08 12:52 java[39083] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
2016-11-08 12:52 java[39083] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
2016-11-08 12:52 java[39083] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
2016-11-08 12:52 java[39083] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
2016-11-08 12:52 java[39083] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
2016-11-08 12:52 java[39083] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
2016-11-08 12:52 java[39083] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)2016-11-08 12:52 java[39083] (FSEvents.framework) 2016-11-08 12:52 java[39083] (FSEvents.framework) 2016-11-08 12:52 java[39083] (FSEvents.framework) 2016-11-08 12:52 java[39083] (FSEvents.framework) 2016-11-08 12:52 java[39083] (FSEvents.framework) 2016-11-08 12:52 java[39083] (FSEvents.framework) 2016-11-08 12:52 java[39083] (FSEvents.framework) 2016-11-08 12:52 java[39083] (FSEvents.framework) 2016-11-08 12:52 java[39083] (FSEvents.framework) 2016-11-08 12:52 java[39083] (FSEvents.framework)
FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
@pandeiro you maintain some docker images we use — I’d like to know your stance regarding boot<>lein. Which do you prefer and why ?
Has anyone else ever had this problem with boot-cljs-test
?
Running cljs tests...
08 11 2016 15:54:27.654:WARN [web-server]: 404: /output.out/cljs_deps.js
Chrome 54.0.2840 (Mac OS X 10.11.6) ERROR
Uncaught SyntaxError: Unexpected end of JSON input
at
It used to work.. I think 😛
Oh it looks that the 404 is not a problem
@olegakbarov that looks like an issue with FSEvents, the system file watching protocls
This was a false alarm.. Ignore me
@micha im on macOS; this came up when i was trying to add some js externals https://github.com/alesguzik/cljs-npm-bundle
any chance node_modules folder can cause this type of issues?
@olegakbarov those are just log messages, right?
no, it fails
there is a limitation of FSEvents on OSX, you can only have a certain number of watched nodes
if your node_modules contains tens of thousands of files and directories it could be an issue
yeah, that looks very much like this
Hi @pseud - I still use both, since some projects I work on use lein, but if I am starting a project from scratch, I use boot.
My lein docker image probably needs updating; I just updated the boot one to use the alpine-based java image, reducing it by about 500MB
hey y’all is there any way to have boot automatically use the clojure version set by set-env!
? I get that boot has to already load a clojure version before reading set-env… but is there some magic I don’t know about?
@nonrecursive the usual way is to make a boot.properties
file in the project that has the same version as what you use in set-env!
additionally, sometimes you want to go the other way, like you don't care which version of clojure you use, but you want to have some clojure dependency in your env because of maven
so if you have a project you can make a boot.properties file with BOOT_CLOJURE_VERSION=1.8.0
or whatever
sweet that’s what I was looking for 😍
that will allow you to set the version of clojure in one place, the boot.properties file
thanks man
miss you 😘
are there instructions somewhere for creating/using the secring.gpg that boot build-jar push-release
asks for now?
i don't have an existing keypair, i guess i can just create a new one and that's that...
I don't see ~/.gnupg/secring.gpg
referenced here: https://github.com/boot-clj/boot/wiki/Repository-Credentials-and-Deploying
@pandeiro ooh, alpine works for java now? That's awesome. I lost a limb trying to get that working a few months ago.
@dominicm yeah if you docker pull pandeiro/boot:latest
, it's just 150MB, which is great
@dominicm @pandeiro I confirm as I have a docker app on ECS that works like a charm
I have used develar/java:8u45
though
@richiardiandrea there's also this: https://hub.docker.com/_/openjdk/ (not sure if you specifically want the oracle jdk)
oh thanks that's great, at the time it was the only one I found
Hmm, I guess my keyring troubles might be due to the GnuPG 2.1 format... I only have a pubring.kbx
in my ~/.gnupg
dir
ah yes that changed stuff
I actually haven't deployed using gpg
and boot
in a while
oh man thanks! 😄
let me see the wiki page
I have concluded as well my last Clojure adventure and looking for new stuff, but let me see first if I can help you with that
@pandeiro so which step is not working, it looks like the wiki procedure abstracts over gpg
details (call to gpg-decrypt
)
if you set gpg2
shouldn't it work?
I mean export BOOT_GPG_COMAND=gpg2
and there isn't... i guess i just need to understand how the pubring.kbx etc in my .gnupg map to pubring.gpg / secring.gpg
mmm...but that's what I am saying, if you created a new keypair gpg2
should read it from there, unless push-release
explicitely reads the .gnupg
folder, which is probably not desirable, I am checking the code
oh that's why
mmm where...I can't see it https://github.com/adzerk-oss/bootlaces/blob/master/src/adzerk/bootlaces.clj
checking
nope, it looks like there's nothing referring to that https://github.com/boot-clj/boot/blob/ac835cea8c18e926bb843e01579b86e3f30458d2/boot/pod/src/boot/gpg.clj
in a repl, I would try to double check that this line: https://github.com/boot-clj/boot/blob/ac835cea8c18e926bb843e01579b86e3f30458d2/boot/pod/src/boot/gpg.clj
gives you gpg2
or you can alias gpg
with gpg2
if it is not already done
there is this: https://github.com/boot-clj/boot/blob/master/boot/core/src/boot/task/built_in.clj#L929
yes it looks like it is not used
(maybe some old stuff)
@pandero which version are you using? have you tried 2.7.0-rc1
?
I did gpg --export-secret-keys > ~/.gnupg/secring.gpg
-- that at least produced a different error when I tried to push 😉
lol but I would try the new version, look, that param has been deprecated as you don't usually need it explicitely: https://github.com/boot-clj/boot/blob/ac835cea8c18e926bb843e01579b86e3f30458d2/doc/boot.task.built-in.md#push
But otherwise, it seems to have worked: https://clojars.org/pandeiro/boot-http
Thanks for the help @richiardiandrea !
oh cool no problem !
Has anyone increased the available heap with -Xmx= on windows for 'boot dev'? Tried the boot.l4j.ini. no dice.
I set this in my .bashrc
: export BOOT_JVM_OPTIONS="-Xmx1g -client -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -Xverify:none -XX:-OmitStackTraceInFastThrow"
there should be a section in the wiki though
@richiardiandrea you're using cygwin bash on windows?
ah sorry windows
no sorry I don't use windows, I misread that 😉
hey, so I’m trying to get going with boot as a complete newbie but long-time lein
user, and I am having trouble figuring out how to simply do the equivalent of lein new <project-name>
so I can get something to specify dependencies and futz around to test out a project-specific repl. The docs make it seem as though I will have to write a bunch of code to get this outcome. Is that the case, or am I missing something obvious?
@ddellacosta You can use this https://github.com/seancorfield/boot-new
boot -d seancorfield/boot-new new -t app -n myapp
@kenny thanks. So that is not baked into boot huh?
Not yet. I believe there was a discussion about adding it in. Not sure where that conversation went though.
also, those flags, are those boot
args or boot-new
args? I’m assuming that they are boot-new
args as boot
doesn’t seem to have -n
but I’m not sure I understand where boot
ends and boot-new
begins
-d
is a boot arg which adds seancorfield/boot-new as a dependency. new
is the task name (from boot-new) and everything after new
is args & options to the new
task.
okay, next set of questions. I want to play with spec, so I tweaked the default set-env!
call’s :dependencies
value which boot-new
created to look like this:
4│ (set-env! :resource-paths #{"resources" "src"}
5│ :source-paths #{"test"}
6│ :dependencies '[#_[org.clojure/clojure "RELEASE"]
7│ [org.clojure/clojure "1.9.0-alpha13"]
8│ [adzerk/boot-test "RELEASE" :scope “test”]])
however, when starting up a repl via cider-jack
in Emacs, I get
3│ boot.user> *clojure-version*
4│ {:major 1, :minor 7, :incremental 0, :qualifier nil}
so what am I not understanding now about how boot works?
(also, 1.7 ??)
@pseud I don’t know, would it?
I haven’t done any boot work with cider yet, really. But I recall with lein that cider-jack-in got me into my clojure repl and cider-jack-in-clojurescript booted a clojure-process which fired up figwheel. I’d imagine ‘cider-jack-in’ attempts to start something like “boot repl"
Don't know anything about cider + boot but if you are starting a REPL with boot repl
then you will need to add a boot.properties
file with
BOOT_CLOJURE_VERSION=1.9.0-alpha14
@pseud I just want a vanilla repl w/clojure 1.9 @kenny Okay, I can do that—but I’m specifically curious why my dependency didn’t get picked up.
Oh snap, forget about me. I’m tired. 🙂
Yes, you need a boot.properties file in the project.. boot -V > boot.properties
and then update the version number of clojure. Otherwise you’ll get 1.7.0
@ddellacosta boot needs to run your build.boot file etc in clojure
@micha I guess there is a way to hook up cider so it does this by default, but it doesn’t out of the box huh?
oh, I see—so the set-env!
won’t work in the case of clojure regardless based on what you’re saying @micha
I see
Not sure if it’s the answer exactly but. It’s my understanding that lein fires up its own process, then spawns another JVM process for your project (unless you use trampoline) — that would allow lein to start with one version of clojure, and your program to use another. My understanding is that boot starts up a single JVM process and hands off control to your app — hence whatever clojure version mentioned in your boot.properties file will be what you’ll eventually get. But maybe I’ve misunderstood
think I can figure it out from here
okay, I will put that in the list of something to look into once I’ve got the basics down 😄
So after about 20 minutes I can already say, for the record, that it may be useful to have a bit more of a comprehensive “coming from leiningen? Start here…” tutorial somewhere. This doesn’t cut it: https://github.com/boot-clj/boot/wiki/Boot-for-Leiningen-Users
That’s not a comment on boot, as I don’t know enough about it yet to comment
but it has been pretty un-intuitive to get going from the path I thought was the most obvious, coming from lein
which I imagine most users will be…but perhaps not.
Again, this isn’t going to deter me from using boot—I’m not criticizing it in any way, just the lack of docs for my specific path in
I hope it’s clear I mean that very much constructively!
Gotcha. My path in was http://boot-clj.com/ click on “get started” -> https://github.com/boot-clj/boot#install -> “huh how do I create a project” (then, maybe this leiningen entry in the wiki will help?)
@ddellacosta Could be true. I moved to boot because I had some issues while wanting to develop a library while developing an example which used it - something you’ll need “checkout dependencies” for in lein which is hell.
Anyway, I didn’t really consult the lein migration page, but instead found a few blog posts which explained how boot tasks worked, how each task is self-documenting (`boot <task> -h`) and how they could be composed and how the deftask
form worked.
From there, I never looked back. TL;DR - there’s some good blogs providing quick overviews of how boot works 🙂
Ah, okay.
@micha @alandipert just watched this talk from david nolen and he mentioned cognitect uses boot too https://youtu.be/mty0RwkPmE8?t=3052