Fork me on GitHub
#tools-deps
<
2018-04-15
>
Alex Miller (Clojure team)00:04:07

from my perspective re deps.edn: don’t put arbitrary other gunk in it.

Alex Miller (Clojure team)00:04:55

I make no guarantees that arbitrary stuff will get properly merged across multiple deps files and/or transmitted through the code

hagmonk01:04:24

@alexmiller thanks, that’s a compelling reason to keep things out of there :)

Alex Miller (Clojure team)01:04:28

(although I think it probably will right now)

richiardiandrea01:04:11

@dominicm congrats for the install patch, feels way better. It is also nicer to see the names of the contributors in the log. It was missing before but it goes a long way to "thank" contributors. FWIW, I like this idea.

👍 4
Alex Miller (Clojure team)02:04:47

I have done it a couple times in the past, I just forget sometimes.

hagmonk01:04:47

Oh cool, TDEPS-26 was fixed too

Alex Miller (Clojure team)02:04:32

New releases of tools.deps.alpha and the Clojure tools (clj, clojure) are now available. This is mostly a bug fix release.

To update, use `brew upgrade clojure` on Mac, or the Getting Started installation instructions on Linux. 
Windows installers are coming soon(ish)! I have an initial version working and it's about 80% done, so only 80% to go. :)

Updates:

- TDEPS-73 detect invalid deps.edn file and improve error
- TDEPS-61 use Clojars CDN repo
- TDEPS-26 include transitive runtime deps in addition to compile deps
- TDEPS-71 better error if Java not installed - primarily for Linux installer (patch thanks to Mike Fikes)
- TDEPS-65 specify permissions on installed files in Linux installer (patch thanks to Dominic Monroe) 

seancorfield02:04:44

I ended up not working on clj-new today, but may work on it tomorrow. I still plan to make an announcement about it early next week either way (we have a major infrastructure upgrade on Monday so I suspect it'll be Tuesday when I write up the clj-new stuff).

seancorfield02:04:03

I did bump the t.d.a. dep to the new release tho' 🙂

hagmonk19:04:14

so I'm trying to build an uberjar targeting a kafka connector … for the life of me I can't get kafka to load it, it barfs on Could not locate clojure/core__init.class or clojure/core.clj on classpath.

hagmonk19:04:35

core__init.class is definitely in the uberjar, however

hagmonk19:04:31

building this as an example with depstar, so I'm trying to figure out if the uberjar put together is somehow wrong

hagmonk19:04:44

[2018-04-15 19:47:23,641] INFO Loading plugin from: /connectors/postgres-plugin.jar (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:176)
[2018-04-15 19:47:23,646] DEBUG Loading plugin urls: [file:/connectors/postgres-plugin.jar] (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:183)
Exception in thread "main" java.lang.ExceptionInInitializerError
        at clojure.lang.Namespace.<init>(Namespace.java:34)
        at clojure.lang.Namespace.findOrCreate(Namespace.java:176)
        at clojure.lang.Var.internPrivate(Var.java:153)
        at thals.pgconnector.SourceConnector.<clinit>(Unknown Source)

hagmonk19:04:20

how's this jar managing to get as far as clojure.lang.Namespace but then claiming it's unable to find clojure/core__init.class

hagmonk19:04:24

oh crap, it's the classloader thing

dominicm20:04:01

Can you link me to the documentation on how kafka loads classes? I'm the author of pack, and I'd like to read about what I'd need to do to support their preferred format.

hagmonk20:04:42

but, unfortunately, I don't think it's related to the jar format. I believe they start a new classloader and load all the jars into that, which isn't visible to clojure because use-context-classloader is set to true

hagmonk20:04:30

I'm trying to figure out if there's a way to get around this without resorting to java

hagmonk20:04:17

in terms of how they want stuff packed, it's documented here: https://docs.confluent.io/current/connect/devguide.html#packaging

hagmonk20:04:45

the tl;dr version is that they can take uberjars, or a directory full of jar dependencies (excluding kafka runtime goop), including obviously the jar containing the connector implementation

dominicm20:04:11

The zip version would work better, and fits with the Pack philosophy.

👍 4