10000 fix: pin rubocop to 1.12 due to error with ruby 2.4 by kmk3 · Pull Request #8651 · jekyll/jekyll · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

fix: pin rubocop to 1.12 due to error with ruby 2.4 #8651

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

Merged
merged 1 commit into from
May 14, 2021

Conversation

kmk3
Copy link
Contributor
@kmk3 kmk3 commented Apr 21, 2021

This is a 🐛 bug fix.

Summary

Rubocop 1.13 was released today (2021-04-20) and it has dropped support
for Ruby 2.4[1][2]. This causes rubocop to die on the spot when
trying to run it:

$ bundle exec rubocop --version
1.13.0
$ bundle exec rubocop
Error: RuboCop found unsupported Ruby version 2.4 in `TargetRubyVersion` parameter (in .rubocop.yml). 2.4-compatible analysis was dropped after version 1.12.
Supported versions: 2.5, 2.6, 2.7, 3.0

And thus the "style_check" ci job is currently broken[3].

Rubocop 1.10 and 1.11 don't work either because of a rename:

$ bundle exec rubocop
Error: unrecognized cop Style/StringChars found in .rubocop.yml
Did you mean `Style/StringMethods`?

The latter and arguably the former are breaking changes on minor
versions, which means that rubocop does not follow semantic
versioning[4][5]. Additionally, the gem was already pinned on a minor
version on commit fe64d98 ("style: add rubocop 1.9 cops (#8567)"), but
commit c9c9dc7 ("chore(deps): rubocop 1.10") pinned it only on the
major version (see also issue #8583)[6]. This back-and-forth happened
more than once:

* 2016-10-18: nil         to "~> 0.44.1" on commit cc1972848 ("Restrict Rubocop version")
* 2017-01-14: "~> 0.44.1" to "~> 0.46"   on commit 44324828b ("bump Rubocop to latest version")
* 2017-03-28: "~> 0.47"   to "~> 0.47.1" on commit 86703f100 ("Use Rubocop v0.47.1 till we're ready for v0.48")
* 2020-10-21: "~> 0.93.0" to "~> 1.0"    on commit 1ae2a1dd0 ("Bump RuboCop to v1.x")
* 2021-01-31: "~> 1.0"    to "~> 1.8.1"  on commit d460fae31 ("Pin rubocop version (#8564)")
* 2021-02-19: "~> 1.9.1"  to "~> 1.10"   on commit c9c9dc7da ("chore(deps): rubocop 1.10")

The above can be checked with one of the following commands:

$ tig '-G"rubocop"' -- Gemfile
# or
$ git log -p '-G"rubocop"' -- Gemfile

So pin rubocop back on a minor version: the 1.12 series.

Example of another project doing something similar (found on [2]):
Shopify/job-iteration[7].

Fixes #8649.

[1] https://github.com/rubocop/rubocop/releases/tag/v1.13.0
[2] rubocop/rubocop#9648
[3] #8649
[4] https://semver.org/
[5] rubocop/rubocop#4243
[6] https://guides.rubygems.org/patterns/#declaring-dependencies
[7] Shopify/job-iteration#79

Context

See #8649.

@kmk3 kmk3 force-pushed the pin-rubocop-112 branch from a96f552 to a2cfaee Compare April 21, 2021 08:20
Rubocop 1.13 was released today (2021-04-20) and it has dropped support
for Ruby 2.4[1][2].  This causes rubocop to die on the spot when
trying to run it:

    $ bundle exec rubocop --version
    1.13.0
    $ bundle exec rubocop
    Error: RuboCop found unsupported Ruby version 2.4 in `TargetRubyVersion` parameter (in .rubocop.yml). 2.4-compatible analysis was dropped after version 1.12.
    Supported versions: 2.5, 2.6, 2.7, 3.0

And thus the "style_check" ci job is currently broken[3].

Rubocop 1.10 and 1.11 don't work either because of a rename:

    $ bundle exec rubocop
    Error: unrecognized cop Style/StringChars found in .rubocop.yml
    Did you mean `Style/StringMethods`?

The latter and arguably the former are breaking changes on minor
versions, which means that rubocop does not follow semantic
versioning[4][5].  Additionally, the gem was already pinned on a minor
version on commit fe64d98 ("style: add rubocop 1.9 cops (jekyll#8567)"), but
commit c9c9dc7 ("chore(deps): rubocop 1.10") pinned it only on the
major version (see also issue jekyll#8583)[6].  This back-and-forth happened
more than once:

* 2016-10-18: nil         to "~> 0.44.1" on commit cc19728 ("Restrict Rubocop version")
* 2017-01-14: "~> 0.44.1" to "~> 0.46"   on commit 4432482 ("bump Rubocop to latest version")
* 2017-03-28: "~> 0.47"   to "~> 0.47.1" on commit 86703f1 ("Use Rubocop v0.47.1 till we're ready for v0.48")
* 2020-10-21: "~> 0.93.0" to "~> 1.0"    on commit 1ae2a1d ("Bump RuboCop to v1.x")
* 2021-01-31: "~> 1.0"    to "~> 1.8.1"  on commit d460fae ("Pin rubocop version (jekyll#8564)")
* 2021-02-19: "~> 1.9.1"  to "~> 1.10"   on commit c9c9dc7 ("chore(deps): rubocop 1.10")

The above can be checked with one of the following commands:

    $ tig '-G"rubocop"' -- Gemfile
    # or
    $ git log -p '-G"rubocop"' -- Gemfile

So pin rubocop back on a minor version: the 1.12 series.

Example of another project doing something similar (found on [2]):
Shopify/job-iteration[7].

Fixes jekyll#8649.

[1] https://github.com/rubocop/rubocop/releases/tag/v1.13.0
[2] rubocop/rubocop#9648
[3] jekyll#8649
[4] https://semver.org/
[5] rubocop/rubocop#4243
[6] https://guides.rubygems.org/patterns/#declaring-dependencies
[7] Shopify/job-iteration#79
@kmk3 kmk3 force-pushed the pin-rubocop-112 branch from a2cfaee to c6fa72f Compare April 23, 2021 08:44
kmk3 added a commit to kmk3/jekyll that referenced this pull request Apr 23, 2021
    $ ./script/fmt --disable-pending-cops
    RuboCop 1.12.1
    Inspecting 134 files
    .W....................................................................................................................................

    Offenses:

    lib/jekyll/cache.rb:166:5: W: [Correctable] Lint/RedundantCopDisableDirective: Unnecessary disabling of Security/MarshalLoad.
        # rubocop:disable Security/MarshalLoad
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    134 files inspected, 1 offense detected, 1 offense auto-correctable

    Try running `script/fmt -a` to automatically fix errors

Relates to jekyll#8651.
@kmk3 kmk3 mentioned this pull request Apr 23, 2021
@DirtyF
Copy link
Member
DirtyF commented May 14, 2021

@jekyll: merge +fix

@jekyllbot jekyllbot merged commit 15ad8f4 into jekyll:master May 14, 2021
jekyllbot added a commit that referenced this pull request May 14, 2021
github-actions bot pushed a commit that referenced this pull request May 14, 2021
Kelvin M. Klann: fix: pin rubocop to 1.12 due to error with ruby 2.4 (#8651)

Merge pull request 8651
@kmk3 kmk3 deleted the pin-rubocop-112 branch May 15, 2021 22:18
@jekyll jekyll locked and limited conversation to collaborators May 15, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ci: Error: RuboCop found unsupported Ruby version 2.4
3 participants
0