Skip to content

Update Rubocop to 0.51.0#6444

Merged
jekyllbot merged 1 commit into
masterfrom
pull/rubocop
Oct 19, 2017
Merged

Update Rubocop to 0.51.0#6444
jekyllbot merged 1 commit into
masterfrom
pull/rubocop

Conversation

@jekyllbot

Copy link
Copy Markdown
Contributor

PR automatically created for @pathawks.

Update Rubocop to 0.51.0

Fixes #6441

@pathawks pathawks changed the title Update Rubocop to 0.51.0 Fixes #6441 Update Rubocop to 0.51.0 Oct 19, 2017
@pathawks pathawks requested a review from DirtyF October 19, 2017 03:11
@pathawks

Copy link
Copy Markdown
Member

Hey @ashmaroli 👋
I would request a review from you, but you don't seem to be listed. 🤷‍♂️

Comment thread .rubocop.yml
Style/DoubleNegation:
Enabled: false
Style/Encoding:
EnforcedStyle: when_needed

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Error: obsolete parameter EnforcedStyle (for Style/Encoding) found in .rubocop.yml
Style/Encoding no longer supports styles. The "never" behavior is always assumed.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like us to have the special encoding header on all our files if possible.

@ashmaroli ashmaroli Oct 20, 2017

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@parkr The Ruby Interpreter from v2.0 onwards encodes all files as UTF-8..

from the Ruby docs:

encoding

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The related Rubocop commit: rubocop/rubocop@5faf140

Comment thread .rubocop.yml
---
AllCops:
TargetRubyVersion: 2.0
TargetRubyVersion: 2.1

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Error: Unsupported Ruby version 2.0 found in `TargetRubyVersion` parameter (in .rubocop.yml). 2.0-compatible analysis was dropped after version 0.50.
Supported versions: 2.1, 2.2, 2.3, 2.4

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jekyll itself dropped support for 2.0. So this is in sync..

end
end
end # end of class << self
end

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lib/jekyll/commands/build.rb:99:11: C: Style/CommentedKeyword: Do not place comments on the same line as the end keyword.
      end # end of class << self
          ^^^^^^^^^^^^^^^^^^^^^^

