eastwood

All things realted to eastwood - the Clojure linter
borkdude 2019-06-12T16:07:33.000600Z

eastwood has a lot of copied deps here: https://github.com/jonase/eastwood/tree/master/copied-deps/eastwood/copieddeps how does that work licensing-wise? I’d like to do the same with rewrite-clj in clj-kondo to prevent classpath clashes

borkdude 2019-06-12T16:14:17.001Z

I think I’ll make a fork and introduce one extra level of namespacing

slipset 2019-06-12T16:16:54.001500Z

That’s all the brainchild of @andy.fingerhut

slipset 2019-06-12T16:18:26.003600Z

There are two libs that do this kind of thing for you. Dolly (I guess from the cloned sheep) that Andy wrote, and Mr. Anderson, which orchard and friends uses.

borkdude 2019-06-12T16:21:30.004500Z

cool, I’ll check it out

2019-06-12T16:38:45.005200Z

licensing-wise it works for Eastwood, because all of those dependencies and Eastwood are under the EPL, so there isn't even any license matrix you need to consult to figure out if they are compatible 🙂

2019-06-12T16:39:25.006Z

tool-wise, dolly isn't what I would consider "finished", or at least certainly it requires manual fixing up of things after running it for some ns forms it doesn't update for you.

2019-06-12T16:39:41.006400Z

I haven't used mrandersen myself, but hopefully it is more finished/polished than dolly is.

borkdude 2019-06-12T20:52:41.007100Z

ok, I’ll have a look at that. do you think mr-anderson-ingin an MIT licensed project into a EPL licensed project would work?

borkdude 2019-06-12T20:53:20.007900Z

another question: does eastwood support an ‘unresolved symbol’ type of linter, or does it just crash when you have that in your code, like (fn [foo] bar)?

2019-06-12T21:12:27.009400Z

Eastwood is intended to eval all of the forms in your code, the same way that (require 'my-ns) would. It does this so that it can expand all macros and look for warnings about weird stuff in the macro-expanded version of the code, rather than the original (which is counter-productive for a linter to do, depending upon how those macro-expanded forms look).

2019-06-12T21:12:55.010Z

Given that, I always thought of Eastwood as focusing on telling you stuff about your code that the Clojure compiler does not.

borkdude 2019-06-12T21:15:51.010400Z

right, that makes sense

2019-06-12T21:16:52.011500Z

Regarding license compatibility, I have done a quick Google search for open source software license compatibility, and the results I found in a few minutes do not mention the Eclipse license yet. e.g. https://dwheeler.com/essays/floss-license-slide.html

2019-06-12T21:17:52.012300Z

A few of Eastwood's individual "linters" look at the original source forms that were read, rather than the macro-expanded version, but it still always tries to macro-expand all of the code.

2019-06-12T21:21:34.012400Z

Given that MIT is the nearest in permissiveness to "Public Domain" in that chart, I would be surprised if combining it with nearly any other licensed code would be a problem, but IANAIPL (I Am Not An Intellectual Property Lawyer)

borkdude 2019-06-12T21:23:43.012600Z

That’s my hunge too. If that doesn’t work, I could probably publish it as a forked library and just use the library.