This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
@timothypratley: the idea with that saying is that, because idiomatic tasks only depend on their configuration and the fileset, we don't need a
@timothypratley: but yes, middlewares can also build up a cache and diff incoming filesets, which is how a system like boot can be competitive with systems like make
If I’m running a server from a boot repl, what’s the best way / workflow to have the server update on changes?
@alejandro: have you seen https://github.com/pandeiro/boot-http ? I realize it is not ‘in the repl` but it seems like if you enable -R wrap-reload, it will take whatever you have saved, and if you really want REPL action it looks like you could modify the task to start an nrepl? (disclaimer: I am a new boot user)
alandipert: I see. So to contrast,
make is a run-many approach which can notice your artifact already exists and is newer than its dependencies.
boot doesn’t have the ‘already built’ concept, every build is fresh but can be long lived and detect change henceforth. I wonder if there will be appetite to use make to decide when to run boot o_O.
So I'm trying to set up a dev environment using a build.boot mostly copy-pasted from the tenzing app. Everything works fine, cljs files are compiling and the app is being served. The problem is that when my init function tries to re-render my reagent components on change using this:
I get this error:
In my js console
Uncaught Error: Invariant Violation: _registerComponent(...): Target container is not a DOM element.
The app renders fine the first time but if I make any changes to the source files the app dies with the error above trying to re-render.
is the app so simple that it can’t be the code? or are you willing to paste some of the code?
Hmm it seems that when the boot reloads the code something is getting rid of the
completely. It's just gone from the html doc
(defn init  (do ;(routes/app-routes) (re-frame/dispatch-sync [:initialize-db]) (mount-root) (.log js/console "Init done BOOOYA")))
in ta.routes if I
remove the hook-browser-navigation! call also reloading is working...
I copy-pasted the hook-browser-navigation function from a secretary example, I've yet to wrap my head around how the whole thing works
right, but why is (app-routes) being called on reload? it implies (init) is called instead of mount-root
so, if only mount-root is called on reload, won't that mean that if I make changes to non-view related parts of the app that they won't be reloaded?
I mean the code is ALWAYS reloaded… the on-jsload is just called AFTER the code is loaded
btw love the UI, looks really great! good job seeing you are working in the education space you might be interested in http://leaderboardx.herokuapp.com/ <— I made a sociogram builder for teachers
Thankyou I'm a high school English teacher, I'm trying to learn clojurescript in the fraction of my time that's spare haha
cljs.user=> (dir goog.string) WARNING: Use of undeclared Var cljs.user/dir at line 1 <cljs repl> ExceptionInfo #<TypeError: Cannot read property 'call' of undefined> clojure.core/ex-info (core.clj:4591)
cljs.user=> (require '[cljs.repl]) ExceptionInfo #<Error: Namespace "cljs.user" already declared.> clojure.core/ex-info (core.clj:4591) cljs.user=>
Actually, none of the helper functionality from cljs.repl is available:
cljs.user=> (doc map) WARNING: Use of undeclared Var cljs.user/doc at line 1 <cljs repl> ExceptionInfo #<TypeError: Cannot read property 'call' of undefined> clojure.core/ex-info (core.clj:4591)
I have to say that boot-cljs-repl is really starting to feel like an unsupported mess, based on the lack of response to the github issues where it seems like fixes made by the community are stuck waiting for someone to do something with them. Am I wrong about this?
things appear to be settling down, but i would say if you depend on tools that move with cljs regularly, it will just be tough for awhile
david nolen promises a slower pace this year, so i imagine things will become less brittle
that said - if you yourself have the time to keep track of things and are interested in maintainership, i'm happy to annoint you
@alandipert: thanks for the response. I do have the time and interest, but I'm not sure I'm fully qualified at this point as I am still learning clojure and clojurescript. Started with them on May 15, so it's been six weeks now.
i imagine if you're just starting, perhaps it would be helpful if you stick with known-good combinations of boot/cljs things?
So I'm going to stop complaining for the moment and look at the source code for boot-cljs-repl and the pull-requests on github and see if I would be comfortable working on it.
@alandipert: Regarding Cljs versioning, if you have not yet heard David mentitioned on his talk that Cljs will probably start following Clojure versioning
#boot-cljs-repl, my vacation starts in a week and I should have more time to work on OS stuff (cljs-repl) then
so i can render manpages in java without needing the man(1) program to typeset the troff
depending on shelling out to the man(1) program is annoying because it might not be available, etc
micha: it’s crazy like you will find tons of curses libraries to build GUI s in the terminal, but typesetting is a wasteland
we’ll hear from you again in ten years, descending from a mountain with a comprehensive, portable typesetting system for the terminal.