Skip to content

Latest commit

 

History

History
273 lines (200 loc) · 16.8 KB

CHANGELOG.md

File metadata and controls

273 lines (200 loc) · 16.8 KB

Changelog

For a list of breaking changes, check here.

Unreleased

Enhanced / fixed

  • Support core.async defblockingop macro #1244
  • Add error message when keywords are passed in :or map #1242
  • False positive unused default when analyzing locals #1246

2021.03.31

Enhanced / fixed

  • :defined-by contains raw node for sgen fns #1231
  • Fix wrong order of unresolved symbols #1237
  • Remove generated nodes from analysis #1239 (@ericdallo)
  • Add :report-duplicates linter config for several linters. #1232 (@snoe)

2021.03.22

New

  • --copy-configs flag to indicate copy configs from dependencies while linting. This replaces --no-warnings.
  • --dependencies flag to indicate skipping already linted jars for performance. This replaces --no-warnings.

Enhanced / fixed

  • Support js property access syntax #1189
  • Fix linting user.clj #1190
  • Add linting for sgen/lazy-prims #1192
  • NullPointerException when ignoring :deprecated-var #1195
  • Fix :lint-as with cond-> #1205
  • Expose config to hook fns #1208 (@not-in-stock)
  • Fix crash with :clj-kondo/ignore in combination with :rename #1210
  • Fix false positive unresolved symbol in CLJS type hint #1212
  • Fix invalid namespace in clojure.data.xml analysis #1202
  • Fix analysis of clojure.core.reducers/defcurried #1217
  • Add :defined-by on missing var definitions #1219 (@ericdallo)
  • Add name positions to local-usage analysis #1220 (@ericdallo)
  • False positive :unused-private-var warning for deftype ^:private #1222
  • Correct escaping for docstrings in analysis #1224 (@lread)

2021.03.03

Enhanced / fixed

  • Redundant expression false positive #1183
  • Redundant expression false positive #1185
  • Regression in unresolved symbol config #1187

2021.02.28

New

  • Lint nested function literal #636
  • Redundant expression linter #298
  • Add :exclude config to :refer linter #1172
  • Warn on non-existent var in :refer #546
  • Support clojure.data.xml/alias-uri#1180

Enhanced / fixed

  • Fix schema.core/defmethod linting for vectors dispatch-values #1175 (@leoiacovini)
  • Continue analyzing on invalid symbol #1146
  • Standalone require should be emitted to analysis #1177
  • Upgrade sci to 0.2.4

2021.02.13

Thanks to @snoe and @ericdallo for contributing to this release. Thanks to the sponsors on Github, OpenCollective and Clojurists Together for making this release possible.

New

Enhanced / fixed

  • BREAKING: Don't use lint-as for hooks #1170
  • Fix crash when linting kitchen-async #1148
  • Memory optimizations for clojure-lsp commit
  • Upgrade to GraalVM 21.0.0 #1163
  • Fix analysis of case dispatch vals #1169
  • Potemkin improvement with regards to unresolved var #1167
  • Exported config fix for git deps #1171
  • Add :aliases to ns ctx and :alias to var-usages #1133 (@snoe)
  • Add :end-row and :end-col to var-definitions bucket on analysis #1147 (@ericdallo)
  • Fix unresolved var clojure.spec.gen.alpha/fmap #1157

2021.01.20

Thanks to @SevereOverfl0w, @jysandy, @tomdl89, @snoe, @audriu, and @ericdallo for contributing to this release.

New

  • New linter: :unresolved-var. This detects unresolved vars in other namespaces, like set/onion. See docs. #635
  • Alpine Docker build #1111
  • Add locals to analysis #1109 (@snoe)
  • Add analysis for arglists #1123 (@snoe)

