This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # admin-announcements (3)
- # beginners (35)
- # boot (87)
- # cider (84)
- # cljs-dev (6)
- # clojure (70)
- # clojure-austin (3)
- # clojure-italy (11)
- # clojure-japan (6)
- # clojure-korea (16)
- # clojure-russia (87)
- # clojurebridge (1)
- # clojurescript (122)
- # core-async (112)
- # cursive (2)
- # datomic (46)
- # editors (6)
- # jobs (2)
- # ldnclj (8)
- # re-frame (1)
- # reagent (1)
hi all - any examples of a boot script that will includes ClojureScript testing using nashorn? Or any recommendations for which boot-cljs-test I should use?
@colin.yates: this one is shipped with tenzing and worked well for me: https://github.com/crisptrutski/boot-cljs-test
@colin.yates: if you just want to play around before integrating:
lein new tenzing testing-things +test
I have a lein project which uses cljsbuild and phantomjs to run the tests and it works great, but it is fairly ancient. When I ‘lein ancient’d it I ran into all sorts or errors. Googling then led me down a path of pain so I thought I would look at starting from scratch
yeah, there is no such thing as
new for boot yet, although it definitely would be cool. lots of ideas, limited time 😉
@juhoteperi: yeah composition is a big thing, but also adding some boilerplate after creation and just in general programmatically modifying your sourcetree could be interesting
besides that leiningens template stuff is seriously annoying. It’s all sexps and we do string templating. 😫
I'm starting to work with cursive, which uses project.clj as a way of defining/managing projects. So it would be useful if my boot scripts could keep a project.clj file in sync with what's defined in my build.boot file.
@meow: I saw someone mention a lein-generate task yesterday, which might work well for that. I’d like to know if it works for Cursive so I can point people at it.
@cfleming: yeah, that's right. I think I saw that, too. @martinklepsch - was that you that had such a thing?
I remember the conversation but not who it was. There's a log somewhere. Maybe search for cursive there?
@martinklepsch: all I can find is you mentioning having lein-generate in your profile.boot file
There seems to be more but I cant find the source of it: https://github.com/search?utf8=%E2%9C%93&q=lein-generate+extension%3Aboot&type=Code&ref=searchresults
@cfleming: @meow — without having an idea if it works, I added this page: https://github.com/boot-clj/boot/wiki/For-Cursive-Users
Someone was running into problems when attaching huge metadata to a fileset entry https://github.com/hashobject/perun/issues/49#issuecomment-124168241
I was trying to start up a python development server as a task, and including it as part of my dev task. https://gist.github.com/samedhi/6e3039845e4fd0e58e80 . Unsuprisingly, the python server "blocks" my cljs from being recompiled when I edit it and (and file reloads in general)? Any advice on how I could integrate this so that the server is started (and killed when boot exits) while also allowing the cljs task to recompile my code?
@samedhi: start the server in a separate thread and then use
boot.core/cleanup to stop the thread.
also i think it we might get around the string limitation if boot used streams instead of strings to pass forms between pods?
so @podviaznikov came up with this idea of attaching more things to fileset objects for a static site generator. I.e. adding a generated permalink to the metadata instead of saving it in file(s)
potentially that metadata approach is flawed for compilation-like things, although it seemed pretty handy at first
but the string problem is due to pods shipping forms between themselves as strings, yes?
yeah that’s what I thought and so I thought maybe the problem is on that side but probably it’s sane to put file sized things in files
I guess the issue breaks down to this:
(boot.pod/with-eval-in (boot.pod/make-pod) (pr-str ~(reduce str (take 65536 (repeat "s")))))
(as described here: https://github.com/hashobject/perun/issues/49#issuecomment-124168241)
i mean in the case where you don't explicitly call
pr-str in your pod on something enormous
And if you’re curious about crazy use cases for metadata perun is probably interesting
> The problem with storing output in the metadata is that there is a limitation to what you can store in a string in a .class format (65535 bytes). I’m not really familiar with this stuff enough to know if the above would be a solution to this?
i mean the problem, at least one problem anyway, is this https://github.com/boot-clj/boot/blob/master/boot/pod/src/boot/pod.clj#L211
instead of using
read-string in the pod machinery itself we can use something like fressian, which is a streaming protocol
@martinklepsch: just to clarify: I wasn’t the one who came up with idea of using fileset metadata instead of file. @juhoteperi came up with initial idea and I like it. Just don’t want to take credit for other people ideas
so did I understand this discussion correctly: we can still use fileset metadata in but
(pr-str (eval expr)) should be changed in boot? Is it correct?