Jekyll.logger.warn "WARNING:", "Error reading configuration. " \
"Using defaults (and options)."
$stderr.puts err
warn err

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lib/jekyll/configuration.rb:210:9: C: Style/StderrPuts: Use warn instead of $stderr.puts.
        $stderr.puts err
        ^^^^^^^^^^^^

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can these be changed to use Jekyll's logger instead?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we could just append it to the string we are already logging?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revisiting this, I'm not sure if we should be changing an outcome of a public method.. (..in the rare case someone's capturing $stderr for some purpose..)

So I think its best that we stick to warn in this PR or disable that check entirely if that's better..

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be changing behavior? I'm sure our logger outputs to stderr, right?


module WithRouge
def block_code(code, lang)
def block_code(_code, lang)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lib/jekyll/converters/markdown/redcarpet_parser.rb:50:20: W: Lint/UnusedMethodArgument: Unused method argument - code. If it's necessary, use _ or _code as an argument name to indicate that it won't be used.
    def block_code(code, lang)
                   ^^^^

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm... this looks like a Rubocop bug, as code is clearly used in line 53.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pathawks it doesn't look like a Rubocop bug to me since if you look at line 51, code is being immediately re-assigned with code = "<pre>#{super}</pre>" so in effect overriding whatever has been passed to :block_code as the first argument..

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right! It is doing exactly what it’s supposed to do. We don’t need this.

Comment thread test/test_filters.rb
@@ -1,4 +1,3 @@
# coding: utf-8

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test/test_filters.rb:1:1: C: Style/Encoding: Unnecessary utf-8 encoding comment.
# coding: utf-8
^^^^^^^^^^^^^^^

@ashmaroli

Copy link
Copy Markdown
Member

@pathawks Thanks for the mention 😃
AFAIC, I'm in agreement with all the changes proposed here, except for replacing $stderr.puts with warn.. Wonder if there's another alternative..

@pathawks

Copy link
Copy Markdown
Member

Ok, I am going to merge this for now because every project that inherits jekyll/jekyll is currently borked.

Maybe in another PR we can revisit @ashmaroli's idea of cleaning up warn.

@pathawks

Copy link
Copy Markdown
Member

@jekyllbot: merge +dev

@ashmaroli

Copy link
Copy Markdown
Member

because every project that inherits jekyll/jekyll is currently borked.

We had locked Rubocop to use ~> 0.50.0 (before merge). Is it not the dependent repo's fault for not locking to the patch release themselves?

@pathawks

Copy link
Copy Markdown
Member

Is it not the dependent repo's fault for not locking to the patch release themselves?

I think I was trying to use the latest version of Rubocop with a plugin. You are correct, of course.

@DirtyF

DirtyF commented Oct 20, 2017

Copy link
Copy Markdown
Member

I just did a test with the jekyll-watch plugin which is loose on the minor version:
spec.add_development_dependency "rubocop", "~> 0.5"

~/code/jekyll/plugins/jekyll-watch master
❯ script/fmt
/Users/frank/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/jekyll-3.6.0/.rubocop.yml: Style/FileName has the wrong namespace - should be Naming
Error: Unsupported Ruby version 2.0 found in `TargetRubyVersion` parameter (in /Users/frank/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/jekyll-3.6.0/.rubocop.yml). 2.0-compatible analysis was dropped after version 0.50.
Supported versions: 2.1, 2.2, 2.3, 2.4

Does this justify a 3.6.1 release?

@pathawks

Copy link
Copy Markdown
Member

@DirtyF Yes but—

We have merged minor changes in master, so easiest thing would be to cut a 3.7.0 release.
Other option would be to create a stable-3.6 branch and backport this change.

Up to you.

@pathawks

Copy link
Copy Markdown
Member

I had no idea this was a thing!! https://github.com/jekyll/jekyll/blob/3.6-stable/History.markdown

@jekyllbot I love you.

@pathawks

Copy link
Copy Markdown
Member

Tada 🎉

@pathawks

Copy link
Copy Markdown
Member

Oh, no... I got way ahead of myself. That didn't do what I thought it was going to do.

pathawks pushed a commit that referenced this pull request Oct 20, 2017
pathawks pushed a commit that referenced this pull request Oct 20, 2017
@DirtyF

DirtyF commented Oct 20, 2017

Copy link
Copy Markdown
Member

@pathawks I'm not sure what's goin' on here.

~/code/jekyll/plugins/jekyll-watch master
$ bundle update
$ …
$ Installing jekyll 3.6.1 (was 3.6.0)
$ Bundle updated!
~/code/jekyll/plugins/jekyll-watch master
$ script/fmt
Error: obsolete parameter EnforcedStyle (for Style/Encoding) found in /Users/frank/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/jekyll-3.6.1/.rubocop.yml
Style/Encoding no longer supports styles. The "never" behavior is always assumed.

@parkr said plugins will need some love, I'm up for creating first-timer- branches given I know exactly how to fix this.

@parkr

parkr commented Oct 20, 2017

Copy link
Copy Markdown
Member

Made some notes here about how I approach the release & development process: https://github.com/jekyll/maintainers/issues/2#issuecomment-338017913

@pathawks

Copy link
Copy Markdown
Member

3.6.1 doesn’t include that Rubocop change. 3.6.2 will.

Sorry; I’m still learning how all this works.

@DirtyF

DirtyF commented Oct 20, 2017

Copy link
Copy Markdown
Member

@pathawks same here, just trying to catch on what's goin' on. You're doing great.

@pathawks

Copy link
Copy Markdown
Member

@DirtyF I saw that there was already a Rubocop PR in the 3.6-stable branch and assumed that @jekyllbot had been automatically backporting merged PRs.

This was not the case, so 3.6.1 lacks what we need.

@pathawks pathawks mentioned this pull request Oct 20, 2017
@jekyll jekyll locked and limited conversation to collaborators Jul 12, 2019
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.

5 participants