codeclimate-rubocop not catching issues
imajes opened this issue ยท 5 comments
Hey climateers,
I'm noticing that for some reason i'm not able to get the codeclimate-rubocop analyzer to be able to find/determine errors.
here's a comparison:
% rubocop
Inspecting 545 files
................................................................................................................................................................................................................................................................................C................................................................................................................................................................................................................................................................................
Offenses:
config/initializers/cop_trigger.rb:3:1: C: Style/GlobalVars: Do not introduce global variables.
$GLOBAL_BADNESS = "some pointlessly quoted string"
^^^^^^^^^^^^^^^
config/initializers/cop_trigger.rb:3:19: C: Style/StringLiterals: Prefer single-quoted strings when you don't need string interpolation or special symbols.
$GLOBAL_BADNESS = "some pointlessly quoted string"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
545 files inspected, 2 offenses detected, 2 offenses auto-correctable
However, when run via CC:
% CODECLIMATE_DEBUG=1 codeclimate analyze -e rubocop:rubocop-0-92
Starting analysis
I, [2020-12-22T00:59:38.100682 #1] INFO -- : starting engine rubocop
D, [2020-12-22T01:00:02.091052 #1] DEBUG -- : /config.json content: {"enabled"=>true, "channel"=>"rubocop-0-92", "config"=>".rubocop.yml", "include_paths"=>[".better-html.yml", ".browserslistrc", ".bundle/", ".circleci/", ".codeclimate.yml", ".devpack", ".devpack_initializers/", ".dockerignore", ".env.development", ".env.example", ".env.test", ".erb-lint.yml", ".github/", ".gitignore", ".nvmrc", ".pry_history", ".rspec", ".rubocop.yml", ".ruby-gemset", ".ruby-version", ".solargraph.yml", ".stylelintrc", "Dockerfile", "Gemfile", "Gemfile.lock", "Procfile", "README.md", "Rakefile", "app/", "babel.config.js", "bin/", "config.ru", "[REDACTED]_config.ru", "docker-compose.yml", "jest.setup.js", "lib/", "log/", "package.json", "postcss.config.js", "scrap/", "storage/"], "debug"=>"1"}
D, [2020-12-22T01:00:02.109017 #1] DEBUG -- : docker run: ["docker", "run", "--name", "cc-engines-rubocop-rubocop-0-92-73a75734-22e2-475a-aa6b-fd53d20aa0d5", "--cap-drop", "all", "--label", "com.codeclimate.label=a6dc7471-fca1-4bc8-a436-cab68359f5fb", "--log-driver", "none", "--memory-swap", "-1", "--net", "none", "--rm", "--volume", "/Users/james/Projects/[REDACTED]:/code:ro", "--volume", "/tmp/cc/37889be1-43aa-457d-927c-c58889c11881:/config.json:ro", "--user", "9000:9000", "--memory", "1024000000", "codeclimate/codeclimate-rubocop:rubocop-0-92"]
D, [2020-12-22T01:00:47.432874 #1] DEBUG -- : engine stderr: An error occurred while Layout/FirstParameterIndentation cop was inspecting /code/app/[REDACTED].rb:8:4.
D, [2020-12-22T01:00:47.433553 #1] DEBUG -- : engine stderr: To see the complete backtrace run rubocop -d.
D, [2020-12-22T01:00:49.936811 #1] DEBUG -- : engine stderr: An error occurred while Layout/FirstParameterIndentation cop was inspecting /code/app/helpers/[REDACTED]_helper.rb:65:4.
D, [2020-12-22T01:00:49.937796 #1] DEBUG -- : engine stderr: To see the complete backtrace run rubocop -d.
I, [2020-12-22T01:00:55.441913 #1] INFO -- : finished engine rubocop
Analysis complete! Found 0 issues.
%
I can't figure out how better to debug this... but it's clear that running via codeclimate isn't getting it done.
relevant portion of .codeclimate.yml:
plugins:
# Code Climate's default rubocop version is old. This change allows us to control the version Code Climate uses.
# Channels available: https://github.com/codeclimate/codeclimate-rubocop/branches/all?utf8=โ&query=channel%2Frubocop
# https://docs.codeclimate.com/docs/rubocop
rubocop:
enabled: true
channel: rubocop-0-92
config:
file: .rubocop.yml
halps? :) (sorry @ale7714 , but cc'ing you in because i know y'all super busy, but i am blocked on this - thanks)
@fede-moya happy holidays! ๐ โ๏ธ
just wondered if you happened to have any time to look at this -- it feels like (i hope) a simple fix :D
@imajes happy holidays! we are having issues reproducing this bug. Could you please share a sample code where you're experiencing this issue? If you don't feel comfortable sharing over here. Please, send an email to hello@codeclimate.com so we can take a look at what's going on. Thank you!
@ale7714 thanks for replying! I pinged you back via the RLS slack -- it may be easier to zoom or something to quickly dive in. Thank you for being so awesome and on top of all these things! โค๏ธ
Could be the case that the code we discussed is not valid ruby code ? As we discussed, our theory was right and you are not seeing any rubocop issues because the ruby-parser is failing at some point.
I have run the parser latest version, 3.0.0 against the following code and and I have received the following error message.
def hello(
a,
b,
)
puts "#{a} - #{b}"
end
hello("Parameter A", "Parameter B")hello.rb:4:1: error: unexpected token tRPAREN
hello.rb:4: )
hello.rb:4: ^Which is exactly the same parser error that I remember seeing in the logs.
Also trying to run that also cause and error
>> ruby hello.rb
hello.rb:4: syntax error, unexpected ')'
hello.rb:6: syntax error, unexpected `end', expecting end-of-inputAll those problems go away if we remove the comma after argument b, seems like it's not valid ruby. Like this:
def hello(
a,
b
)
puts "#{a} - #{b}"
end
hello("Parameter A", "Parameter B")Might that extra comma got introduced by mistake ? ๐ค
@fede-moya i triple checked, and there's no dangling comma. Sorry man. it's not the error :(