Problem
cd server && bundle exec rubocop (the documented lint command) dies during config validation and never lints a single file:
Error: The `Lint/HandleExceptions` cop has been renamed to `Lint/SuppressedException`.
(obsolete configuration found in .rubocop-http---s3-amazonaws-com-openstudio-resources-styles-rubocop-v3-yml, please update it)
Plus warnings for Metrics/LineLength (now Layout/LineLength) and Performance/* cops (extracted to the rubocop-performance gem, which is not in the Gemfile).
Root cause
Config chain: server/.rubocop.yml → root .rubocop.yml → inherit_from:
http://s3.amazonaws.com/openstudio-resources/styles/rubocop_v3.yml
http://s3.amazonaws.com/openstudio-resources/styles/rubocop-rails.yml
rubocop_v3.yml targets rubocop 0.x (~2017). server/Gemfile pins rubocop ~> 1.50.0 (2023). Rubocop 1.x treats removed/renamed cop names in config as a fatal error.
Why nobody noticed
CI never runs rubocop (neither workflow in .github/workflows/ mentions it), so the breakage is invisible. It has likely been broken for years.
Suggested fix
The S3 bucket already hosts newer style files — rubocop_v4.yml, rubocop_v5.yml, rubocop_v6.yml all return 200. Newer NREL repos use those.
- Point root
.rubocop.yml at rubocop_v6.yml (or v4); check rubocop-rails.yml for the same staleness.
- Run rubocop and triage the offense backlog (expect a large count after years unlinted;
--autocorrect should handle most style cops).
- Optionally add a rubocop job to CI so it cannot silently rot again.
🤖 Generated with Claude Code
Problem
cd server && bundle exec rubocop(the documented lint command) dies during config validation and never lints a single file:Plus warnings for
Metrics/LineLength(nowLayout/LineLength) andPerformance/*cops (extracted to therubocop-performancegem, which is not in the Gemfile).Root cause
Config chain:
server/.rubocop.yml→ root.rubocop.yml→inherit_from:http://s3.amazonaws.com/openstudio-resources/styles/rubocop_v3.ymlhttp://s3.amazonaws.com/openstudio-resources/styles/rubocop-rails.ymlrubocop_v3.ymltargets rubocop 0.x (~2017).server/Gemfilepinsrubocop ~> 1.50.0(2023). Rubocop 1.x treats removed/renamed cop names in config as a fatal error.Why nobody noticed
CI never runs rubocop (neither workflow in
.github/workflows/mentions it), so the breakage is invisible. It has likely been broken for years.Suggested fix
The S3 bucket already hosts newer style files —
rubocop_v4.yml,rubocop_v5.yml,rubocop_v6.ymlall return 200. Newer NREL repos use those..rubocop.ymlatrubocop_v6.yml(or v4); checkrubocop-rails.ymlfor the same staleness.--autocorrectshould handle most style cops).🤖 Generated with Claude Code