Skip to content

Commit

Permalink
[#339] Unresolved namespace linter
Browse files Browse the repository at this point in the history
  • Loading branch information
borkdude committed Dec 14, 2019
1 parent 13cac37 commit 6584375
Show file tree
Hide file tree
Showing 19 changed files with 410 additions and 254 deletions.
3 changes: 2 additions & 1 deletion corpus/compojure/core.clj
@@ -1,4 +1,5 @@
(ns compojure.core)
(ns compojure.core
(:require macro foo))

(defmacro defroutes
"Define a Ring handler function from a sequence of routes. The name may
Expand Down
3 changes: 0 additions & 3 deletions corpus/unresolved_symbol.clj
Expand Up @@ -11,9 +11,6 @@
(unresolved-fn1)
(unresolved-fn2))

foo/bar ;; <- unresolved
clojure.string/join ;; <- ignored

(require '[clojure.set :refer [union]])
(clojure.set/join) ;; <- should be resolved
union ;; <- also resolved
Expand Down
8 changes: 3 additions & 5 deletions deps.edn
Expand Up @@ -16,14 +16,12 @@
:test
{:extra-deps
{org.clojure/clojure {:mvn/version "1.9.0"}
org.clojure/clojurescript {:mvn/version "1.10.520"} ;; for extraction
test-runner
{:git/url "https://github.com/cognitect-labs/test-runner"
:sha "cb96e80f6f3d3b307c59cbeb49bb0dcb3a2a780b"}
clj-commons/conch {:mvn/version "0.9.2"}
cheshire {:mvn/version "5.8.1"}
borkdude/eastwood
{:git/url "https://github.com/borkdude/eastwood.git"
:sha "a6e2771d4c8920582b68ab49522ede33e344bb99"}
jonase/eastwood {:mvn/version "0.3.6"}
borkdude/missing.test.assertions {:mvn/version "0.0.1"}}
:extra-paths ["test" "extract"]
:main-opts ["-m" "cognitect.test-runner"]}
Expand All @@ -35,6 +33,6 @@
:extra-paths ["test"]
:jvm-opts ["-Djdk.attach.allowAttachSelf"]
:main-opts ["-m" "clj-kondo.profile"]}
:cljs
:cljs ;; for performance and regression testing
{:extra-deps
{org.clojure/clojurescript {:mvn/version "1.10.520"}}}}}
9 changes: 6 additions & 3 deletions project.clj
@@ -1,5 +1,8 @@
(defproject clj-kondo #=(clojure.string/trim
#=(slurp "resources/CLJ_KONDO_VERSION"))
;; GENERATED by script/update-project.clj, DO NOT EDIT
;; To change dependencies, update deps.edn and run script/update-project.clj.
;; To change other things, edit project.template.clj and run script/update-project.clj.

(defproject clj-kondo "2019.11.24-SNAPSHOT"
:description "Tidy your code with clj-kondo."
:url "https://github.com/borkdude/clj-kondo"
:scm {:name "git"
Expand All @@ -13,7 +16,7 @@
[cheshire "5.8.1"]]
:profiles {:clojure-1.9.0 {:dependencies [[org.clojure/clojure "1.9.0"]]}
:clojure-1.10.1 {:dependencies [[org.clojure/clojure "1.10.1"]]}
:test {:dependencies [[org.clojure/clojurescript "1.10.520"] ;; for extraction tests
:test {:dependencies [[org.clojure/clojurescript "1.10.520"]
[clj-commons/conch "0.9.2"]
[jonase/eastwood "0.3.6"]
[borkdude/missing.test.assertions "0.0.1"]]
Expand Down
23 changes: 23 additions & 0 deletions project.clj.template
@@ -0,0 +1,23 @@
(defproject clj-kondo "{{version}}"
:description "Tidy your code with clj-kondo."
:url "https://github.com/borkdude/clj-kondo"
:scm {:name "git"
:url "https://github.com/borkdude/clj-kondo"}
:license {:name "Eclipse Public License 1.0"
:url "http://opensource.org/licenses/eclipse-1.0.php"}
:source-paths ["src" "parser" "inlined"]
:dependencies {{dependencies|safe}}
:profiles {:clojure-1.9.0 {:dependencies [[org.clojure/clojure "1.9.0"]]}
:clojure-1.10.1 {:dependencies [[org.clojure/clojure "1.10.1"]]}
:test {:dependencies {{test-dependencies|safe}}
:source-paths ["src" "parser" "inlined" "extract"]}
:uberjar {:global-vars {*assert* false}
:jvm-opts ["-Dclojure.compiler.direct-linking=true"
"-Dclojure.spec.skip-macros=true"]
:main clj-kondo.main
:aot :all}}
:aliases {"clj-kondo" ["run" "-m" "clj-kondo.main"]}
:deploy-repositories [["clojars" {:url "https://clojars.org/repo"
:username :env/clojars_user
:password :env/clojars_pass
:sign-releases false}]])
2 changes: 2 additions & 0 deletions script/bump-version
Expand Up @@ -13,11 +13,13 @@ version="$today"

if [ "$1" = "release" ]; then
echo -e "$version" > resources/CLJ_KONDO_VERSION
script/update-project.clj
elif [ "$1" = "post-release" ]; then
cat resources/CLJ_KONDO_VERSION > resources/CLJ_KONDO_RELEASED_VERSION
tomorrow=$($date_cmd $date_pattern --date='next day')
snapshot_version="$tomorrow-SNAPSHOT"
echo "$snapshot_version" > resources/CLJ_KONDO_VERSION
script/update-project.clj
else
echo "Usage: script/bump-version ( release | post-release )"
fi
1 change: 0 additions & 1 deletion script/diff
Expand Up @@ -24,7 +24,6 @@ cd clj-kondo
out="/tmp/clj-kondo-diff/master.txt"

echo "Linting and writing output to $out"

clojure -A:clj-kondo --lint "$cp" --cache --config "$config" > "$out"

diff /tmp/clj-kondo-diff/branch.txt /tmp/clj-kondo-diff/master.txt
43 changes: 43 additions & 0 deletions script/update-project.clj
@@ -0,0 +1,43 @@
#!/usr/bin/env clojure -Sdeps {:deps,{selmer,{:mvn/version,"1.12.17"}}}

(require '[selmer.parser :as p])
(require '[clojure.java.io :as io])
(require '[clojure.string :as str])
(require '[clojure.edn :as edn])

(def version (str/trim (slurp (io/file "resources/CLJ_KONDO_VERSION"))))

(def deps-edn (edn/read-string (slurp "deps.edn")))

(def deps-dependencies (:deps deps-edn))
(def lein-dependencies (cons '[org.clojure/clojure "1.9.0"]
(map (fn [[k v]]
[k (:mvn/version v)])
deps-dependencies)))

(def deps-test-dependencies (-> deps-edn :aliases :test :extra-deps))
(def lein-test-dependencies (keep (fn [[k v]]
(when-not (#{'test-runner 'org.clojure/clojure} k)
[k (:mvn/version v)]))
deps-test-dependencies))

(spit "project.clj" (str ";; GENERATED by script/update-project.clj, DO NOT EDIT\n"
";; To change dependencies, update deps.edn and run script/update-project.clj.\n"
";; To change other things, edit project.template.clj and run script/update-project.clj.\n"
"\n"
(p/render (slurp (io/file "project.clj.template"))
{:version version
:dependencies
(format "[%s]"
(str/join "\n "
lein-dependencies))
:test-dependencies
(format "[%s]"
(str/join "\n "
lein-test-dependencies))})))


;; [[org.clojure/clojurescript "1.10.520"] ;; for extraction tests
;; [clj-commons/conch "0.9.2"]
;; [jonase/eastwood "0.3.6"]
;; [borkdude/missing.test.assertions "0.0.1"]]
1 change: 1 addition & 0 deletions src/clj_kondo/core.clj
Expand Up @@ -107,6 +107,7 @@
_ (l/lint-unused-bindings! ctx)
_ (l/lint-unresolved-symbols! ctx)
_ (l/lint-unused-imports! ctx)
_ (l/lint-unresolved-namespaces! ctx)
;; _ (namespace/reg-analysis-output! ctx)
all-findings (concat linted-calls (mapcat :findings processed)
@findings)
Expand Down

0 comments on commit 6584375

Please sign in to comment.