babashka / neil

A CLI to add common aliases and features to deps.edn-based projects
MIT License
360 stars 26 forks source link

NPE on `neil dep upgrade ` #191

Closed Ramblurr closed 4 months ago

Ramblurr commented 9 months ago
----- Error --------------------------------------------------------------------
Type:     java.util.concurrent.ExecutionException
Message:  java.lang.NullPointerException
Location: /nix/store/y88yldmc8521fhsnjhvsbz7h9hppdi60-neil-0.2.61/bin/.neil-wrapped:1665:3

----- Context ------------------------------------------------------------------
1661: (defn neil-test [{:keys [opts]}]
1662:   (neil-test/neil-test opts))
1663: 
1664: (defn -main [& _args]
1665:   (cli/dispatch
        ^--- java.lang.NullPointerException
1666:    [{:cmds ["add" "dep"] :fn dep-add :args->opts [:lib]}
1667:     {:cmds ["add" "test"] :fn add-cognitect-test-runner}
1668:     {:cmds ["add" "build"] :fn add-build}
1669:     {:cmds ["add" "kaocha"] :fn add-kaocha}
1670:     {:cmds ["add" "nrepl"] :fn add-nrepl}

----- Stack trace --------------------------------------------------------------
clojure.core/deref-future            - <built-in>
clojure.core/future-call/reify--8544 - <built-in>
clojure.core/deref                   - <built-in>
clojure.core/map/fn--5935            - <built-in>
clojure.core/seq--5467               - <built-in>
... (run with --debug to see elided elements)
clojure.core/seq--5467               - <built-in>
babashka.neil/-main                  - /nix/store/y88yldmc8521fhsnjhvsbz7h9hppdi60-neil-0.2.61/bin/.neil-wrapped:1665:3
babashka.neil/-main                  - /nix/store/y88yldmc8521fhsnjhvsbz7h9hppdi60-neil-0.2.61/bin/.neil-wrapped:1664:1
babashka.neil                        - /nix/store/y88yldmc8521fhsnjhvsbz7h9hppdi60-neil-0.2.61/bin/.neil-wrapped:1726:3
babashka.neil                        - /nix/store/y88yldmc8521fhsnjhvsbz7h9hppdi60-neil-0.2.61/bin/.neil-wrapped:1725:1

Here is the deps.edn

{:paths ["src/main" "resources"]
 :deps  {org.clojure/clojure              {:mvn/version "1.11.1"}
         org.clojure/core.async           {:mvn/version "1.6.681"}
         org.clojure/tools.logging        {:mvn/version "1.2.4"}
         org.clojure/tools.macro          {:mvn/version "0.1.5"}
         org.clojure/data.generators      {:mvn/version "1.0.0"}
         org.clojure/data.json            {:mvn/version "2.4.0"}
         ;; Routing
         metosin/reitit                   {:mvn/version "0.5.18"}
         ;; HTTP, Ring, Pedestal
         metosin/ring-http-response       {:mvn/version "0.9.3"}
         ring/ring-core                   {:mvn/version "1.9.5"}
         metosin/reitit-pedestal          {:mvn/version "0.5.15"}
         io.pedestal/pedestal.jetty       {:mvn/version "0.6.1"}
         io.pedestal/pedestal.service     {:mvn/version "0.6.1"}
         io.pedestal/pedestal.interceptor {:mvn/version "0.6.1"}
         prone/prone                      {:mvn/version "2021-04-23"}
         http-kit/http-kit                {:mvn/version "2.7.0-beta3"}
         co.deps/ring-etag-middleware     {:mvn/version "0.2.1"}
         luminus-transit/luminus-transit  {:mvn/version "0.1.6" :exclusions [com.cognitect/transit-clj]}
         metosin/muuntaja                 {:mvn/version "0.6.8"}
         metosin/reitit-malli             {:mvn/version "0.5.18"}
         ;; Errors and Logging
         ch.qos.logback/logback-classic   {:mvn/version "1.4.5"}
         ;; Data Persistence
         com.datomic/peer                 {:mvn/version "1.0.6735"}
         duratom/duratom                  {:mvn/version "0.5.8"}
         com.yetanalytics/colossal-squuid {:mvn/version "0.1.5"}
         ;; Data
         metosin/malli                    {:mvn/version "0.13.0"}
         ;; Utils
         dev.weavejester/medley           {:mvn/version "1.7.0"}
         tick/tick                        {:mvn/version "0.7.5"}
         com.wsscode/pathom3              {:mvn/version "2023.08.22-alpha"}}
 :aliases
 {:run-m {:main-opts ["-m" "st.st"]}
  :run-x {:ns-default st.st
          :exec-fn    greet
          :exec-args  {:name "Clojure"}}
  :build {:deps       {io.github.seancorfield/build-clj
                       {:git/tag   "v0.6.3" :git/sha "9b8e09b"
                        ;; since we're building an app uberjar, we do not
                        ;; need deps-deploy for clojars.org deployment:
                        :deps/root "slim"}}
          :ns-default build}
  :test  {:extra-paths ["test"]
          :extra-deps  {org.clojure/test.check {:mvn/version "1.1.1"}
                        io.github.cognitect-labs/test-runner
                        {:git/tag "v0.5.0" :git/sha "48c3c67"}}}
  :dev   {:extra-paths ["src/dev"]
          :extra-deps  {nrepl/nrepl                   {:mvn/version "1.0.0"}
                        cider/cider-nrepl             {:mvn/version "0.38.1"}
                        djblue/portal                 {:mvn/version "0.48.0"}
                        refactor-nrepl/refactor-nrepl {:mvn/version "3.9.0"}}}}}
borkdude commented 9 months ago

Are you using the newest version of neil, if so, which version?

Can you please help bisecting which dependency triggers the NPE?

teodorlu commented 9 months ago

which version?

looks like neil-0.2.61:

Location: /nix/store/y88yldmc8521fhsnjhvsbz7h9hppdi60-neil-0.2.61/bin/.neil-wrapped:1665:3
borkdude commented 9 months ago

Please try 0.2.62 since an NPE bug has been fixed in that one.

borkdude commented 4 months ago

Can't repro with newest version. Since I didn't get a reply, I'll close this for now.

Ramblurr commented 4 months ago

Sorry I didn't reply, I can confirm it was fixed!