-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
config/default: Upstream cop disables since this is the central place #127
config/default: Upstream cop disables since this is the central place #127
Conversation
- In `github/github` when we bumped this gem and bumped the version of RuboCop and turned off `DisabledByDefault`, there were some cops that RuboCop had detected offenses for that weren't declared in here as explicitly disabled. - Let's set `Enabled: false` for the new cops, so that this gem's config is the source of truth and downstream consumers don't diverge too much.
Ah, we're using an older version of RuboCop in this project itself, where the tests run: https://github.com/github/rubocop-github/blob/main/Gemfile.lock#L52. And the gem itself only specifies Do we want to do this at all, in this case? Who makes the decisions about bumping the RuboCop version requirements? |
I think, technically, we have to lock the Rubocop versions in this project, otherwise they will get out of sync with the consumers of this gem, and that would be a bad experience. I don't like the idea of locking Rubocop versions via this project, but I think it's necessary. There may be disagreement on this point though: I don't think that when we update, we should continually disable newly introduced gems. Instead, when a consumer updates this gem in their project, they become responsible for parsing through the changes and choosing what they want to adopt or reject. |
Idea: We can set up Dependabot updates to propose updates on a weekly/monthly calendar. |
Indeed, I disagree. 😄 If we don't aim to get this to a source of truth for GitHub's Ruby projects, then we end up having to repeat this whole engineering initiative exercise several years down the line at best. The experience for users of this gem within GitHub Ruby apps will be better now that we've got rid of I can see the reasons for not wanting to be too prescriptive here, but I'm worried that if we don't keep on top of versions and have a top-down stance of "everything here adheres to the styleguide", then there won't be the driver for individual projects to keep their RuboCop configurations in sync with the styleguide (and, indeed, feel empowered to update the styleguide if there's something new or an existing rule they strongly want to change)? Causing more divergence and confusion, surely? |
Worth noting I suppose that "everything here adheres to the styleguide" is not true at the moment for some of the configuration here, though we've made pretty good strides towards it. There are various TODOs for, just as an example, upstreaming configuration in |
Does this sound right?
|
@bensheldon Perfect! |
We used to have stricter constraints, and I removed them in #93 because they made it more difficult to upgrade rubocop in github/github. This library didn't have clear ownership at the time, and github/github ended up stuck on old versions of the rubocop gems. Those were The I'd personally prefer a |
@composerinteralia thanks for the the feedback about |
github/github
when we bumped this gem and bumped the version of RuboCop and turned offDisabledByDefault
, there were some cops that RuboCop had detected offenses for that weren't declared in here as explicitly disabled.Enabled: false
for the new cops, so that this gem's config is the source of truth and downstream consumers don't diverge too much.