Enhanced / fixed

  • Fix finding without location info #1101
  • Detect duplicate key in '{[1 2] 3, (1 2) 4} #1056 (@jysandy)
  • Add cljs.core cases in lint-specific-calls! #1116 (@tomdl89)
  • [#1099] Add :single-operand-logical linter for and and or #1122 (@tomdl89)
  • Add :ns to :unused-namespace findings (@ericdallo)
  • Derive config dir from only file path linted #1135
  • Support name in defmethod fn-tail #1115
  • Avoid crash when using :refer-clojure + :only #957

v2020.12.12

New

  • Documentation: a list of all available linters #936
  • Lint protocol and interface implementations in deftype and defrecord #140
  • Upgrade to GraalVM 20.3.0 #1085
  • Support cljs.core/simple-benchmark syntax #1079
  • Support babashka.process/$ macro syntax #1089

Enhanced / fixed

  • Fix recur arity in doysync #1081
  • Alias linter doesn't recognize (quote alias) form #1074
  • Fix retries for refer :all when linting in parallel #1068
  • Improve analyzing syntax of amap #1069
  • Namespaced map in deps.edn causes false positive #1093
  • Support ignore hints in deps.edn #1094
  • Fix unsorted namespaces linter for nested libspecs #1097
  • Fix reported ns name in analysis for nested libspecs #1100

v2020.11.07

Thanks @bennyandresen, @jaihindhreddy, @mharju, @pepijn, @slipset and @nvuillam for contributing to this release. Thanks to Clojurists Together for sponsoring this release.

New

  • Lint deps.edn #945
  • --filename option to set filename when linting from stdin. This should be used for editor plugins to enable deps.edn linting.
  • Export and import config via classpath #559, clj-kondo/config#1
  • --no-warnings flag to indicate linting is used to populate cache.
  • Skip already linted jars #705
  • Implement :include option for shadowed-var linter #1040
  • Return :files count in summary #1046

Enhanced

  • Better resolving of vars referred with :all #1010
  • Fix false positive with format #1044
  • Fix index out of bounds exception clj-kondo.lsp#11
  • More robust marking of generated nodes to avoid redundant dos and lets despite location metadata #1059

v2020.10.10

Thanks @zilti, @dharrigan and @sogaiu for contributing to this release. Thanks to Clojurists Together for sponsoring this release.

New

Fixed / enhanced

  • Fix memory leak in long running process #1036
  • Claypoole config enhancements clj-kondo/config#7
  • Don't warn about redundant let and do in hook-generated code #1038
  • Fix format string false positive #1007
  • Parse failure in (or) #1023
  • Analyze require in top-level do #1018
  • Analyze quote in require #1019
  • Base Docker image on Ubuntu latest #1026

v2020.09.09

Thanks to @cldwalker, @bfontaine, @snoe, @andreyorst, @jeroenvandijk, @jaihindhreddy, @sittim and @sogaiu for contributing to this release. Thanks to the people who helped designing the new features in Github issue conversations. Thanks to Clojurists Together for sponsoring this release.

New

  • Add --parallel option to lint sources in parallel. This will speed up linting an entire classpath. #632, #972

  • Detect error when calling a local that's not a function. #948

    (let [inc "foo"]
      (inc 1))
      ^--- String cannot be called as a function
  • Support ignore hints #872:

    (inc 1 2 3)
    ^--- clojure.core/inc is called with 3 args but expects 1
    
    #_:clj-kondo/ignore
    (inc 1 2 3)
    ^--- arity warning ignored
    
    #_{:clj-kondo/ignore[:invalid-arity]}
    (do (inc 1 2 3))
    ^--- only redundant do is reported, but invalid arity is ignored

    Also see config.md.

  • Merge config from $HOME/.config/clj-kondo, respecting XDG_CONFIG_HOME. See config.md for details. #992

  • New :config-paths option in <project>/.clj-kondo/config.edn. This allows extra configuration directories to be merged in. See config.md for details. #992

  • Config tool that can spit out library specific configurations that can be added via :config-paths. Contributions for libraries are welcome.

  • Experimental spec inspection tool that attempts to extract type information for linting. Also uses the new :config-paths feature.

  • Allow pinned version in installation script #946 (@cldwalker)

Fixed

  • Fix docstring in Rum defc hook #960
  • Format string checking improvements #942, #949
  • False positive with into and transducer #952
  • Alias usage not detected in keywords when in quoted form #981
  • Fully qualified class name incorrectly assumed to be var #950
  • Backup existing clj-kondo binary when installing #963 (@bfontaine)
  • Various documentation fixes and improvements (@jeroenvandijk, @sittim, @sogaiu)

Misc

Prior to v2020.09.09

Details about releases prior to v2020.09.09 can be found here.

Breaking changes

2020.10.10

  • Base Docker image on Ubuntu latest instead of Alpine #1026
  • Don't use lint-as for hooks #1170