This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-08-10
Channels
- # aleph (3)
- # architecture (3)
- # bangalore-clj (5)
- # beginners (75)
- # boot (75)
- # cider (2)
- # cljs-dev (48)
- # cljsjs (3)
- # cljsrn (17)
- # clojure (125)
- # clojure-belgium (1)
- # clojure-boston (1)
- # clojure-italy (20)
- # clojure-losangeles (2)
- # clojure-spec (73)
- # clojure-uk (34)
- # clojurescript (127)
- # cursive (8)
- # data-science (5)
- # datascript (128)
- # datomic (5)
- # emacs (4)
- # events (3)
- # fulcro (1)
- # jobs (1)
- # jobs-discuss (4)
- # jobs-rus (9)
- # keechma (79)
- # lein-figwheel (2)
- # leiningen (2)
- # lumo (31)
- # om (1)
- # parinfer (61)
- # pedestal (1)
- # planck (1)
- # portkey (31)
- # re-frame (34)
- # reagent (53)
- # ring (3)
- # ring-swagger (13)
- # rum (1)
- # spacemacs (14)
- # testing (1)
- # yada (2)
Is there a plan to release 2.7.2 soon? @juhoteperi
@micha ^ Is there a plan to release 2.7.2?
Hi everyone, I want to use boot's checkout capability to have ClojureScript itself as a checkout dependencies, so I can put println
calls where necessary to understand it. The CLJS repo has a project.clj
, but I can't find how to do with lein
the equivalent of boot watch build-jar
so that anytime I change CLJS code source it's reinstalled locally and taken into account in my app. Any idea ?
@djebbz isn't that a lein
question? Anyway there must be a plugin for that
@djebbz Lein doesn't have anything built-in for that. You could use something like inotifywait
in Linux or fswatch
in OS X to trigger lein install
on file changes, you'll need shellscript for this.
Also, boot-cljs doesn't (and can't easily) load new ClojureScript version even if you use :checkouts
with ClojureScript
At least not when you use watch
.
If you start new Cljs compilation with (boot (cljs))
new pod, with new ClojureScript version is created
but with (watch (cljs))
Boot will use the existing pod with old Cljs version
And changing this is not really possible. Creating new pod with new Cljs version would mean clearing cache etc. and cold-build, the same as when you start new boot process
Thanks @juhoteperi, too bad :/
Not sure why this would be that useful anyway.
If you need to fix/change something on ClojureScript compiler, it is best to create test cases on Cljs and use those to validate fix. Then test with the project.
Ah, well, you mentioned println.
@richiardiandrea I was wondering if you had the figwheel repl running already with figreload? I couldn’t figure it out yet, and as we were able to work around the boot-cljs-repl issue (https://github.com/adzerk-oss/boot-cljs-repl/issues/49#issuecomment-321546131) we’re sticking with it for now
@kommen no I haven't, I was using boot-cljs-repl
(or dirac
)
that's good that you worked around that anyways
ok, I will give the figwheel repl another try at some point, maybe when I understand all this repl stuff, nrepl, et all a little bit more
@kommen I think it would not be that hard to bootstrap an nrepl
server...then the next step is to see if and what custom messages figwheel expects...on the other hand, if no custom messages are required...then that's a plain nrepl
+ piggieback
😱
Is there a way to force a boot dependency to look in the local repo only and not error when it can’t find it in the remotes?
@cpmcdaniel Isn't this what :checkout
is all about ?
I’ll give it a shot, thanks
Checkouts is about loading the updated package without restarting Boot
I think not
Maven doesn't really have support for defining repositories/options per package
Anyone here using crisptrutski/boot-cljs-test? It deletes my cljc files after a cljs test run! 😂
djebbz one maven concept that might suit your case is 'internal repository'. you can make a local/filesystem maven repo and add it as a repo in your build.boot
@alandipert How to do that ? I know close to nothing about maven... Thanks in advance
Ok, I checked Maven docs https://maven.apache.org/guides/introduction/introduction-to-repositories.html, and my understanding is that I can point Boot to some path in my filesystem that is a repository. In my case I want to use my local version of ClojureScript, not sure how to set it up.
Hmh, this will work just the same as just installing Cljs to the default local repository
Just run lein install
on Cljs and update the version number on your project
Cljs will automatically create the version number from number of commits, so the new version will probably be one that is not available in Mavencentral anyway, so you are not overriding existing Cljs version
So, I'll end up having to restart my repl everytime also in this case (because of boot-cljs
, as you said before @juhoteperi), right ?
Ah no lein install
, you need to run script/build
to package Cljs
I know it's not related to Boot but more to JVM package management in general, but for this kind of things npm
(and maybe yarn
) is vastly superior. You can npm link
to just create symlinks to your local version, and boom!, ready to hack the local version. Takes 10 seconds. Much easier...
Checkout works fine generally, but Clojure and ClojureScript compiler are special cases, especially if using Lein/Boot, where Cljs is isolated to separate environment, which prevents reloading it
Else tooling dependencies would mess up your project environment
If you want fast way to edit Cljs code and test changes, you'd need to skip boot-cljs/lein-cljsbuild/figwheel and just call Cljs directly from REPL, with Cljs code in classpath
That will work
But boot-cljs and other enforce the separate environment
> Else tooling dependencies would mess up your project environment Makes perfect sense indeed
Boot wiki Pods page has few sentences about this: https://github.com/boot-clj/boot/wiki/Pods
question about "Cljs code in classpath" : can a classpath include a directory from outside the root of the project ? Like "../../path/to/local/clojurescript" ?
In Lein, yes, not sure if Boot allows that
In fact, lein checkouts work by modifying your projects source-paths to include source-paths of the checkout project
Depending on what you want to test with Cljs, it might just be easiest to run lein repl
on Cljs project and add our .cljs code there
That is usually what I do
Again, works at least with Lein, I don't remember if I have tried that with Boot
Thanks a lot @juhoteperi and @alandipert, mucho appreciated
@qqq there is a link just up above
Unfortunately the wiki page doesn't tell much
if I just want "default pod with the dependencies listed in boot" do I use:
(defn ns-tracker-pod []
(->> '[[ns-tracker "0.3.0"] [org.clojure/tools.namespace "0.2.11"]]
(assoc (boot/get-env) :dependencies)
pod/make-pod))
(from boot-garden)
or is there a more standard way ?That one replaces the project dependencies with the listed ones
If you want pod with only the project deps: (pod/make-pod (boot/get-env))
Or update :dependencies conj
if you need to add some deps
@juhoteperi : thanks