this morning I have merged a change which extracts most of rubocop rules into a separate rubygem:
The goal is to keep our configuration separate so plugins can import these rules as well. The PR which was merged was:
However what I haven’t realized is that Hound, the service we run in core and other plugins, does not properly import rules from rubygems. This leads ultimately to the situation when Hound reports errors since it falls back to default configuration. Example PR:
Therefore I propose to turn off Hound for core, there is already a Github Action which runs our own version of Rubocop. This gives all the flexibility we need into our hands, we no longer need to wait until Hound upgrade to the latest version as the service often runs an older version so update is not possible. Also we can start using more Rubocop plugins, e.g. Rubocop Performance is quite interesting one to start with.
Of course there are drawbacks, like with everything in life. Hound is faster (almost instant while GH actions involve some queue time) and also it has the ability to post comments which can be seen as disadvantage too (I hate this when it spams my PR hard).
I’m definitely up for disabling Hound, there are other ways to have inline filures from rubocop then annoying comments with GitHub now, so I’m definitelly up for disabling Hound and keeping only the rubocop GH action.
I though I was suggesting it when I was proposing the gem as we talked about the issue Hound not supporting external gems. I can’t find it anywhere though. I’m sorry for not being as explicit on this.
For now I’ve disabled the hound webhook since it doesn’t work. once we are comfortable with the new gem (and ideally implemented inline indications with it, which to me was the biggest benefit of hound), let’s clean up hound and remove it.