From 2e61c0b0c98e9087188a9a143bc89ff5500adeb3 Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 11:24:24 -0400 Subject: [PATCH 01/14] maint: ci: bump setup-clojure --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0cd4023..7d0e490 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,7 @@ jobs: restore-keys: "${{ runner.os }}-deps-" - name: Setup Clojure - uses: DeLaGuardo/setup-clojure@13.2 + uses: DeLaGuardo/setup-clojure@13.5 with: bb: latest @@ -57,7 +57,7 @@ jobs: key: "${{ runner.os }}-deps-${{ hashFiles('deps.edn') }}" restore-keys: "${{ runner.os }}-deps-" - name: Setup Clojure - uses: DeLaGuardo/setup-clojure@13.2 + uses: DeLaGuardo/setup-clojure@13.5 with: bb: latest From 41c5c16d295d9c2a142aff967fdeb82f7c67953b Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 11:24:55 -0400 Subject: [PATCH 02/14] maint: ci: bump cache action --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7d0e490..c894ba6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: java-version: ${{ matrix.java-version }} - name: "Restore Cache" - uses: "actions/cache@v4" + uses: "actions/cache@v5" with: path: "~/.m2/repository" key: "${{ runner.os }}-deps-${{ hashFiles('deps.edn') }}" @@ -51,7 +51,7 @@ jobs: java-version: 21 - name: "Restore Cache" - uses: "actions/cache@v4" + uses: "actions/cache@v5" with: path: "~/.m2/repository" key: "${{ runner.os }}-deps-${{ hashFiles('deps.edn') }}" From ca3df60b1861f6787f20ccc307cc214492d9ce61 Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 11:25:21 -0400 Subject: [PATCH 03/14] maint: ci: bump checkout action --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c894ba6..b3539eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: steps: - name: "Checkout code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v6" - name: Prepare java uses: actions/setup-java@v4 @@ -42,7 +42,7 @@ jobs: steps: - name: "Checkout code" - uses: "actions/checkout@v4" + uses: "actions/checkout@v6" - name: Prepare java uses: actions/setup-java@v4 From 41febc6414047f143b10bea2fd0168326ad976ad Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 11:25:53 -0400 Subject: [PATCH 04/14] maint: ci: bump setup-java action --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b3539eb..2821f6a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: uses: "actions/checkout@v6" - name: Prepare java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: "adopt" java-version: ${{ matrix.java-version }} @@ -45,7 +45,7 @@ jobs: uses: "actions/checkout@v6" - name: Prepare java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: "adopt" java-version: 21 From d0e71a6ec0e63854532705f012711c3d5d525d35 Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 11:26:54 -0400 Subject: [PATCH 05/14] maint: ci: switch java distribution: adopt -> zulu Adopt is defunct. Switch to zulu (which you are also using on bb fs). --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2821f6a..3ff6efc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: - name: Prepare java uses: actions/setup-java@v5 with: - distribution: "adopt" + distribution: "zulu" java-version: ${{ matrix.java-version }} - name: "Restore Cache" @@ -47,7 +47,7 @@ jobs: - name: Prepare java uses: actions/setup-java@v5 with: - distribution: "adopt" + distribution: "zulu" java-version: 21 - name: "Restore Cache" From 5269dee0413e8b90c4287946019417c1ac98a8b4 Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 11:30:20 -0400 Subject: [PATCH 06/14] maint: dev: bump babashka fs --- deps.edn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deps.edn b/deps.edn index 5194af9..f5e476f 100644 --- a/deps.edn +++ b/deps.edn @@ -2,12 +2,12 @@ :aliases {:repl {:extra-paths ["test"] - :extra-deps {babashka/fs {:mvn/version "0.1.11"}}} + :extra-deps {babashka/fs {:mvn/version "0.5.32"}}} :test ;; added by neil {:extra-paths ["test"] :extra-deps {io.github.cognitect-labs/test-runner {:git/tag "v0.5.1" :git/sha "dfb30dd"} - babashka/fs {:mvn/version "0.1.11"} + babashka/fs {:mvn/version "0.5.32"} io.github.borkdude/deflet {:mvn/version "0.1.0"}} :exec-args {:cmd "bb test"} :main-opts ["-m" "babashka.cli.exec"] From fc06ea4059e57d788afd222957ca24ce8195b822 Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 11:30:43 -0400 Subject: [PATCH 07/14] maint: dev: bump clojure tools build --- deps.edn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps.edn b/deps.edn index f5e476f..dd039e4 100644 --- a/deps.edn +++ b/deps.edn @@ -14,7 +14,7 @@ :exec-fn babashka.test-runner/test #_cognitect.test-runner.api/test} :build ;; added by neil - {:deps {io.github.clojure/tools.build {:mvn/version "0.10.8"} + {:deps {io.github.clojure/tools.build {:mvn/version "0.10.13"} slipset/deps-deploy {:mvn/version "0.2.0"}} :extra-paths ["." ".build"] :ns-default build From 000edc13e3b0eedd3c775becdadf589cb78695e9 Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 11:32:23 -0400 Subject: [PATCH 08/14] maint: dev: bump cljs-test-runner --- deps.edn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps.edn b/deps.edn index dd039e4..adb67d4 100644 --- a/deps.edn +++ b/deps.edn @@ -25,7 +25,7 @@ :clj-1.11 {:extra-deps {org.clojure/clojure {:mvn/version "1.11.1"}}} :cljs-test - {:extra-deps {olical/cljs-test-runner {:mvn/version "3.7.0"} + {:extra-deps {olical/cljs-test-runner {:mvn/version "3.8.0"} org.clojure/clojurescript {:mvn/version "1.12.134"}} :extra-paths ["test" "cljs-test-runner-out/gen"] :main-opts ["-m" "cljs-test-runner.main" "-d" "test"]}}} From 7ba1254e2136594c784231ea42f0876796dff818 Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 11:33:10 -0400 Subject: [PATCH 09/14] maint: dev: bump clj-1.11 alias to current 1.11 --- deps.edn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps.edn b/deps.edn index adb67d4..59332bf 100644 --- a/deps.edn +++ b/deps.edn @@ -22,7 +22,7 @@ :clj-1.9 {:extra-deps {org.clojure/clojure {:mvn/version "1.9.0"}}} :clj-1.10 {:extra-deps {org.clojure/clojure {:mvn/version "1.10.3"}}} - :clj-1.11 {:extra-deps {org.clojure/clojure {:mvn/version "1.11.1"}}} + :clj-1.11 {:extra-deps {org.clojure/clojure {:mvn/version "1.11.4"}}} :cljs-test {:extra-deps {olical/cljs-test-runner {:mvn/version "3.8.0"} From 240a70318e760af2d1bd0444d76b3472442df3b3 Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 11:42:18 -0400 Subject: [PATCH 10/14] maint: dev: update clj-kondo lib imports Move to non-legacy `./clj-kondo/imports` --- .clj-kondo/babashka/fs/config.edn | 1 - .../imports/babashka/fs/babashka/fs.clj_kondo | 36 ++++++++ .clj-kondo/imports/babashka/fs/config.edn | 4 + .clj-kondo/imports/babashka/sci/config.edn | 1 + .clj-kondo/imports/babashka/sci/sci/core.clj | 9 ++ .../borkdude/deflet/borkdude/deflet.clj_kondo | 0 .../{ => imports}/borkdude/deflet/config.edn | 0 .../imports/http-kit/http-kit/config.edn | 3 + .../http-kit/httpkit/with_channel.clj | 16 ++++ .../rewrite-clj/rewrite-clj/config.edn | 5 ++ .clj-kondo/imports/taoensso/encore/config.edn | 7 ++ .../taoensso/encore/taoensso/encore_hooks.clj | 88 +++++++++++++++++++ 12 files changed, 169 insertions(+), 1 deletion(-) delete mode 100644 .clj-kondo/babashka/fs/config.edn create mode 100644 .clj-kondo/imports/babashka/fs/babashka/fs.clj_kondo create mode 100644 .clj-kondo/imports/babashka/fs/config.edn create mode 100644 .clj-kondo/imports/babashka/sci/config.edn create mode 100644 .clj-kondo/imports/babashka/sci/sci/core.clj rename .clj-kondo/{ => imports}/borkdude/deflet/borkdude/deflet.clj_kondo (100%) rename .clj-kondo/{ => imports}/borkdude/deflet/config.edn (100%) create mode 100644 .clj-kondo/imports/http-kit/http-kit/config.edn create mode 100644 .clj-kondo/imports/http-kit/http-kit/httpkit/with_channel.clj create mode 100644 .clj-kondo/imports/rewrite-clj/rewrite-clj/config.edn create mode 100644 .clj-kondo/imports/taoensso/encore/config.edn create mode 100644 .clj-kondo/imports/taoensso/encore/taoensso/encore_hooks.clj diff --git a/.clj-kondo/babashka/fs/config.edn b/.clj-kondo/babashka/fs/config.edn deleted file mode 100644 index 23f3609..0000000 --- a/.clj-kondo/babashka/fs/config.edn +++ /dev/null @@ -1 +0,0 @@ -{:lint-as {babashka.fs/with-temp-dir clojure.core/let}} diff --git a/.clj-kondo/imports/babashka/fs/babashka/fs.clj_kondo b/.clj-kondo/imports/babashka/fs/babashka/fs.clj_kondo new file mode 100644 index 0000000..73d4409 --- /dev/null +++ b/.clj-kondo/imports/babashka/fs/babashka/fs.clj_kondo @@ -0,0 +1,36 @@ +(ns babashka.fs + (:require [clj-kondo.hooks-api :as api])) + +(defn- symbol-node? [node] + (and (api/token-node? node) + (symbol? (api/sexpr node)))) + +(defn with-temp-dir + [{:keys [node]}] + (let [args (rest (:children node)) + binding-like-vector (first args) + body (rest args)] + (when-not (zero? (count args)) ;; let clj-kondo report on arity + (if-not (api/vector-node? binding-like-vector) + (api/reg-finding! (assoc (meta binding-like-vector) + :message "babashka.fs/with-temp-dir requires a vector for first arg" + :type :babashka-fs/with-temp-dir-first-arg-not-vector)) + (let [[binding-sym options & rest-in-vec] (:children binding-like-vector)] + (when (not (symbol-node? binding-sym)) + (api/reg-finding! (assoc (meta (or binding-sym binding-like-vector)) + :message "babashka.fs/with-temp-dir vector arg requires binding-name symbol as first value" + :type :babashka-fs/with-temp-dir-vector-arg-needs-binding-symbol))) + (doseq [extra-vector-arg rest-in-vec] + (api/reg-finding! (assoc (meta extra-vector-arg) + :message "babashka.fs/with-temp-dir vector arg accepts at most 2 values" + :type :babashka-fs/with-temp-dir-vector-arg-extra-value))) + + (when binding-sym + {:node (api/list-node + ;; satisfy linter by creating binding for for binding-sym + (list* + (api/token-node 'let) + ;; it doesn't really matter what we bind to, so long as it is bound + (api/vector-node [binding-sym (api/token-node nil)]) + options ;; avoid unused binding when options is a binding + body))})))))) diff --git a/.clj-kondo/imports/babashka/fs/config.edn b/.clj-kondo/imports/babashka/fs/config.edn new file mode 100644 index 0000000..026ca7e --- /dev/null +++ b/.clj-kondo/imports/babashka/fs/config.edn @@ -0,0 +1,4 @@ +{:linters {:babashka-fs/with-temp-dir-first-arg-not-vector {:level :error} + :babashka-fs/with-temp-dir-vector-arg-needs-binding-symbol {:level :error} + :babashka-fs/with-temp-dir-vector-arg-extra-value {:level :error}} + :hooks {:analyze-call {babashka.fs/with-temp-dir babashka.fs/with-temp-dir}}} diff --git a/.clj-kondo/imports/babashka/sci/config.edn b/.clj-kondo/imports/babashka/sci/config.edn new file mode 100644 index 0000000..60ea30d --- /dev/null +++ b/.clj-kondo/imports/babashka/sci/config.edn @@ -0,0 +1 @@ +{:hooks {:macroexpand {sci.core/copy-ns sci.core/copy-ns}}} diff --git a/.clj-kondo/imports/babashka/sci/sci/core.clj b/.clj-kondo/imports/babashka/sci/sci/core.clj new file mode 100644 index 0000000..ac324ee --- /dev/null +++ b/.clj-kondo/imports/babashka/sci/sci/core.clj @@ -0,0 +1,9 @@ +(ns sci.core) + +(defmacro copy-ns + ([ns-sym sci-ns] + `(copy-ns ~ns-sym ~sci-ns nil)) + ([ns-sym sci-ns opts] + `[(quote ~ns-sym) + ~sci-ns + (quote ~opts)])) diff --git a/.clj-kondo/borkdude/deflet/borkdude/deflet.clj_kondo b/.clj-kondo/imports/borkdude/deflet/borkdude/deflet.clj_kondo similarity index 100% rename from .clj-kondo/borkdude/deflet/borkdude/deflet.clj_kondo rename to .clj-kondo/imports/borkdude/deflet/borkdude/deflet.clj_kondo diff --git a/.clj-kondo/borkdude/deflet/config.edn b/.clj-kondo/imports/borkdude/deflet/config.edn similarity index 100% rename from .clj-kondo/borkdude/deflet/config.edn rename to .clj-kondo/imports/borkdude/deflet/config.edn diff --git a/.clj-kondo/imports/http-kit/http-kit/config.edn b/.clj-kondo/imports/http-kit/http-kit/config.edn new file mode 100644 index 0000000..e9dbcd8 --- /dev/null +++ b/.clj-kondo/imports/http-kit/http-kit/config.edn @@ -0,0 +1,3 @@ + +{:hooks + {:analyze-call {org.httpkit.server/with-channel httpkit.with-channel/with-channel}}} diff --git a/.clj-kondo/imports/http-kit/http-kit/httpkit/with_channel.clj b/.clj-kondo/imports/http-kit/http-kit/httpkit/with_channel.clj new file mode 100644 index 0000000..b429de8 --- /dev/null +++ b/.clj-kondo/imports/http-kit/http-kit/httpkit/with_channel.clj @@ -0,0 +1,16 @@ +(ns httpkit.with-channel + (:require [clj-kondo.hooks-api :as api])) + +(defn with-channel [{node :node}] + (let [[request channel & body] (rest (:children node))] + (when-not (and request channel) (throw (ex-info "No request or channel provided" {}))) + (when-not (api/token-node? channel) (throw (ex-info "Missing channel argument" {}))) + (let [new-node + (api/list-node + (list* + (api/token-node 'let) + (api/vector-node [channel (api/vector-node [])]) + request + body))] + + {:node new-node}))) diff --git a/.clj-kondo/imports/rewrite-clj/rewrite-clj/config.edn b/.clj-kondo/imports/rewrite-clj/rewrite-clj/config.edn new file mode 100644 index 0000000..19ecae9 --- /dev/null +++ b/.clj-kondo/imports/rewrite-clj/rewrite-clj/config.edn @@ -0,0 +1,5 @@ +{:lint-as + {rewrite-clj.zip/subedit-> clojure.core/-> + rewrite-clj.zip/subedit->> clojure.core/->> + rewrite-clj.zip/edit-> clojure.core/-> + rewrite-clj.zip/edit->> clojure.core/->>}} diff --git a/.clj-kondo/imports/taoensso/encore/config.edn b/.clj-kondo/imports/taoensso/encore/config.edn new file mode 100644 index 0000000..975c943 --- /dev/null +++ b/.clj-kondo/imports/taoensso/encore/config.edn @@ -0,0 +1,7 @@ +{:hooks + {:analyze-call + {taoensso.encore/defalias taoensso.encore-hooks/defalias + taoensso.encore/defaliases taoensso.encore-hooks/defaliases + taoensso.encore/defn-cached taoensso.encore-hooks/defn-cached + taoensso.encore/defonce taoensso.encore-hooks/defonce + taoensso.encore/def* taoensso.encore-hooks/def*}}} diff --git a/.clj-kondo/imports/taoensso/encore/taoensso/encore_hooks.clj b/.clj-kondo/imports/taoensso/encore/taoensso/encore_hooks.clj new file mode 100644 index 0000000..d133f73 --- /dev/null +++ b/.clj-kondo/imports/taoensso/encore/taoensso/encore_hooks.clj @@ -0,0 +1,88 @@ +(ns taoensso.encore-hooks + "I don't personally use clj-kondo, so these hooks are + kindly authored and maintained by contributors. + PRs very welcome! - Peter Taoussanis" + (:refer-clojure :exclude [defonce]) + (:require + [clj-kondo.hooks-api :as hooks])) + +(defn defalias + [{:keys [node]}] + (let [[alias src-raw _attrs body] (rest (:children node)) + src (or src-raw alias) + sym (if src-raw (hooks/sexpr alias) (symbol (name (hooks/sexpr src))))] + {:node + (with-meta + (hooks/list-node + [(hooks/token-node 'def) + (hooks/token-node sym) + (if body + (hooks/list-node + ;; use :body in the def to avoid unused import/private var warnings + [(hooks/token-node 'or) body src]) + src)]) + (meta src))})) + +(defn defaliases + [{:keys [node]}] + (let [alias-nodes (rest (:children node))] + {:node + (hooks/list-node + (into + [(hooks/token-node 'do)] + (map + (fn alias->defalias [alias-node] + (cond + (hooks/token-node? alias-node) + (hooks/list-node + [(hooks/token-node 'taoensso.encore/defalias) + alias-node]) + + (hooks/map-node? alias-node) + (let [{:keys [src alias attrs body]} (hooks/sexpr alias-node) + ;; workaround as can't seem to (get) using a token-node + ;; and there's no update-keys (yet) in sci apparently + [& {:as node-as-map}] (:children alias-node) + {:keys [attrs body]} (zipmap (map hooks/sexpr (keys node-as-map)) + (vals node-as-map))] + (hooks/list-node + [(hooks/token-node 'taoensso.encore/defalias) + (or alias src) (hooks/token-node src) attrs body]))))) + alias-nodes))})) + +(defn defn-cached + [{:keys [node]}] + (let [[sym _opts binding-vec & body] (rest (:children node))] + {:node + (hooks/list-node + (list + (hooks/token-node 'def) + sym + (hooks/list-node + (list* + (hooks/token-node 'fn) + binding-vec + body))))})) + +(defn -def-impl + [{:keys [node]} core-macro-sym] + ;; args = [sym doc-string? attr-map? init-expr] + (let [[sym & args] (rest (:children node)) + [doc-string args] (if (and (hooks/string-node? (first args)) (next args)) [(hooks/sexpr (first args)) (next args)] [nil args]) + [attr-map init-expr] (if (and (hooks/map-node? (first args)) (next args)) [(hooks/sexpr (first args)) (fnext args)] [nil (first args)]) + + attr-map (if doc-string (assoc attr-map :doc doc-string) attr-map) + sym+meta (if attr-map (with-meta sym attr-map) sym) + + rewritten + (hooks/list-node + [(hooks/token-node core-macro-sym) + sym+meta + init-expr])] + + #_(println "old node:" node) + #_(println "new node:" rewritten) + {:node rewritten})) + +(defn def* [arg] (-def-impl arg 'def)) +(defn defonce [arg] (-def-impl arg 'clojure.core/defonce)) From 32e18d9794222c9b4fda5bd150b4fea4bf572c27 Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 11:46:03 -0400 Subject: [PATCH 11/14] maint: ci: also test against clojure 1.12 --- .github/workflows/ci.yml | 1 + deps.edn | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ff6efc..018b6de 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,6 +37,7 @@ jobs: run: | bb clojure -M:clj-1.10:test -i windows bb clojure -M:clj-1.11:test -i windows + bb clojure -M:clj-1.12:test -i windows test-cljs: runs-on: ubuntu-latest diff --git a/deps.edn b/deps.edn index 59332bf..1221eee 100644 --- a/deps.edn +++ b/deps.edn @@ -23,6 +23,7 @@ :clj-1.9 {:extra-deps {org.clojure/clojure {:mvn/version "1.9.0"}}} :clj-1.10 {:extra-deps {org.clojure/clojure {:mvn/version "1.10.3"}}} :clj-1.11 {:extra-deps {org.clojure/clojure {:mvn/version "1.11.4"}}} + :clj-1.12 {:extra-deps {org.clojure/clojure {:mvn/version "1.12.4"}}} :cljs-test {:extra-deps {olical/cljs-test-runner {:mvn/version "3.8.0"} From 44b3594d4f096ed003355b4a3b0c7f4ed4478f2b Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 12:06:15 -0400 Subject: [PATCH 12/14] maint: dev: drop clj-1.9 alias, min clj is 1.10 --- deps.edn | 1 - 1 file changed, 1 deletion(-) diff --git a/deps.edn b/deps.edn index 1221eee..234557f 100644 --- a/deps.edn +++ b/deps.edn @@ -20,7 +20,6 @@ :ns-default build :main-opts ["-m" "babashka.cli.exec"]} - :clj-1.9 {:extra-deps {org.clojure/clojure {:mvn/version "1.9.0"}}} :clj-1.10 {:extra-deps {org.clojure/clojure {:mvn/version "1.10.3"}}} :clj-1.11 {:extra-deps {org.clojure/clojure {:mvn/version "1.11.4"}}} :clj-1.12 {:extra-deps {org.clojure/clojure {:mvn/version "1.12.4"}}} From 3ae1c292bad31fa5debb0c2423bea8ecd7de3888 Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 12:11:13 -0400 Subject: [PATCH 13/14] maint: ci: remove `-i windows` from `bb test` This implies run tests that have metadata that includes windows. I don't think this makes sense today. --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 018b6de..9cdc82d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,9 +35,9 @@ jobs: - name: Run tests run: | - bb clojure -M:clj-1.10:test -i windows - bb clojure -M:clj-1.11:test -i windows - bb clojure -M:clj-1.12:test -i windows + bb clojure -M:clj-1.10:test + bb clojure -M:clj-1.11:test + bb clojure -M:clj-1.12:test test-cljs: runs-on: ubuntu-latest From 6f320a6d6be707fd5ee69eab9dfd708256bc0735 Mon Sep 17 00:00:00 2001 From: lread Date: Sat, 21 Mar 2026 19:10:33 -0400 Subject: [PATCH 14/14] test: add report Print out each test name with platform Extra feedback is nice and this helps to quickly see that we are running on the platform we intended. --- test/babashka/cli/exec_test.clj | 1 + test/babashka/cli/test_report.cljc | 15 +++++++++++++++ test/babashka/cli_test.cljc | 1 + 3 files changed, 17 insertions(+) create mode 100644 test/babashka/cli/test_report.cljc diff --git a/test/babashka/cli/exec_test.clj b/test/babashka/cli/exec_test.clj index 4411637..c7eaced 100644 --- a/test/babashka/cli/exec_test.clj +++ b/test/babashka/cli/exec_test.clj @@ -2,6 +2,7 @@ {:org.babashka/cli {:exec-args {:foo :bar}}} (:require [babashka.cli-test :refer [submap?]] + [babashka.cli.test-report] [babashka.cli.exec :refer [main]] [babashka.fs :as fs] [clojure.edn :as edn] diff --git a/test/babashka/cli/test_report.cljc b/test/babashka/cli/test_report.cljc new file mode 100644 index 0000000..8609522 --- /dev/null +++ b/test/babashka/cli/test_report.cljc @@ -0,0 +1,15 @@ +(ns babashka.cli.test-report + (:require [clojure.test :as test])) + +(def platform + #?(:bb (str "bb " (System/getProperty "babashka.version")) + :cljs (str "cljs " *clojurescript-version*) + :clj (str "jdk " (System/getProperty "java.version") " clj " (clojure-version)))) + +(defmethod test/report + #?@(:cljs [[:cljs.test/default :begin-test-var]] + :default [:begin-test-var]) [m] + (let [test-name (-> m :var meta :name) + line (str "=== " test-name " [" platform "]")] + #?(:cljs (js/process.stdout.write (str line "\n")) + :default (println line)))) diff --git a/test/babashka/cli_test.cljc b/test/babashka/cli_test.cljc index b3dd800..9cca8d3 100644 --- a/test/babashka/cli_test.cljc +++ b/test/babashka/cli_test.cljc @@ -1,6 +1,7 @@ (ns babashka.cli-test (:require [babashka.cli :as cli] + [babashka.cli.test-report] [clojure.string :as str] [clojure.test :refer [deftest is testing]] [borkdude.deflet :as d]