Last active
September 30, 2021 19:37
Revisions
-
borkdude revised this gist
Jan 8, 2021 . 1 changed file with 1 addition and 3 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,14 +1,12 @@ #!/usr/bin/env bash #_" -*- mode: clojure; -*-" #_( "exec" "clojure" "-Sdeps" "{:deps {clj-kondo/clj-kondo {:mvn/version \"2020.12.12\"} org.clojure/tools.deps.alpha {:mvn/version \"0.9.857\"} org.slf4j/slf4j-nop {:mvn/version \"1.7.30\"} lambdaisland/deep-diff2 {:mvn/version \"2.0.108\"} juji/editscript {:mvn/version \"0.5.4\"}}}" "-M" "$0" "$@" ) ;; Example usage: ;; api_diff.clj org.clojure/clojure "1.8.0" "1.10.1" > /tmp/diff.txt (require '[clj-kondo.core :as clj-kondo]) (require '[clojure.edn :as edn]) -
borkdude revised this gist
Jan 8, 2021 . No changes.There are no files selected for viewing
-
borkdude revised this gist
Jan 8, 2021 . 1 changed file with 2 additions and 0 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -7,6 +7,8 @@ ;; Example usage: ;; api_diff.clj org.clojure/clojure "1.8.0" "1.10.1" > /tmp/diff.txt ;; Also check out the babashka version: https://gist.github.com/borkdude/ba372c8cee311e31020b04063d88e1be (require '[clj-kondo.core :as clj-kondo]) (require '[clojure.edn :as edn]) -
borkdude revised this gist
Jan 8, 2021 . 1 changed file with 30 additions and 7 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -30,24 +30,47 @@ [f coll] (persistent! (reduce #(assoc! %1 (f %2) %2) (transient {}) coll))) (defn group [vars] (->> vars (map #(select-keys % [:ns :name :fixed-arities :varargs-min-arity])) (index-by (juxt :ns :name)))) (defn vars [lib] (-> (clj-kondo/run! {:lint [lib] :config {:output {:analysis true :format :edn}}}) :analysis :var-definitions #_ clean)) (def vars-1 (vars path1)) (def vars-2 (vars path2)) #_(require '[lambdaisland.deep-diff2 :as ddiff]) #_(ddiff/pretty-print (ddiff/diff vars-1 vars-2)) ;; (require '[editscript.core :as c]) ;; (require '[editscript.edit :as e]) ;; (def d (c/diff vars-1 vars-2)) ;; (require '[clojure.pprint :refer [pprint]]) ;; (pprint (e/get-edits d)) (defn var-symbol [[k v]] (str k "/" v)) (def compare-group-1 (group vars-1)) (def compare-group-2 (group vars-2)) (def lookup-1 (index-by (juxt :ns :name) vars-1)) (doseq [[k var-1] compare-group-1] (if-let [var-2 (get compare-group-2 k)] (let [fixed-arities-v1 (:fixed-arities var-1) fixed-arities-v2 (:fixed-arities var-2) varargs-min-arity (:varargs-min-arity var-2)] (doseq [arity fixed-arities-v1] (when-not (or (contains? fixed-arities-v2 arity) (and varargs-min-arity (>= arity varargs-min-arity))) (let [{:keys [:filename :row :col :private]} (get lookup-1 k)] (println (str filename ":" row ":" col ":") (str (if private "warning" "error") ":") "Arity" arity "of" (var-symbol k) "was removed."))))) (let [{:keys [:filename :row :col :private]} (get lookup-1 k)] (println (str filename ":" row ":" col ":") (str (if private "warning" "error") ":") (var-symbol k) "was removed.")))) -
borkdude revised this gist
Jan 7, 2021 . 1 changed file with 15 additions and 7 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,7 +1,7 @@ #!/usr/bin/env bash #_" -*- mode: clojure; -*-" #_( "exec" "clojure" "-Sdeps" "{:deps {clj-kondo/clj-kondo {:mvn/version \"2020.12.12\"} org.clojure/tools.deps.alpha {:mvn/version \"0.9.857\"} lambdaisland/deep-diff2 {:mvn/version \"2.0.108\"} juji/editscript {:mvn/version \"0.5.4\"}}}" "-M" "$0" "$@" ) ;; Example usage: @@ -15,11 +15,13 @@ (def v2 (nth *command-line-args* 2)) (require '[clojure.tools.deps.alpha :as tda]) (require '[clojure.tools.deps.alpha.util.maven :as mvn]) (defn path [lib v] (let [deps `{:deps {~lib {:mvn/version ~v}} :mvn/repos ~mvn/standard-repos}] (-> (tda/resolve-deps deps {}) (get lib) :paths first))) (def path1 (path lib v1)) (def path2 (path lib v2)) @@ -37,9 +39,15 @@ (-> (clj-kondo/run! {:lint [lib] :config {:output {:analysis true :format :edn}}}) :analysis :var-definitions clean)) (def vars-1 (vars path1)) (def vars-2 (vars path2)) #_(require '[lambdaisland.deep-diff2 :as ddiff]) #_(ddiff/pretty-print (ddiff/diff vars-1 vars-2)) (require '[editscript.core :as c]) (require '[editscript.edit :as e]) (def d (c/diff vars-1 vars-2)) (require '[clojure.pprint :refer [pprint]]) (pprint (e/get-edits d)) -
borkdude revised this gist
Jan 7, 2021 . 1 changed file with 18 additions and 6 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,16 +1,28 @@ #!/usr/bin/env bash #_" -*- mode: clojure; -*-" #_( "exec" "clojure" "-Sdeps" "{:deps {clj-kondo/clj-kondo {:mvn/version \"2020.12.12\"} org.clojure/tools.deps.alpha {:mvn/version \"0.9.857\"} lambdaisland/deep-diff2 {:mvn/version \"2.0.108\"}}}" "-M" "$0" "$@" ) ;; Example usage: ;; api_diff.clj org.clojure/clojure "1.8.0" "1.10.1" > /tmp/diff.txt (require '[clj-kondo.core :as clj-kondo]) (require '[clojure.edn :as edn]) (def lib (edn/read-string (first *command-line-args*))) (def v1 (second *command-line-args*)) (def v2 (nth *command-line-args* 2)) (require '[clojure.tools.deps.alpha :as tda]) (defn path [lib v] (-> (tda/resolve-deps `{:deps {~lib {:mvn/version ~v}}} {}) (get lib) :paths first)) (def path1 (path lib v1)) (def path2 (path lib v2)) (defn index-by [f coll] @@ -27,7 +39,7 @@ (require '[lambdaisland.deep-diff2 :as ddiff]) (def vars-1 (vars path1)) (def vars-2 (vars path2)) (ddiff/pretty-print (ddiff/diff vars-1 vars-2)) -
borkdude revised this gist
Jan 7, 2021 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -5,7 +5,7 @@ ) ;; Example usage: ;; api_diff.clj ~/.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar ~/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar > /tmp/diff.txt (require '[clj-kondo.core :as clj-kondo]) -
borkdude created this gist
Jan 7, 2021 .There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,33 @@ #!/usr/bin/env bash #_" -*- mode: clojure; -*-" #_( "exec" "clojure" "-Sdeps" "{:deps {clj-kondo/clj-kondo {:mvn/version \"2020.12.12\"} lambdaisland/deep-diff2 {:mvn/version \"2.0.108\"}}}" "-M" "$0" "$@" ) ;; Example usage: ;; api_diff.clj ~/.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar ~/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar (require '[clj-kondo.core :as clj-kondo]) (def lib-1 (first *command-line-args*)) (def lib-2 (second *command-line-args*)) (defn index-by [f coll] (persistent! (reduce #(assoc! %1 (f %2) %2) (transient {}) coll))) (defn clean [vars] (->> vars (map #(select-keys % [:ns :name :fixed-arities :varargs-min-arity])) (index-by (juxt :ns :name)))) (defn vars [lib] (-> (clj-kondo/run! {:lint [lib] :config {:output {:analysis true :format :edn}}}) :analysis :var-definitions clean)) (require '[lambdaisland.deep-diff2 :as ddiff]) (def vars-1 (vars lib-1)) (def vars-2 (vars lib-2)) (ddiff/pretty-print (ddiff/diff vars-1 vars-2))