funcool/cuerdas

ClojureScript is not a provided dep

metametadata opened this issue · 4 comments

Even though deps.edn seems to specify clojurescript as provided:

{:deps {org.clojure/clojurescript {:mvn/version "1.10.520" :scope "provided"}

in practice it's not, see final pom.xml:

  <dependency>
      <groupId>org.clojure</groupId>
      <artifactId>clojurescript</artifactId>
      <version>1.10.520</version>
    </dependency>

My Clojure project uses buddy-auth whch depends on cuerdas and excluding clojurescript dep explicitly reduces the uberjar size by ~15 MB. Dependency tree snippet:

[buddy/buddy-auth "2.2.0"]
     [buddy/buddy-sign "3.1.0"]
       [buddy/buddy-core "1.6.0"]
         [net.i2p.crypto/eddsa "0.3.0"]
         [org.bouncycastle/bcpkix-jdk15on "1.62"]
         [org.bouncycastle/bcprov-jdk15on "1.62"]
     [funcool/cuerdas "2.2.0"]
       [org.clojure/clojurescript "1.10.520"] <----------------------

IMHO clojurescript should be under the :dev alias not in main :deps because every project that uses buddy-auth ends up bundling all of clojurescript (goog closure compiler) in the uberjar.

already fixed

Thank you! Could you also deploy buddy-auth with the new cuerdas version? This will allow me to remove :exclusions from my code:

[buddy/buddy-auth "2.2.0"
                  ; HACK: https://github.com/funcool/cuerdas/issues/74
                  :exclusions [org.clojure/clojurescript]]

Could you also deploy buddy-auth with the new cuerdas version?

Merging funcool/buddy-auth#85 into buddy-auth and deploying the new version would also be good.