This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-08-11
Channels
- # admin-announcements (1)
- # aws (2)
- # beginners (32)
- # boot (147)
- # capetown (1)
- # cider (11)
- # cljs-dev (45)
- # cljsrn (57)
- # clojure (187)
- # clojure-russia (5)
- # clojure-spec (97)
- # clojure-uk (33)
- # clojurescript (33)
- # cloverage (17)
- # clr (4)
- # conf-proposals (93)
- # core-async (6)
- # cursive (9)
- # data-science (1)
- # datomic (24)
- # defnpodcast (1)
- # devcards (3)
- # emacs (3)
- # hoplon (95)
- # jobs (1)
- # off-topic (7)
- # om (97)
- # onyx (32)
- # overtone (1)
- # parinfer (4)
- # pedestal (1)
- # proton (1)
- # protorepl (13)
- # re-frame (4)
- # reagent (10)
- # specter (14)
- # untangled (40)
https://github.com/Homebrew/homebrew-core/blob/fb81645562f7e495a49561065912788af2d1f14f/Formula/boot-clj.rb it's still 2.5.2
here, we already reached 2.6.0
@jiyinyiyong: that's only the boot.sh
part
the homebrew package is just to distribute the shim that gets the "real" boot from maven
@jiyinyiyong: there we go, all updated now
Is there any known performance difference when pinning the clojure version of boot?
@lambder: Your project pulls in an older tools.namespace
version. You would need to do some detective work to identify which of your dependencies is the culprit, then exclude that version from your project.
how to keep a task running rather exiting immediately? I create a server with ring
in the task and I don't want it to exit
boot ... wait
As I try to include my whole node_modules
folder in :resource-paths
I get the following error:
(FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)
Any idea? Too many files in that folder?
The actual exception is java.lang.OutOfMemoryError: unable to create new native thread
@vikeri: check the issue tracker, I've seen these before but not sure if there was a solution
(I think the solution was not to have node_modules in resources or so
@martinklepsch: Couldn’t find anything but I probably didn’t search hard enough
@martinklepsch: No solution seems to be found though, maybe I’d have to use flyboarder’s npm task to get this working. Might resort to just break boot philosophy by spitting things out with target for now since I’m not sure about the ramifications of hiding away my node_modules
folder from RN.
@vikeri: remember the node_modules folder is massive
another idea may be to use boot's cache-dir feature. Does this run into the same problem?
@pesterhazy: I know. Have not tried that, will I get node_modules in my fileset then?
don't know any details I'm afraid
is anyone familiar with using cljsjs to pull in react-with-addons? I’m for some reason always getting react.inc.js instead of with-addons.inc.js, despite a boot file as thus:
[reagent "0.6.0-alpha" :exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server]]
,,,[cljsjs/react-with-addons "15.1.0-0"]
,,,[cljsjs/react-dom "15.1.0-0"]
,,,[cljsjs/react-dom-server "15.1.0-0"]
those exclusions look correct to me, though?@lwhorton: maybe check out the reagent pom to confirm?
I have the "problem with refresh-dirs" mentioned here: https://github.com/boot-clj/boot/wiki/Repl-reloading
In a mixed cljs+clj project, my jvm process tries to reload ajax.core
, even though it's a client-only dependency
I don't understand the workaround suggested in the wiki
@pesterhazy: the workaround suggests setting refresh-dirs to the actual source directories that you want to reload
going behind Boot's back, huh?
(defn reset-dev []
;; hack: only find the boot temp-dir that contains this file.
;; this is to prevent problems relating to tools.namespace
;; trying to reload cljs dependencies
(let [dirs (->> (boot.core/get-env :directories)
(filter (fn [xs]
(->> xs file-seq (filter #(-> % .getPath (.contains "my/project/repl.clj"))) seq))))]
(apply clojure.tools.namespace.repl/set-refresh-dirs dirs))
(stop)
(refresh :after 'my.project.repl/go))
this seems to do the job as well
omg it works
this may be a more general hack than the one suggested in the wiki
for me the point is to exclude the cljs-related directory
@vikeri: npm task uses the cache dir within boot for its operations.
@dm3, I'm simply using cljs-ajax (ajax.core) in my client code
that library also comes with a clj implementation
which for some reason gets included when reloading (I guess because the cljs compiler runs in the same process/classpath/?)
and reloading cljs.ajax breaks
right
anybody got push to s3 working using IAM roles? I know my creds are good (equivalent mvn deploy
command works) but I cannot replicate in boot
@stuarthalloway: are you using boot-s3?
it's possible that boot-s3 uses subtly different S3 commands, requiring different permissions (e.g. "s3:ListBucket", "s3:GetObject")
looking at https://github.com/hashobject/boot-s3/blob/master/src/hashobject/boot_s3/s3.clj, it seems to require fairly extensive permissions (like listing all buckets)
what error message do you get?
@pesterhazy: error message is gibberish due to ANSI escapes, let me rerun
sounds like push + s3 wagon, not the boot-s3 task. but yeah, could still be a perms issue, not sure if the wagon requires different ones than the maven plugin would
I am going to try the Spring wagon
@stuarthalloway: the -C, --no-colors
option strips the ANSI stuff, like boot -C sometask
you could try setting temporarily setting the permissions to "full" as explained in the last snippet in http://mikeferrier.com/2011/10/27/granting-access-to-a-single-s3-bucket-using-amazon-iam/
s3 permissions are surprisingly tricky
that’s just giving up 🙂
I call it verifying a hypothesis 🙂
one thing that's confusing about s3 policies is that you need to allow ListObjects
action on the bucket itself, but GetObject
etc can be on key prefixes in the bucket
yeah, that's why I linked to the example on the blog
also if you don't have ListObjects
permission then 404 (key not found) will be returned as 403 (premission denied)
(system :sys (resolve 'user/new-dev-system) :auto true :files ["edge/phonebook.clj"])
Compiling ClojureScript... • edge.js #'user/new-dev-system:refreshing Unloading: (user edge.system edge.web-server edge.phonebook) Reloading: (edge.phonebook edge.web-server edge.system user) Writing target dir(s)... Elapsed time: 0.600 sec
thanks @pesterhazy and @micha for the advice earlier. My tentative conclusions
| wagon | explict creds | system property creds | role creds |
|--------+---------------+-----------------------+------------|
| priv | conveys | no | no |
| spring | conveys | conveys | conveys |
where priv is
:wagons '[[s3-wagon-private "1.2.0"]]
and spring is
:wagons #(conj % '[org.springframework.build/aws-maven "5.0.0.RELEASE"
:schemes {"s3"
(fn []
(org.springframework.build.aws.maven.SimpleStorageServiceWagon.)) }])
@stuarthalloway: this open issue confirms it: https://github.com/technomancy/s3-wagon-private/issues/18
@lambder: Almost. But the system var should be defined in your project namespaces, not in user
. Please refer to any of the examples.
@lambder: Something else, not all namespaces are being reloaded, only the affected ones. Where in the docs does it say all?
@danielsz: you’re right only affected not all. My bad but the changes I made affect what’s rendered on server-side
I see. Why do you think you need line 103, line 104 and line 107? Where did you see that?
103 is from original https://github.com/juxt/edge
so basically my objective was to take https://github.com/juxt/edge and make it auto refresh after changes in the backend code
The user namespace is a namespace available at the REPL, it is not part of the project. This seems wrong to me.
Right. I haven't tried to retrofit sytem onto an edge app, so I can't help you here. I have a set of guidelines when using system
, and it's very simple. But I expect an app structure like the ones in the examples.
Sure. Good luck. In the system
repo, you will find examples that offer similar functionality as edge.
Also, some people use this to bootstrap a reloadable back-end + front-end. https://github.com/danielsz/holygrail