This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-11-02
Channels
- # admin-announcements (15)
- # aws (35)
- # beginners (6)
- # boot (183)
- # cider (51)
- # clara (17)
- # cljs-dev (32)
- # clojure (67)
- # clojure-dev (7)
- # clojure-india (1)
- # clojure-japan (3)
- # clojure-norway (1)
- # clojure-russia (26)
- # clojurescript (85)
- # clojurex (4)
- # community-development (1)
- # cursive (18)
- # data-science (1)
- # datomic (46)
- # devcards (29)
- # events (7)
- # funcool (21)
- # hoplon (10)
- # ldnclj (2)
- # lein-figwheel (16)
- # off-topic (60)
- # om (37)
- # onyx (8)
- # re-frame (23)
- # reagent (5)
- # yada (6)
Boot freshly installed, to "boot -h" replies "Please download latest Boot binary: https://github.com/boot-clj/boot#install"
@catonano: how did you install boot?
I followed the instructions at the READ. me on github: I downloaded the boot.sh file, I moved it to "boot", I did "chmod a+x boot" and then "sudo mv boot /usr/local/bin/"
What’s the output of boot -V
& do you have $BOOT_VERSION
set or a boot.properties file?
This is "boot -V" #https://github.com/boot-clj/boot #Mon Nov 02 09:37:08 CET 2015 BOOT_CLOJURE_VERSION=1.7.0 BOOT_VERSION=2.4.2 #App version: 2.2.0
either you have another boot
on your path or you downloaded the wrong file
in your current directory and ~/.boot/
which -a boot
should list all boot
executables on your PATH
try replacing it with this one https://github.com/boot-clj/boot-bin/releases/download/2.4.2/boot.sh
java -version openjdk version "1.8.0_65" OpenJDK Runtime Environment (build 1.8.0_65-b17) OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)
"Please download latest Boot binary: https://github.com/boot-clj/boot#install"
can you paste the md5 of the file you just downloaded?
This is pretty strange so far
here: md5sum /usr/local/bin/boot 07d299924303d67196345621428fde66 /usr/local/bin/boot
Hm. Same that I have. echo $BOOT_VERSION
showed nothing right?
can you try setting it to 2.4.2
and running boot -V
again?
here $ boot -V Downloading https://github.com/boot-clj/boot/releases/download/2.4.2/boot.jar...done. #https://github.com/boot-clj/boot #Mon Nov 02 09:56:37 CET 2015 BOOT_CLOJURE_NAME=org.clojure/clojure BOOT_VERSION=2.4.2 BOOT_CLOJURE_VERSION=1.6.0 #App version: 2.4.2
~/.boot/cache/boot.properties
do you have this one?
$ cat .boot/cache/boot.properties #https://github.com/boot-clj/boot #Mon Nov 02 09:22:13 CET 2015 BOOT_CLOJURE_VERSION=1.7.0 BOOT_VERSION=2.4.2
I also have a .profile.boot (I didn't remember about it, sorry) $ cat .profile.boot (require 'boot.repl) (swap! boot.repl/default-dependencies concat '[[cider/cider-nrepl "0.8.2"]]) (swap! boot.repl/default-middleware conj 'cider.nrepl/cider-middleware)
profile.boot shouldn’t make any difference
I can only assume that the boot.properties file contained something other than 2.4.2 before you set the env var and ran boot. Maybe check when it has been last modified?
$ ls -la .boot/cache/boot.properties -rw-rw-r--. 1 me me 110 2 nov 09.22 .boot/cache/boot.properties
Hrm. Don’t have a good explanation now. I think I’d recommend to delete .boot/cache/boot.properties
and pin boot on a per project basis if wanted.
Hi. I've probably missed it. What is the supposed way to start a new boot-compiled project. The equivalent to lein new
...
@ska: there is no such thing yet
(where yet means “until someone makes one”)
something like that yeah
creating some scaffolding stuff in boot could be fun using the fileset but it’s not a popular thing to do in Clojure and so there has not been much effort in that direction
plus there's no reason not to use lein new
even for boot projects
it's just another piece of lein functionality, unrelated to dep management
why rewrite something that works?
I agree that there’s no reason not to use it but there’s also much to be desired when authoring templates for lein new
I didn't realize
but we could fix lein new
, too
e.g. a simple framework for sexp transforms is something I’d expect from a lisp-language project generation tool
another thing could be to have multiple independent steps like 1) inject boot-cljs compilation 2) inject om.next 3) inject datascript — those steps not knowing about each other would be impossible with lein new
afaik
good points
might make project generation a bit more complicated than simple template substitution
s/complicated/powerful & reusable/ 😛
@micha: is boot ever writing to ~/.boot/cache/boot.properties?
that makes sense
yeah I was just surprised that it has been touched
$ ls -la .boot/cache/boot.properties
-rw-rw-r--. 1 me me 110 2 nov 09.22 .boot/cache/boot.properties
yeah that will be overridden by BOOT_HOME/boot.properties, <git project>/boot.properties, ./boot.properties, environment variables, and system properties
right. I assume that @catonano didnt change that file himself though(?)
does boot ever write to any boot.properties files without using sth like > boot.properties
?
why does it write though? is that necessary? it seems like this does some system wide pinning without the user asking for it?
big 👍 for all the stuff you did yesterday btw lots of good stuff coming up in the next release
later!
@martinklepsch: no I didn't change that file myself
@micha: I guess so. I also deleted ./boot/boot.properties (it indicated clojure 1.6)
@catonano: your file was at ~/.boot/cache/boot.properties iirc
can anyone tell me how to start the repl server such that i can connect from a remote host with boot? i’ve tried (repl :server true :port 1337 :host "0.0.0.0”)
but it still comes up bound to 127.0.0.1
-b, --bind ADDR Set the address server listens on to ADDR.
-H, --host HOST Set the host client connects to to HOST.
@micha: Because they are nrepl middlewares
but the repl server doesn't need to be in the same context as the boot.user namespace for the project, does it?
I don't know
If it's possible, it would require some changes to repl task?
Hmm separate nrepl? Yes could be
Editors afaik anyway open separate nrepl connection for cljs context
As quick fix I think I'll implement the changes mentioned in GH issues for next release, but I'll keep this in mind
also if/when we move to Figwheel client code, we could make use of it's REPL client and perhaps repl server
For Figwheel client code I would be interested to figuring out how to include Figwheel code for Cljs compilation without transitive dependency
Perhaps by adding the client code to fileset from boot-reload task?
I'm not sure but I presume it needs to be part of the same Cljs compilation as other code
Hmm, yeah, boot-cljs could read additional dependencies for the pod from cljs.edn or somewhere
It depends on how closely we want to tie boot-cljs/boot-reload/boot-cljs-repl together
Yeah, cljs-repl will need to do that
But not sure about boot-reload
Tough I guess cljs-repl could be separate task if cljs task would publish required options, mostly output-path
Perhaps. But would also be quite messy for cljs-repl to touch files in output-path (boot-cljs temp dir)
Will be interesting to see in some months how Socket repl turns out
that will basically allow you to run the nrepl part in a separate pod from the repl server, right?
+1 for repl + compiler using same compiler pod
@juhoteperi: what’s the interesting bit about socket repl for you? I recently tried to see where it fits in but it seems that all problems it’s solving have already been solved?
@martinklepsch: Nothing specific. I also think nrepl already solves most or all problems, so it'll be interesting to see if someone can think up something where socket repl is really useful.
@pandeiro: Not necessarily, it depends if their env is build from boot.user env
Yes: https://github.com/adzerk-oss/boot-cljs/blob/master/src/adzerk/boot_cljs.clj#L95-L97
i'm 👍 on rolling boot-cljs-repl into boot-cljs, as long as it continues to support adding additional nrepl options and reading nrepl middleware out of profile.boot
my solution to #32 is just exposing an :output-dir
option to cljs-repl so I can at least re-name out
to something else
Yeah it'll be much easier to set proper options for repl when it can access cljs compiler dirs etc.
@juhoteperi: @pandeiro couldn’t we infer output-dir from cljs.edn location?
@micha: since we have 2.5.0 in version.properties, should we have a new release?
@martinklepsch: it would seem so, i guess. but i think weasel needs :output-dir
set explicity - how would you refer to that/those location(s)?
I think it might be worth adopting some 1.0.0 > 1.1.0-SNAPSHOT > 1.1.0 kind of cycle for commits between releases
@pandeiro: afaik boot-cljs doesn’t support custom output-dirs so they are just (f build-id)
(that said I don’t even know if we would want to set them to the same directory as the compiler output dir?)
I’m not sure. This could mean that if you eval something in the repl and reload the repl state is being loaded
because it overwrites existing js/cljs files in output-dir
I guess we could just make it target/main.out-repl instead of target/main.out or something like that
ok i've tried to add in :output-dir
and pass that along to weasel.repl.websocket/repl-env
but it doesn't seem to make a difference
result is here: https://github.com/pandeiro/boot-cljs-repl/commit/a7a5d5f73aaf33e82ed9488429ba363a4ca19c0f
@pandeiro: have you checked that the value is actually being passed to the weasel repl-env invocation?
If it really has no effect — bug in weasel?