This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-12-12
Channels
- # adventofcode (112)
- # architecture (1)
- # beginners (55)
- # boot (26)
- # cider (19)
- # cljs-dev (19)
- # cljsjs (1)
- # cljsrn (7)
- # clojure (140)
- # clojure-android (3)
- # clojure-austin (3)
- # clojure-china (3)
- # clojure-gamedev (1)
- # clojure-greece (43)
- # clojure-spec (75)
- # clojure-sweden (5)
- # clojure-uk (21)
- # clojurescript (66)
- # core-async (2)
- # core-logic (1)
- # cursive (63)
- # datascript (5)
- # datomic (4)
- # devcards (2)
- # duct (13)
- # editors (5)
- # emacs (9)
- # figwheel (4)
- # fulcro (42)
- # graphql (25)
- # immutant (7)
- # jobs (29)
- # leiningen (13)
- # lumo (7)
- # numerical-computing (3)
- # off-topic (22)
- # om (2)
- # onyx (25)
- # pedestal (3)
- # re-frame (14)
- # reagent (20)
- # remote-jobs (1)
- # ring-swagger (3)
- # rum (12)
- # shadow-cljs (9)
- # uncomplicate (1)
- # unrepl (6)
@chrisdevo BTW I’m assuming those are the wrong way around? Currently that only works with nREPL.
I didn't know there were AMAs outside of reddit
ARGH, what is wrong with web developers that more and more sites override really useful and commonly-used things like ctrl+f?
sorry, venting in the wrong place
It's not a big deal, at least for me, but Cursive doesn't work on JDK9: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
. Apparently, JAXB API has been removed from Java SE 9.
Well, I didn't try to run anything on JDK9, so I can't say for sure. When I encountered that error, I just switched back to JDK8 completely.
I used JDK 9 from within Cursive yesterday with no problem
to run Clojure that is
Is there a shortcut for "require namespace" other than using Find Action? Or just a command available so I can bind my own shortcut? I didn't see anything in Preferences under keymap.
@cfleming hey 🙂 Looking into exposing dynamic boot dependencies in a static way. What do you need for proper integration? a java classpath string, dependencies vector or are both equally good?
I guess I can make a pom.xml from a dependencies vector?
btw, clj
has an -Spom
option that will generate a pom.xml
useful to go from deps.edn -> pom.xml -> working Cursive project
@alexmiller is that available in the tools.deps API somewhere?
clojure.tools.deps.alpha.gen.pom/sync-pom
or if you want the tool edge wrapper, that’s in clojure.tools.deps.alpha.genmf
@alexmiller Right, but @p-himik is talking about using it to run IntelliJ, not projects within IntelliJ.
@martinklepsch Ideally I’d like a dependencies tree. I can build the tree myself if you give me a map of {project dep -> [its dependencies]}
or something like that.
I’m very curious how you’re planning to do this, since any task can add deps at any time, right?
right but tasks shouldn’t really do this except inside pods
IMHO a task that adds dependencies to your global env is broken 😛
Although in general I don’t have a problem saying that “if you do really crazy things you’re on your own”
programmable builds are a great idea. programmable (ie not data) deps is not. imho.
Gradle actually has a really nice model, which is basically that - partly declarative but the build is imperative.
Ok - do they officially support running IntelliJ under JDK9? I hadn’t seen anything about that.
I know they’re going to move their JDK build to JDK9 at some point, but I can imagine that might take a while.
This is a separate problem - prefetching dependencies in CI - but I think a solution for Cursive could follow a similar approach: https://clojureverse.org/t/statically-expose-pod-dependencies-idea-proof-of-concept/1179
Regarding programmable builds - interesting how in Python world people more and more often talk about moving from programmable to static builds, because programmable builds cause way too much problems.
It’d be an interesting experiment to replace Boot’s dynamic env with tools.deps static one.
@martinklepsch That looks nice. The problem is that I can’t only support boot projects that are structured in a certain way.
yeah, I mean this post is really about a different issue, in your project you probably don’t really care to much about dependencies in pods that you don’t really have access to anyways
All this for Cursive is so that I know which libraries the project needs - presumably if a pod needs them, some code in the project does too, unless it’s a jar for a tool of some kind (web service code generation or something)
maybe we’re misunderstanding each other but what tasks do in pods is opaque to the user, they don’t have access to whatever is happening inside a pod
pods are intended for dependencies your project does not depend on besides some minor tooling concern, whose API is exposed through the boot task
Right, but assuming the code in the pod is user code from the project (which it may not be if it’s e.g. a tool of some kind) then it’ll need those deps.
A very basic example is this: https://github.com/martinklepsch/boot-deps/blob/master/src/boot_deps.clj#L12-L13
We create a pod with some dependencies we need to do the job of the task but otherwise don’t need for the project itself
If a project contains code using pods (not too common but def. possible) that would be problematic I guess
but this is definitely more of an edge case
@cfleming I presume if everyone using Boot were to use deps.edn
this whole issue would be solved as well right?
BTW anyone using IdeaVim with Cursive probably should take a look at https://twitter.com/ideavim/status/940640661774233600