From 87f0124023eb0d46c79815f00fcf3f9e51c6cb87 Mon Sep 17 00:00:00 2001 From: Cam Saul Date: Wed, 19 Feb 2025 15:28:46 -0800 Subject: [PATCH 1/3] Update Kondo version --- .github/workflows/deploy.yml | 2 +- .github/workflows/tests.yml | 48 +++++++++++++----------------------- .gitignore | 1 + deps.edn | 20 +++++++++++++++ 4 files changed, 39 insertions(+), 32 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 6a43b92..59b8e80 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -7,7 +7,7 @@ on: jobs: deploy: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest environment: Deployment steps: - uses: actions/checkout@v4.1.0 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b13fa8b..c7101f8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -8,42 +8,28 @@ on: jobs: kondo: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest timeout-minutes: 10 - env: - CLJ_KONDO_VERSION: "2023.09.07" - DOWNLOAD_URL: https://github.com/clj-kondo/clj-kondo/releases/download steps: - uses: actions/checkout@v4 - name: Setup Java & Clojure uses: ./.github/actions/setup-clojure with: cache-key: kondo - - name: Install clj-kondo - run: | - curl -OL ${DOWNLOAD_URL}/v${CLJ_KONDO_VERSION}/clj-kondo-${CLJ_KONDO_VERSION}-linux-static-amd64.zip - curl -OL ${DOWNLOAD_URL}/v${CLJ_KONDO_VERSION}/clj-kondo-${CLJ_KONDO_VERSION}-linux-static-amd64.zip.sha256 - cat clj-kondo-${CLJ_KONDO_VERSION}-linux-static-amd64.zip.sha256 >> SHA256sum.txt - echo " clj-kondo-${CLJ_KONDO_VERSION}-linux-static-amd64.zip" >> SHA256sum.txt - sha256sum -c SHA256sum.txt - unzip -d /usr/local/bin clj-kondo-${CLJ_KONDO_VERSION}-linux-static-amd64.zip - - run: clj-kondo --version - - name: Copy Kondo config from deps - run: >- - clj-kondo - --copy-configs - --dependencies - --lint "$(clojure -A:dev -Spath)" - --skip-lint - --parallel - - name: Run clj-kondo - run: >- - clj-kondo - --parallel - --lint src test + - name: Copy Kondo config from deps + run: >- + clojure -M:kondo + --copy-configs + --dependencies + --lint "$(clojure -A:dev -Spath)" + --skip-lint + --parallel + - name: Run clj-kondo + run: >- + clojure -M:kondo:kondo/all tests: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v4 @@ -57,7 +43,7 @@ jobs: CI: TRUE whitespace-linter: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Java & Clojure @@ -68,7 +54,7 @@ jobs: name: Run whitespace linter check: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Java & Clojure @@ -79,7 +65,7 @@ jobs: name: Check namespaces codecov: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Java & Clojure @@ -94,7 +80,7 @@ jobs: files: ./target/coverage/codecov.json codespell: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: codespell-project/actions-codespell@master diff --git a/.gitignore b/.gitignore index ca0449b..f358d95 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ /tags /target \#*\# +*.\~undo-tree\~ diff --git a/deps.edn b/deps.edn index eb793a9..f213c56 100644 --- a/deps.edn +++ b/deps.edn @@ -49,6 +49,26 @@ :exec-args {:only ["test"]} :jvm-opts ["-Dinhumane.test.output=true"]} + ;; Run Kondo + ;; + ;; clojure -M:kondo --lint ... + ;; + ;; Copy configs + ;; + ;; clojure -M:kondo --copy-configs --dependencies --lint "$(clojure -A:dev -Spath)" --skip-lint --parallel + :kondo + {:replace-deps {clj-kondo/clj-kondo {:mvn/version "2025.01.16"}} + :main-opts ["-m" "clj-kondo.main"]} + + ;; lint everything with Kondo + ;; + ;; clojure -M:kondo:kondo/all + :kondo/all + {:main-opts ["-m" "clj-kondo.main" + "--lint" + "src" + "test"]} + ;; clj -X:dev:cloverage :cloverage {:extra-deps {cloverage/cloverage {:mvn/version "1.2.4"}} From 31ea3bee4b488fec3467631d2e97a1176fc46732 Mon Sep 17 00:00:00 2001 From: Cam Saul Date: Wed, 19 Feb 2025 15:53:51 -0800 Subject: [PATCH 2/3] Update Kondo --- deps.edn | 3 ++- .../clj-kondo.exports/methodical/methodical/config.edn | 6 ++++-- .../methodical/methodical/hooks/methodical/macros.clj | 2 +- src/methodical/macros.clj | 9 +++++---- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/deps.edn b/deps.edn index f213c56..da7aa25 100644 --- a/deps.edn +++ b/deps.edn @@ -11,7 +11,8 @@ {:extra-paths ["dev" "test"] :extra-deps - {eftest/eftest {:mvn/version "0.5.9"} + {clj-kondo/clj-kondo {:mvn/version "2025.01.16"} + eftest/eftest {:mvn/version "0.5.9"} environ/environ {:mvn/version "1.2.0"} io.github.camsaul/humane-are {:mvn/version "1.0.2"} org.clojure/java.classpath {:mvn/version "1.0.0"} diff --git a/resources/clj-kondo.exports/methodical/methodical/config.edn b/resources/clj-kondo.exports/methodical/methodical/config.edn index ebb99b9..d5abbe7 100644 --- a/resources/clj-kondo.exports/methodical/methodical/config.edn +++ b/resources/clj-kondo.exports/methodical/methodical/config.edn @@ -1,7 +1,9 @@ {:config-paths ["macros"] - :lint-as - {} + :config-in-call + {methodical.core/defmethod + {:linters + {:redundant-fn-wrapper {:level :off}}}} :hooks {:analyze-call diff --git a/resources/clj-kondo.exports/methodical/methodical/hooks/methodical/macros.clj b/resources/clj-kondo.exports/methodical/methodical/hooks/methodical/macros.clj index 0bfb9ea..1ec5549 100644 --- a/resources/clj-kondo.exports/methodical/methodical/hooks/methodical/macros.clj +++ b/resources/clj-kondo.exports/methodical/methodical/hooks/methodical/macros.clj @@ -121,7 +121,7 @@ 'next-method '__FN__NAME__THAT__YOU__CANNOT__REFER__TO__)) fn-tail)) - (vary-meta update :clj-kondo/ignore conj :redundant-fn-wrapper))]))] + (with-meta (meta node)))]))] #_(println "=>") #_(clojure.pprint/pprint (hooks/sexpr result)) {:node result}))) diff --git a/src/methodical/macros.clj b/src/methodical/macros.clj index 51778df..fbfb96f 100644 --- a/src/methodical/macros.clj +++ b/src/methodical/macros.clj @@ -49,12 +49,13 @@ [name-symb dispatch-fn {:keys [hierarchy dispatcher combo method-table cache default-value] :or {combo `(impl/thread-last-method-combination) method-table `(impl/standard-method-table) - cache (if hierarchy - `(impl/watching-cache (impl/simple-cache) [~hierarchy]) - `(impl/simple-cache)) hierarchy '#'clojure.core/global-hierarchy} prefs :prefers}] - (let [dispatch-fn (or dispatch-fn `identity) + (let [cache (or cache + (if hierarchy + `(impl/watching-cache (impl/simple-cache) [~hierarchy]) + `(impl/simple-cache))) + dispatch-fn (or dispatch-fn `identity) dispatcher (or dispatcher `(impl/multi-default-dispatcher ~dispatch-fn :hierarchy ~hierarchy From a92d1b51410da6c54e7b2e11fddda67769526f10 Mon Sep 17 00:00:00 2001 From: Cam Saul Date: Wed, 19 Feb 2025 15:55:32 -0800 Subject: [PATCH 3/3] Fix YAML --- .github/workflows/tests.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c7101f8..2fe24a4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,17 +16,17 @@ jobs: uses: ./.github/actions/setup-clojure with: cache-key: kondo - - name: Copy Kondo config from deps - run: >- - clojure -M:kondo - --copy-configs - --dependencies - --lint "$(clojure -A:dev -Spath)" - --skip-lint - --parallel - - name: Run clj-kondo - run: >- - clojure -M:kondo:kondo/all + - name: Copy Kondo config from deps + run: >- + clojure -M:kondo + --copy-configs + --dependencies + --lint "$(clojure -A:dev -Spath)" + --skip-lint + --parallel + - name: Run clj-kondo + run: >- + clojure -M:kondo:kondo/all tests: runs-on: ubuntu-latest