Am I correct in thinking that --copy-configs is intended for both caching config exports in the local filesystem, and for allowing the user to omit the full classpath under --lint?
Or, to put it another way, is:
clj-kondo --lint "$(clojure -Spath)"
Equivalent to:
clj-kondo --lint "$(clojure -Spath)" --copy-configs --skip-lint
clj-kondo --lint src:test
(Assuming src and test are the only local directories on the classpath.)no, they are not equivalent. --copy-configs is always opt-in
clj-kondo --lint "$(clojure -Spath)" --copy-configs --skip-lint
this will only copy the configs, not analyze the dependencies btw.This will analyze/lint all the dependencies and sources. But not copy any configs.
clj-kondo --lint "$(clojure -Spath)"
Thus: clj-kondo will be aware of vars in your dependencies, but will not be aware of any bundled configurations.clj-kondo --lint "$(clojure -Spath)" --copy-configs --skip-lint
Here clj-kondo just extracts the configs, but will not analyze and depsSo clj-kondo will only look for clj-kondo.exports if there is a --copy-configs option? And without that only checks the .clj-kondo directory for exports, not the --lint path?
correct
Thanks for the correction! And the cache is something different again?
the .cache directory is just an implementation detail. clj-kondo persists data about code it's already seen there
Thanks, I think I understand now.