This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-07-23
Channels
- # 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
Haven’t tested Nashorn though I believe
@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
oh hang on - you use lein to create a boot project - nice!
yeah, there is no such thing as new
for boot yet, although it definitely would be cool. lots of ideas, limited time 😉
I hear you.
I don't see why project scaffolding tool would need to be built on top of boot
But yeah, lein templates don't compose
Would probably be useful to check if JS community has invented any sane tools
@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. 😫
only js tool i can think of is yeoman
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?
Also check the wiki
Someone might have added it there. :)
@martinklepsch: all I can find is you mentioning having lein-generate in your profile.boot file
@meow: option 1) https://github.com/darong-mean/todomvc/blob/568b07ad4787fd147a7e7856e030916d6eba15a4/build.boot#L52
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
@meow: let me know if this helped please
@cfleming: @meow — without having an idea if it works, I added this page: https://github.com/boot-clj/boot/wiki/For-Cursive-Users
please adjust if there’s something wrong or could be improved.
@martinklepsch: yes, thank you. I will take a closer look later today.
Awesome, thanks @martinklepsch!
@micha: yo! are fileset entries serialized before they’re passed to pods?
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.
https://github.com/boot-clj/boot/blob/master/boot/core/src/boot/core.clj#L637-L642
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)
Someone just commented again
potentially that metadata approach is flawed for compilation-like things, although it seemed pretty handy at first
yeah, this was the first iteration of it
but the string problem is due to pods shipping forms between themselves as strings, yes?
@micha: have you seen the last comment? it seems to be a java limit
It’s not boot.
So you might as well continue with whatever you did before
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
If you have any thoughts on this that issue is probably the best place.
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 pr-str
--> read-string
in the pod machinery itself we can use something like fressian, which is a streaming protocol
yeah, that sounds good
@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
@podviaznikov: point taken 👏 @juhoteperi 😂
When I grow up I want to be as productive as @juhoteperi 😄
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?
That’s my takeaway, yes @podviaznikov
thanks:)