Fork me on GitHub
#clj-commons
<
2023-02-09
>
Noah Bogart14:02:22

I've opened an issue on meta about https://github.com/clj-commons/meta/issues/71. I'd love to hear y'alls thoughts.

slipset17:02:45

Jonas also has Eastwood which is maintained under his repo, which might be a viable option for kibit as well

vemv17:02:03

I'm not sure kibit has its place in the universe anymore (other than the very cool implementation details). One can always create custom linters with clj-kondo and to a lesser degree, Eastwood. Perhaps it's a more worthwhile investment to summarize what it does? e.g. a comparison table of its specific linters. Which remain unimplemented elsewhere?

seancorfield17:02:59

Given cjl-kondo, I'm not sure Eastwood adds anything these days, to be honest. But I got the impression Kibit goes after a different category of things?

vemv17:02:49

for the record, it does, else I would have stopped maintaining it

seancorfield17:02:40

https://github.com/clj-commons/meta/issues/71#issuecomment-1424338506 is aligns with my sense of Kibit compared to the others so I guess I'm not imagining things.

seancorfield17:02:46

To me, Eastwood and clj-kondo are direct competitors but Kibit is something else and it's valuable and I think more people would use it if its parsing was brought up to date which is what @UEENNMX0T is offering, I believe.

seancorfield17:02:37

I use Eastwood on HoneySQL but that's purely historical -- I inherited that in 1.x and just never got around to replacing it with clj-kondo 🙂

lread17:02:05

I rely on Eastwood to report on deprecated APIs in java libs. Very handy for that.

vemv17:02:10

And reflection warnings on a very fine-grained manner. And more linters :)

2
vemv17:02:52

The thing is that what kibit does could be implemented using kondo's tech, which has is very suitable given its speed and is particularly well-understood and interoperable (think clojure-lsp) There's no need to implement every kibit bit as an officially accepted clj-kondo linter, I believe. It has extension APIs. So there would be no need to clearly delimitate what a "linter" is - it's all very blurry. Much more practical to implement/choose whatever you deem necessary.

seancorfield17:02:46

True, if Kibit could essentially be rebuilt on top of clj-kondo, I think that would be a great way forward -- since LSP/clj-kondo are so widely used now.

Noah Bogart18:02:09

I've thought about doing that, to be honest. My issue is that writing clj-kondo hooks/lints is really cumbersome, you have to do all of the destructuring and checking yourself at each step: is the number of args N? is the second arg Y? is the third arg a map with x y and z? etc

Noah Bogart18:02:54

Kibit's usage of core.logic to handle pattern matching on sexprs is really powerful and doesn't currently exist in the clj-kondo universe, in part due to the way clj-kondo (and rewrite-clj underneath) build their data

seancorfield18:02:22

Ah, good point. And core.logic isn't compatible with sci at the moment, I guess?

Noah Bogart18:02:27

I have an in-progress/abandoned pattern matching library (https://github.com/NoahTheDuke/spat) built specifically for clj-kondo's data shape, maybe this is a good reason to finish fleshing it out.

Noah Bogart18:02:05

All of this to say, I think that until one of us steps up and actually does the hard work to translate the existing kibit linters to clj-kondo/eastwood, kibit still has a space in the clojure ecosystem and I am willing to do the maintenance work

2
vemv19:02:40

Perhaps it would all start with making a comprehensive table of kibit-exclusive features (linters, if you will) As mentioned I'd be super happy for those to be implemented in clj-kondo, but if that task indeed feels too low-level, I'd be willing to facilitate its implementation in Eastwood. February would be great month to do so for me, and also I know @UEENNMX0T likes to hang out in the Eastwood issue tracker from time to time :) For the hammock hopefully!

❤️ 2
Noah Bogart18:02:05

All of this to say, I think that until one of us steps up and actually does the hard work to translate the existing kibit linters to clj-kondo/eastwood, kibit still has a space in the clojure ecosystem and I am willing to do the maintenance work

2
borkdude19:02:28

It seems @danielcompton is still merging PRs over there so maybe it doesn't have to be transferred? Eastwood, jonase's other project, is also maintained by @vemv under that github account. I'm not against transferring it to clj-commons

danielcompton19:02:50

I suggested opening the issue :)

👍 2
Noah Bogart19:02:41

I'll email jonas and see if he wants to make me a maintainer which would solve the issue

Noah Bogart19:02:43

He's responded that he's interested in transferring. Is there a voting process for y'all to decide to accept or not?