bb print-deps: sort dependencies (#1582)

* `bb print-deps`: sort dependencies

Co-authored-by: Teodor Heggelund <git@teod.eu>
This commit is contained in:
Teodor Heggelund 2023-06-28 18:17:06 +02:00 committed by GitHub
parent 85eef7d6f7
commit de06c199f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 8 deletions

View file

@ -10,6 +10,7 @@ A preview of the next release can be installed from
## Unreleased
- [#1579](https://github.com/babashka/babashka/issues/1579): add `clojure.tools.reader/resolve-symbol`
- [#1581](https://github.com/babashka/babashka/issues/1581): `bb print-deps`: sort dependencies
## 1.3.181 (2023-06-13)

View file

@ -98,7 +98,8 @@
:feature/logging
:feature/priority-map
:feature/rrb-vector
{:dependencies [[com.clojure-goes-fast/clj-async-profiler "0.5.0"]
{:dependencies [[borkdude/rewrite-edn "0.4.6"]
[com.clojure-goes-fast/clj-async-profiler "0.5.0"]
[com.opentable.components/otj-pg-embedded "0.13.3"]
[nubank/matcher-combinators "3.6.0"]]}]
:uberjar {:global-vars {*assert* false}

View file

@ -30,6 +30,7 @@
'org.hsqldb/hsqldb)
bb-edn-deps (:deps @common/bb-edn)
deps (merge deps bb-edn-deps)
deps (into (sorted-map) deps)
paths (:paths @common/bb-edn)
deps {:deps deps}
deps (cond-> deps

View file

@ -2,16 +2,28 @@
(:require [babashka.deps :as deps]
[babashka.fs :as fs]
[babashka.test-utils :refer [bb]]
[borkdude.rewrite-edn :as r]
[clojure.string :as str]
[clojure.test :refer [deftest is testing]]
[rewrite-clj.node :as n]
[sci.core :as sci]))
(deftest print-deps-test
(let [deps (bb nil "print-deps" "--format" "deps")
tmp-dir (fs/create-temp-dir)]
(let [deps (bb nil "print-deps" "--format" "deps")]
(testing "printed deps map can be read by Clojure"
(spit (fs/file tmp-dir "deps.edn") deps)
(let [cp (sci/with-out-str
(deps/clojure ["-Spath"] {:dir (str tmp-dir)}))]
(is (str/includes? cp "babashka.curl")))
(fs/delete-tree tmp-dir))))
(let [tmp-dir (fs/create-temp-dir)]
(spit (fs/file tmp-dir "deps.edn") deps)
(let [cp (sci/with-out-str
(deps/clojure ["-Spath"] {:dir (str tmp-dir)}))]
(is (str/includes? cp "babashka.curl")))
(fs/delete-tree tmp-dir)))
(testing "keys in dep map are sorted"
(let [values-sorted? (fn [xs] (= xs (sort xs)))
deps-edn-str-deps-keys (fn [s]
(->> (r/get (r/parse-string s) :deps)
n/child-sexprs
(partition 2)
(map first)))]
(is (values-sorted? (deps-edn-str-deps-keys deps)))))))