1. 18
  1.  

  2. 2

    @technomancy do you have any insight on how lein is related to/overlaps with the new official command line tool? Is it the kind of thing lein would take advantage of under the hood, or unrelated to lein users?

    1. 3

      The new tool (really more importantly the tools.deps.alpha lib underneath it) is designed to build classpaths both from Maven libraries, but also from other stuff as well. It overlaps some of what lein uses pomgeranate for (the artifact and metadata download) but not does do anything with the deployment side. Because of that, I don’t think it would make a ton of sense for leiningen to use it instead of pomegranate.

      However, it might be useful to have a lein plugin that could read its dependencies from a deps.edn file (if that’s something a plugin could do?). However, the overlap with lein profiles would be weird and it’s unclear to me what is valuable here that would be worth doing.

      One thing that t.d.a can handle is local projects (and eventually probably using code directly from github). When we get that done, perhaps it would be useful enough to leverage in lein.

      1. 1

        Where do you see tools.deps going?

        For example, I’d love to get rid of Maven and Leiningen altogether. They’re mostly “the standard” because everything depends on a shitload of libraries, right?

        Maybe there could be some sort of community guidance towards a cleaner ecosystem? :)

        “If you see a library depending on commons-whatever.jar from 1998, ask the authors if it’s absolutely necessary, or if we could maybe stop lugging it around in hundreds of thousands of projects!”

        1. 1

          One direction that we are already headed is to enable you to point directly at a github project as a dependency. Clojure code doesn’t need to be built into a jar and downloaded to be loaded by the Clojure runtime. Instead, just point at some github projects (with sane support for tags, etc), have your tool download and cache that code as necessary, and start working. There does not need to be a Maven deploy and download step at all.

          1. 1

            One direction that we are already headed is to enable you to point directly at a github project as a dependency.

            Does GitHub support some manner of “stable releases”, or would tools.deps just get whatever the current state on the master branch happens to be?

            There does not need to be a Maven deploy and download step at all.

            Yeah, the main problem there is Java’s baggage. I hope the Java ecosystem gets cleaned up somehow. The JDK 9 module system might help.