From f7bae3ba001d5ce395e3847c85b0e795a51d7d35 Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Fri, 21 Aug 2026 21:16:34 -0700 Subject: [PATCH 1/6] Require Ruby 3.1+ and modernize CI - 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) Signed-off-by: Tim Smith --- .rubocop.yml | 2 ++ kitchen-docker.gemspec | 1 + 2 files changed, 3 insertions(+) diff --git a/.rubocop.yml b/.rubocop.yml index 5679916..ea9207d 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -4,6 +4,8 @@ require: AllCops: TargetRubyVersion: 3.1 + Include: + - "**/*.rb" Exclude: - "vendor/**/*" - "spec/**/*" diff --git a/kitchen-docker.gemspec b/kitchen-docker.gemspec index b864222..9a8c20c 100644 --- a/kitchen-docker.gemspec +++ b/kitchen-docker.gemspec @@ -4,6 +4,7 @@ require "kitchen/docker/docker_version" Gem::Specification.new do |spec| spec.name = "kitchen-docker" + spec.required_ruby_version = ">= 3.1" spec.version = Kitchen::Docker::DOCKER_VERSION spec.authors = ["Sean Porter"] spec.email = ["portertech@gmail.com"] From 7e26f1075e2b72d77f7d60c298de94dc7e3a99c7 Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Fri, 21 Aug 2026 21:36:41 -0700 Subject: [PATCH 2/6] Fix markdown and YAML lint failures - 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 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) Signed-off-by: Tim Smith --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 641f24f..90a9a0f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # Kitchen-Docker -[![Build Status](https://travis-ci.org/test-kitchen/kitchen-docker.svg?branch=master)](https://travis-ci.org/test-kitchen/kitchen-docker) [![Gem Version](https://img.shields.io/gem/v/kitchen-docker.svg)](https://rubygems.org/gems/kitchen-docker) [![Coverage](https://img.shields.io/codecov/c/github/test-kitchen/kitchen-docker.svg)](https://codecov.io/github/test-kitchen/kitchen-docker) [![License](https://img.shields.io/badge/license-Apache_2-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0) From d5ab034d14282b14cd729b807fab457e7ef737b9 Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Fri, 21 Aug 2026 22:12:55 -0700 Subject: [PATCH 3/6] README and license cleanup - Remove Code Climate badges - Fix dead documentation links (docs.kitchen-ci.org and old downloads.chef.io/docs.chef.io paths are gone; ChefDK is superseded by Chef Workstation), and repoint chef/* GitHub links at test-kitchen/* - Replace the "enter-github-user" placeholder links left over from the gem template - Point LICENSE links at the branch and filename that actually exist - Normalize the gemspec license to the SPDX identifier "Apache-2.0" so it matches the shipped LICENSE file Co-Authored-By: Claude Opus 5 (1M context) Signed-off-by: Tim Smith --- README.md | 2 +- kitchen-docker.gemspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 90a9a0f..cb0cde7 100644 --- a/README.md +++ b/README.md @@ -666,6 +666,6 @@ limitations under the License. [docker_installation]: https://docs.docker.com/installation/#installation [docker_index]: https://index.docker.io/ [test_kitchen_docs]: https://kitchen.ci/docs/getting-started/introduction/ -[chef_omnibus_dl]: https://downloads.chef.io/chef-client/ +[chef_omnibus_dl]: https://downloads.chef.io/tools/infra-client [cpu_shares]: https://docs.fedoraproject.org/en-US/Fedora/17/html/Resource_Management_Guide/sec-cpu.html [memory_limit]: https://docs.fedoraproject.org/en-US/Fedora/17/html/Resource_Management_Guide/sec-memory.html diff --git a/kitchen-docker.gemspec b/kitchen-docker.gemspec index 9a8c20c..d66f2b9 100644 --- a/kitchen-docker.gemspec +++ b/kitchen-docker.gemspec @@ -11,7 +11,7 @@ Gem::Specification.new do |spec| spec.description = %q{A Docker Driver for Test Kitchen} spec.summary = spec.description spec.homepage = "https://github.com/test-kitchen/kitchen-docker" - spec.license = "Apache 2.0" + spec.license = "Apache-2.0" spec.files = `git ls-files`.split($/) spec.require_paths = ["lib"] From 3b836d18dde79e7d82d20f81d780b0a5b3e191bf Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Fri, 21 Aug 2026 22:28:05 -0700 Subject: [PATCH 4/6] Remove remaining dead linting config and add the gem version badge - 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) Signed-off-by: Tim Smith --- Gemfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Gemfile b/Gemfile index d550b5e..f37eb3c 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,6 @@ group :development do end group :test do - gem "bundler" gem "rake" gem "rspec", "~> 3.2" gem "rspec-its", "~> 2.0" From 0794d6a9b823bb2da777927eda92730109437420 Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Fri, 21 Aug 2026 23:30:00 -0700 Subject: [PATCH 5/6] Make CI able to resolve and load the test dependencies - Use `gemspec development_group: :test`. Gemspec development dependencies otherwise land in bundler's :development group, which CI excludes via BUNDLE_WITHOUT=development, so rspec/fakefs/rake were missing at runtime - Add base64 where cucumber 9.x needs it; it is no longer a default gem on Ruby 4.0 - kitchen-opennebula: fog-opennebula's latest release is 0.0.5, so ">= 0.1" could never resolve - kitchen-rackspace: port the driver off Kitchen::Driver::SSHBase, removed in test-kitchen 4.x, and wait via the configured transport instead Co-Authored-By: Claude Opus 5 (1M context) Signed-off-by: Tim Smith --- Gemfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index f37eb3c..8ac35bc 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,6 @@ source "https://rubygems.org" -gemspec - +gemspec development_group: :test group :development do # Integration testing gems. gem "kitchen-cinc-auditor", git: "https://github.com/test-kitchen/kitchen-cinc-auditor.git" From 92026ddd1cbc6f201810d7cc4d0def22fd4c6b47 Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Sat, 22 Aug 2026 08:27:42 -0700 Subject: [PATCH 6/6] Let cookstyle decide which files to lint AllCops/Include pinned the file list to **/*.rb, which quietly excluded the gemspec, Gemfile and Rakefile -- cookstyle reported success while never looking at them. Dropping the Include list restores cookstyle's own defaults, which cover those files, and the offenses that surfaced are autocorrected here. Co-Authored-By: Claude Opus 5 (1M context) Signed-off-by: Tim Smith --- .rubocop.yml | 2 -- kitchen-docker.gemspec | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index ea9207d..5679916 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -4,8 +4,6 @@ require: AllCops: TargetRubyVersion: 3.1 - Include: - - "**/*.rb" Exclude: - "vendor/**/*" - "spec/**/*" diff --git a/kitchen-docker.gemspec b/kitchen-docker.gemspec index d66f2b9..3a3b396 100644 --- a/kitchen-docker.gemspec +++ b/kitchen-docker.gemspec @@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require "kitchen/docker/docker_version" Gem::Specification.new do |spec| - spec.name = "kitchen-docker" + spec.name = "kitchen-docker" spec.required_ruby_version = ">= 3.1" spec.version = Kitchen::Docker::DOCKER_VERSION spec.authors = ["Sean Porter"]