RuboCop HK

Gem Version Ruby Rails License: MIT

A comprehensive RuboCop configuration for modern Ruby 3.3+ and Rails 7.1+ applications, featuring 45+ warning-only modern rules with team-focused gradual adoption.

Features

  • Modern Ruby & Rails Support: Target Ruby 3.3+ and Rails 8.0+ with latest patterns
  • Warning-Only Modern Rules: 45+ new rules as warnings to enable gradual adoption
  • Team-Focused: Educational approach with clear explanations for each rule
  • Zero Breaking Changes: All new features are opt-in warnings only
  • Comprehensive Coverage: Style, Rails, RSpec, Performance, and Lint rules
  • Production Ready: 100% test coverage with extensive CI/CD validation

Installation

Add this line to your application's Gemfile:

gem 'rubocop-hk', '~> 1.4.0', require: false

And then execute:

bundle install

Quick Start

  1. Create a .rubocop.yml file in your project root:
inherit_gem:
  rubocop-hk: config/default.yml
  1. Run RuboCop:
bundle exec rubocop
  1. Review warnings and gradually promote them to errors when your team is ready:
# View current warnings
bundle exec rubocop --format json | jq '.files[].offenses[] | select(.severity=="warning")'

# Use the promotion script (see documentation)
ruby scripts/promote-warnings.rb

Configuration Options

RuboCop HK provides several preconfigured options:

  • config/default.yml - Balanced configuration with modern warning-only rules
  • config/strict.yml - More stringent rules for mature codebases
  • config/rails.yml - Rails-specific optimizations

See CUSTOMIZATION.md for detailed configuration options.

Documentation

Requirements

  • Ruby >= 3.3.0
  • RuboCop >= 1.86.0
  • Rails >= 7.1.0 (if using Rails cops)

New in v1.4.0

This release tracks the latest stable RuboCop toolchain:

  • ⬆️ RuboCop 1.86 line - Widened the constraint to >= 1.86.0, < 2.0 so you always get the current 1.x release
  • 🔌 Updated plugins - rubocop-performance ~> 1.26, rubocop-rails ~> 2.35, rubocop-rspec ~> 3.9
  • 🛠️ Config compatibility - Renamed the obsolete Layout/LineLength parameter IgnoreCopDirectives to AllowCopDirectives
  • 🎯 Ruby 3.3 / 3.4 & Rails 7.1–8.1 - Verified across the supported matrix
  • 📦 45+ warning-only modern rules - Gradual adoption without breaking builds

See CHANGELOG.md for complete release notes.

Contributing

Bug reports and pull requests are welcome on GitHub. This project is intended to be a safe, welcoming space for collaboration.

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

License

The gem is available as open source under the terms of the MIT License.