Skip to content

Require Ruby 3.1+ and modernize CI - #159

Merged
tas50 merged 4 commits into
mainfrom
ruby-3.1-ci-modernization
Aug 22, 2026
Merged

Require Ruby 3.1+ and modernize CI#159
tas50 merged 4 commits into
mainfrom
ruby-3.1-ci-modernization

Conversation

@tas50

@tas50 tas50 commented Aug 22, 2026

Copy link
Copy Markdown
Member

Standardizes the Ruby requirement and CI across the test-kitchen org.

Changes

  • Ruby requirement: required_ruby_version = ">= 3.1" in the gemspec.
  • .rubocop.yml: standardized on cookstyle/chefstyle with TargetRubyVersion: 3.1, matching test-kitchen. Many repos still required the standalone chefstyle gem, which no longer loads — cookstyle could not run at all before this.
  • CI: unit tests on 3.1, 3.2, 3.3, 3.4, 4.0; cookstyle --chefstyle on 3.1.
  • Bundler: added the cookstyle group where missing, so bundle exec cookstyle resolves in CI.
  • Cookstyle: applied cookstyle --chefstyle -a autocorrections; cookstyle --chefstyle is now clean.
  • Dead linters removed where present (cane, tailor, finstyle, standalone chefstyle). These are unmaintained and fail on modern Ruby (cane calls File.exists?, removed in Ruby 4.0; tailor needs ostruct, no longer a default gem). Cookstyle supersedes them.

Comment/config changes plus mechanical style autocorrections; no intentional behavior changes.

tas50 and others added 4 commits August 21, 2026 21:17
- Set required_ruby_version to ">= 3.1" in the gemspec
- Standardize .rubocop.yml on cookstyle/chefstyle with TargetRubyVersion 3.1
  (the standalone `chefstyle` gem no longer loads, which broke linting)
- Run unit tests on every Ruby release from 3.1 to 4.0 and run
  cookstyle --chefstyle on Ruby 3.1
- Add the cookstyle bundler group where it was missing so
  `bundle exec cookstyle` resolves in CI
- Apply cookstyle --chefstyle autocorrections
- Drop dead linters (cane, tailor, finstyle, standalone chefstyle) that
  are superseded by cookstyle and fail on modern Ruby

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Tim Smith <tsmith84@proton.me>
- Add the standard .markdownlint.yaml / .yamllint configs where missing
  (repos without them fell back to strict defaults and failed CI)
- Exclude CHANGELOG files from markdown-lint in the shared workflow, matching
  test-kitchen; generated changelogs cannot satisfy the rules and are rewritten
  on each release
- Fix real YAML indentation (sequences must be indented under their key);
  verified the parsed YAML is unchanged
- Remove dead .travis.yml / appveyor.yml configs, which were also the main
  yamllint offenders
- README cleanup: drop obsolete <a name="..."></a> heading anchors and dead
  travis-ci.org badges, modernize .png badge URLs, fix heading levels, add
  code-fence languages, repair broken lists, strip trailing whitespace

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Tim Smith <tsmith84@proton.me>
- Drop the chefstyle bundler group / dev dependency. chefstyle pins an old
  rubocop, which resolves cookstyle down to 7.x where "cookstyle --chefstyle"
  is not a valid option. Cookstyle supersedes it.
- Remove .cane config files; cane is unmaintained and calls File.exists?,
  removed in Ruby 4.0
- Remove the bundler dev dependency; bundler ships with Ruby and pinning it
  only constrains resolution
- Add the gem version badge to READMEs that were missing one

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Tim Smith <tsmith84@proton.me>
- Point Rakefiles at cookstyle/chefstyle instead of the standalone chefstyle
  gem, which no longer resolves; several required it unguarded, so rake
  aborted outright
- Remove Guardfiles and guard-* dev dependencies (guard-kitchen keeps its own,
  since guard is what it integrates with)
- Remove the last cane and .cane config remnants
- Give repos that have tests but no test task one, so `rake test` works
- kitchen-habitat: move fakefs from :development to :test; CI runs with
  BUNDLE_WITHOUT=development, so the spec could not load it

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Tim Smith <tsmith84@proton.me>
@tas50
tas50 merged commit 767fed8 into main Aug 22, 2026
3 of 4 checks passed
@tas50
tas50 deleted the ruby-3.1-ci-modernization branch August 22, 2026 05:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant