liquidz / antq

Point out your outdated dependencies.
Other
407 stars 26 forks source link

Support for libraries in :local/root dependencies #115

Closed bowbahdoe closed 2 years ago

bowbahdoe commented 3 years ago

Right now antq doesn't report on libraries that are included in :local/root subprojects

liquidz commented 3 years ago

@bowbahdoe Thanks for your suggestion! That's interesting.

Are you assuming to use with the multi-moduled project as follows?

- main project
  |
  +-- deps.edn (only want to use antq here)
  |
  +-- sub project 1
  |   |
  |   +-- deps.edn
  |
  +-- sub project 2
      |
      +-- deps.edn

If so, it make sense, so I'll try to implement it.

bowbahdoe commented 3 years ago

Yeah. I am experimenting with that structure anyways.

liquidz commented 3 years ago

Thanks! it make sense

liquidz commented 3 years ago

@bowbahdoe Sorry for late action, but I just tried to implement in feature/local-root branch. Could you try?

e.g.

$ cat deps.edn
{:deps {org.clojure/clojure {:mvn/version "1.10.0"}
        local/root {:local/root "./foo"}}}

$ cat foo/deps.edn
{:deps {medley/medley {:mvn/version "1.2.0"}}}

$ clojure -Sdeps '{:deps {com.github.liquidz/antq {:git/sha "9b52adbb213bd0adff5547b1e27f8625e20bbc08"}}}' -M -m antq.core
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

|        :file |               :name | :current | :latest |
|--------------+---------------------+----------+---------|
|     deps.edn | org.clojure/clojure |   1.10.0 |  1.10.3 |
| foo/deps.edn |       medley/medley |    1.2.0 |   1.3.0 |

Available diffs:
- https://github.com/clojure/clojure/compare/clojure-1.10.0...clojure-1.10.3
- https://github.com/weavejester/medley/compare/1.2.0...1.3.0
bowbahdoe commented 2 years ago

I have a bit of a pathological example that probably doesn't represent 99% of reasonable projects, but:

image

liquidz commented 2 years ago

@bowbahdoe Thanks for your trial! Is that working fine for you?

bowbahdoe commented 2 years ago

There is some weirdness like the duplicated deps, but for my purposes that it works for my purpose

liquidz commented 2 years ago

@bowbahdoe Thanks!

Do you have duplicate definitions for multiple aliases, etc.? If not, it's a bug, but I can't reproduce it in my environment...

bowbahdoe commented 2 years ago

Yep I do.

Again, super pathological but i'm not a big fan of override-deps as of yet. For work it won't be this crazy

{:paths   ["."
           "components/log/src"
           "components/log/resources"
           "components/file-store/src"
           "components/file-store/resources"
           "bases/mtgbot/src"
           "bases/mtgbot/resources"
           "bases/home_server/src"
           "bases/home_server/resources"]
 :aliases {:dev   {:extra-paths ["." "development/src"]
                   :extra-deps  {libraries/clojure          {:local/root "libraries/clojure"}
                                 libraries/tools-deps-alpha {:local/root "libraries/tools-deps-alpha"}
                                 libraries/build-clj        {:local/root "libraries/build-clj"}}}

           :build {:deps       {libraries/tools-deps-alpha {:local/root "libraries/tools-deps-alpha"}
                                libraries/build-clj        {:local/root "libraries/build-clj"}}
                   :paths      ["build/resources"]
                   :ns-default build}

           :test  {:extra-paths ["components/log/test"
                                 "components/file-store/test"
                                 "bases/mtgbot/test"
                                 "bases/home_server/test"]}

           :antq  {:main-opts  ["-m" "antq.core"]
                   :extra-deps {libraries/antq {:local/root "libraries/antq"}}}}

 :deps    {libraries/clojure         {:local/root "libraries/clojure"}
           libraries/mulog           {:local/root "libraries/mulog"}
           libraries/data-json       {:local/root "libraries/data-json"}
           libraries/hiccup          {:local/root "libraries/hiccup"}
           libraries/ring            {:local/root "libraries/ring"}
           libraries/discord4j       {:local/root "libraries/discord4j"}
           libraries/data-xml        {:local/root "libraries/data-xml"}
           libraries/aws-java-sdk-s3 {:local/root "libraries/aws-java-sdk-s3"}
           libraries/cats            {:local/root "libraries/cats"}
           libraries/antq            {:local/root "libraries/antq"}
           libraries/sqlite-jdbc     {:local/root "libraries/sqlite-jdbc"}
           libraries/next-jdbc       {:local/root "libraries/next-jdbc"}
           libraries/tools-logging   {:local/root "libraries/tools-logging"}
           libraries/logback-classic {:local/root "libraries/logback-classic"}
           libraries/timbre          {:local/root "libraries/timbre"}
           libraries/core-async      {:local/root "libraries/core-async"}
           libraries/promesa         {:local/root "libraries/promesa"}
           libraries/reitit          {:local/root "libraries/reitit"}}}

libraries/antq/deps.edn

{:deps {com.github.liquidz/antq {:git/sha "9b52adbb213bd0adff5547b1e27f8625e20bbc08"}}}
liquidz commented 2 years ago

@bowbahdoe Ah, I got it. Thanks! Fixed in d6527b9.

liquidz commented 2 years ago

Now merged to dev branch.

liquidz commented 2 years ago

I just released v1.3.0 #122