This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-02-09
Channels
- # announcements (26)
- # babashka (4)
- # beginners (17)
- # calva (21)
- # cider (13)
- # clerk (17)
- # clj-commons (23)
- # clj-kondo (3)
- # cljdoc (47)
- # cljsrn (10)
- # clojure (123)
- # clojure-belgium (2)
- # clojure-dev (25)
- # clojure-europe (34)
- # clojure-gamedev (2)
- # clojure-italy (1)
- # clojure-nl (3)
- # clojure-norway (4)
- # clojure-uk (4)
- # clojurescript (86)
- # cursive (12)
- # datahike (2)
- # datomic (2)
- # emacs (4)
- # fulcro (6)
- # funcool (15)
- # instaparse (1)
- # integrant (11)
- # jobs (1)
- # joyride (9)
- # kaocha (3)
- # membrane (8)
- # off-topic (1)
- # pathom (4)
- # practicalli (2)
- # quil (1)
- # rdf (1)
- # reagent (9)
- # remote-jobs (1)
- # shadow-cljs (27)
- # spacemacs (4)
- # specter (1)
- # sql (11)
- # tools-deps (55)
- # vim (1)
I've opened an issue on meta about https://github.com/clj-commons/meta/issues/71. I'd love to hear y'alls thoughts.
Jonas also has Eastwood which is maintained under his repo, which might be a viable option for kibit as well
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?
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?
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.
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.
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 🙂
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.
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.
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
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
Ah, good point. And core.logic
isn't compatible with sci
at the moment, I guess?
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.
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
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 hopefully!
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
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
I'll email jonas and see if he wants to make me a maintainer which would solve the issue
He's responded that he's interested in transferring. Is there a voting process for y'all to decide to accept or not?