Fork me on GitHub
#tools-deps
<
2019-01-23
>
rschmukler17:01:11

Hey all - does anyone know if anything became of the add-lib function described here http://insideclojure.org/2018/05/04/add-lib/ ?

rschmukler17:01:30

I noticed a branch (`add-lib`) on the github repo, but it's ~20 commits behind master. Is it still preferable to use it?

Alex Miller (Clojure team)18:01:53

we haven’t integrated it yet

Alex Miller (Clojure team)18:01:14

I can merge up to master though if you want a master-compatible version of the branch

Alex Miller (Clojure team)18:01:14

actually I did that recently, and add-lib branch is currently only like 1 commits behind master

Alex Miller (Clojure team)18:01:31

merged, you can use sha e160f184f051f120014244679831a9bccb37c9de for latest

rschmukler18:01:07

@alexmiller Thanks a ton! Heads up that I found a bug where a transient dependency wasn't reloaded into the classpath. I will see if it's fixed by the latest, and if not, open an issue.

rschmukler18:01:35

Unless you'd prefer me not opening issues for it, since it's not even part of a release yet

Alex Miller (Clojure team)19:01:36

Did you mean transient or transitive?

Alex Miller (Clojure team)19:01:13

add-lib won’t do re-loading - it’s for additive use

ghadi21:01:10

@seancorfield have you run into any issues with depstar and multi release jars?

seancorfield21:01:34

@ghadi What do you mean by “multi release”?

Alex Miller (Clojure team)21:01:48

as of java 9 you can make jars with different per-jdk sets of stuff in them

seancorfield21:01:45

I haven’t tried to do anything with Java 9+ yet — we have a bunch of legacy code that won’t run on it.

ghadi21:01:01

I hadn't considered MRJars and was curious if it panned out

seancorfield21:01:07

Given that depstar doesn’t add a manifest — and filters out some manifest-related stuff as I recall — I don’t know how it would even go about that.

ghadi21:01:37

I forgot whether it filtered anything or not from the Meta-Inf

seancorfield21:01:42

I started looking at adding basic manifest support but that seemed to lead me down the AOT path, at least for the Main-Class: entry when it wasn’t clojure.main … and I decided I didn’t have the stomach for that (yet).

ghadi21:01:46

If it works it's by accident

seancorfield21:01:48

(defn excluded?
  [filename]
  (or (#{"project.clj"
         "LICENSE"
         "COPYRIGHT"} filename)
      (re-matches #"(?i)META-INF/.*\.(?:MF|SF|RSA|DSA)" filename)
      (re-matches #"(?i)META-INF/(?:INDEX\.LIST|DEPENDENCIES|NOTICE|LICENSE)(?:\.txt)?" filename)))

seancorfield21:01:45

(which seems pretty arbitrary — and I haven’t rationalized why it excludes all of that lot)

dominicm22:01:26

Does anyone have a firm reason that pack should implement a depstar like implementation?

ghadi22:01:45

what does that mean?

dominicm22:01:50

Rather, is there a reason pack should adopt "jar Smashing"?

hiredman22:01:33

I've got a thing I worked for a little bit, but I don't think I have the time to go anywhere with it: https://gist.github.com/hiredman/d68cafb6aa8cea563c7b77d54f522421 instead of building uberjars (which can end up taking forever to transfer) it uploads individual jars/git repos/local deps only if they haven't already been uploaded and then deploys a file containing a built classpath pointing to those things

❤️ 5
hiredman22:01:20

(inspired by a talk rich gave somewhere about datomic ions)