From 9dbffed5163344a09f1b3e2e9d5a7fed83632391 Mon Sep 17 00:00:00 2001
From: Luke Hill <lukehill_uk@hotmail.com>
Date: Wed, 29 Jan 2025 19:14:47 +0000
Subject: [PATCH 1/7] Update changelog;

---
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3f1cc591..f397f3d6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ This file is intended to be modified using the [`changelog`](https://github.com/
 ## [Unreleased]
 
 ## [3.1.0] - 2024-11-25
+- Add support for Rails 8.0 (No code changes required) [#590](https://github.com/cucumber/cucumber-rails/pull/590)
 
 ## [3.0.1] - 2024-11-05
 ### Changed

From 78623961f43b9512bb486739b519aafd0f9fa4f7 Mon Sep 17 00:00:00 2001
From: Luke Hill <lukehill_uk@hotmail.com>
Date: Wed, 29 Jan 2025 19:16:54 +0000
Subject: [PATCH 2/7] Remove contributing from default files Update some
 minimum dev deps

---
 cucumber-rails.gemspec | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/cucumber-rails.gemspec b/cucumber-rails.gemspec
index d20ec394..08163088 100644
--- a/cucumber-rails.gemspec
+++ b/cucumber-rails.gemspec
@@ -32,10 +32,10 @@ Gem::Specification.new do |s|
   s.add_development_dependency('ammeter', '>= 1.1.5')
   s.add_development_dependency('appraisal', '>= 2.4.1', '< 3')
   s.add_development_dependency('aruba', '>= 1.1.2', '< 3')
-  s.add_development_dependency('database_cleaner', '>= 1.8', '< 3.0')
+  s.add_development_dependency('database_cleaner', '~> 2.0')
   s.add_development_dependency('rails', '>= 5.2', '< 9')
-  s.add_development_dependency('rake', '>= 13.0')
-  s.add_development_dependency('rspec', '~> 3.12')
+  s.add_development_dependency('rake', '~> 13.2')
+  s.add_development_dependency('rspec', '~> 3.13')
   s.add_development_dependency('rubocop', '~> 1.45.0')
   s.add_development_dependency('rubocop-packaging', '~> 0.5.2')
   s.add_development_dependency('rubocop-performance', '~> 1.17.1')
@@ -47,5 +47,5 @@ Gem::Specification.new do |s|
   s.add_development_dependency('yard', '~> 0.9.10')
 
   s.require_path     = 'lib'
-  s.files            = Dir['lib/**/*', 'CHANGELOG.md', 'CONTRIBUTING.md', 'LICENSE', 'README.md']
+  s.files            = Dir['lib/**/*', 'CHANGELOG.md', 'LICENSE', 'README.md']
 end

From feb0ade0309f4bb9f33fa6501edbcc01b9350649 Mon Sep 17 00:00:00 2001
From: Luke Hill <lukehill_uk@hotmail.com>
Date: Wed, 29 Jan 2025 19:18:25 +0000
Subject: [PATCH 3/7] Remove ancient ref to finding out if a file exists - use
 modern way

---
 Rakefile | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/Rakefile b/Rakefile
index b85c88ec..ed1ec08a 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,7 +1,6 @@
 # frozen_string_literal: true
 
 require 'appraisal'
-require 'pathname'
 require 'cucumber/rake/task'
 require 'rspec/core/rake_task'
 
@@ -21,7 +20,7 @@ namespace :test do
 
   desc 'Run tests against specified gemfile, e.g. rake test:gemfile[rails_6_0]'
   task :gemfile, :name do |_task, args|
-    unless args.name && Pathname.new("gemfiles/#{args.name}.gemfile").exist?
+    unless args.name && File.exist?("gemfiles/#{args.name}.gemfile")
       raise ArgumentError, "You must provide the name of an existing Appraisal gemfile,
         e.g. 'rake test:gemfile[rails_6_0]'"
     end

From adaec707915194866e71043343f99b9d45b1a579 Mon Sep 17 00:00:00 2001
From: Luke Hill <lukehill_uk@hotmail.com>
Date: Wed, 29 Jan 2025 19:21:01 +0000
Subject: [PATCH 4/7] Add note about ruby 3.1 EOL date

---
 .github/workflows/test.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 6b68038c..9a006563 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -26,6 +26,7 @@ jobs:
         # 2.6 -> EOL Mar '22 -> Only test Rails versions initially released before Sep '22
         # 2.7 -> EOL Mar '23 -> Only test Rails versions initially released before Sep '23
         # 3.0 -> EOL Mar '24 -> Only test Rails versions initially released before Sep '24
+        # 3.1 -> EOL Mar '25 -> Only test Rails versions initially released before Sep '25
         include:
           - { ruby: '2.6', gemfile: 'rails_5_2' }
           - { ruby: '2.7', gemfile: 'rails_6_0' }

From 778aec78cef551d339e57a696d05a0fb52a9fb17 Mon Sep 17 00:00:00 2001
From: Luke Hill <lukehill_uk@hotmail.com>
Date: Wed, 29 Jan 2025 19:22:08 +0000
Subject: [PATCH 5/7] Update changelog

---
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index f397f3d6..8483c8b9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 This file is intended to be modified using the [`changelog`](https://github.com/cucumber/changelog) command-line tool.
 
 ## [Unreleased]
+### Changed
+- Updated some dev dependencies and improved some dev rake tasks to make testing leaner
 
 ## [3.1.0] - 2024-11-25
 - Add support for Rails 8.0 (No code changes required) [#590](https://github.com/cucumber/cucumber-rails/pull/590)

From 859256277b2f6adb5750c3dde2888c7f60f00a7b Mon Sep 17 00:00:00 2001
From: Luke Hill <lukehill_uk@hotmail.com>
Date: Wed, 29 Jan 2025 19:38:47 +0000
Subject: [PATCH 6/7] Updated gems for unsupported rails versions

---
 Appraisals                 | 4 ++++
 gemfiles/rails_5_2.gemfile | 1 +
 gemfiles/rails_6_0.gemfile | 1 +
 gemfiles/rails_6_1.gemfile | 1 +
 gemfiles/rails_7_0.gemfile | 1 +
 5 files changed, 8 insertions(+)

diff --git a/Appraisals b/Appraisals
index 5ce2976c..9ecd6f45 100644
--- a/Appraisals
+++ b/Appraisals
@@ -3,6 +3,7 @@
 appraise 'rails_5_2' do
   gem 'activerecord'
   gem 'capybara', '< 3.33'
+  gem 'concurrent-ruby', '< 1.3.5'
   gem 'cucumber', '< 6'
   gem 'factory_bot', '< 6.4'
   gem 'psych', '< 4'
@@ -14,6 +15,7 @@ end
 appraise 'rails_6_0' do
   gem 'activerecord'
   gem 'capybara', '< 3.35'
+  gem 'concurrent-ruby', '< 1.3.5'
   gem 'cucumber', '< 6'
   gem 'factory_bot', '< 6.4'
   gem 'matrix'
@@ -26,6 +28,7 @@ end
 appraise 'rails_6_1' do
   gem 'activerecord'
   gem 'capybara', '< 3.38'
+  gem 'concurrent-ruby', '< 1.3.5'
   gem 'factory_bot', '< 6.4'
   gem 'psych', '< 4'
   gem 'railties', '~> 6.1.7'
@@ -34,6 +37,7 @@ end
 
 appraise 'rails_7_0' do
   gem 'activerecord'
+  gem 'concurrent-ruby', '< 1.3.5'
   gem 'cucumber', '< 10'
   gem 'factory_bot', '< 6.6'
   gem 'railties', '~> 7.0.8'
diff --git a/gemfiles/rails_5_2.gemfile b/gemfiles/rails_5_2.gemfile
index 2c2df730..229b959d 100644
--- a/gemfiles/rails_5_2.gemfile
+++ b/gemfiles/rails_5_2.gemfile
@@ -4,6 +4,7 @@ source "https://rubygems.org"
 
 gem "activerecord"
 gem "capybara", "< 3.33"
+gem "concurrent-ruby", "< 1.3.5"
 gem "cucumber", "< 6"
 gem "factory_bot", "< 6.4"
 gem "psych", "< 4"
diff --git a/gemfiles/rails_6_0.gemfile b/gemfiles/rails_6_0.gemfile
index e2018574..a9df4acf 100644
--- a/gemfiles/rails_6_0.gemfile
+++ b/gemfiles/rails_6_0.gemfile
@@ -4,6 +4,7 @@ source "https://rubygems.org"
 
 gem "activerecord"
 gem "capybara", "< 3.35"
+gem "concurrent-ruby", "< 1.3.5"
 gem "cucumber", "< 6"
 gem "factory_bot", "< 6.4"
 gem "matrix"
diff --git a/gemfiles/rails_6_1.gemfile b/gemfiles/rails_6_1.gemfile
index ed7fc2c0..f241c01b 100644
--- a/gemfiles/rails_6_1.gemfile
+++ b/gemfiles/rails_6_1.gemfile
@@ -4,6 +4,7 @@ source "https://rubygems.org"
 
 gem "activerecord"
 gem "capybara", "< 3.38"
+gem "concurrent-ruby", "< 1.3.5"
 gem "factory_bot", "< 6.4"
 gem "psych", "< 4"
 gem "railties", "~> 6.1.7"
diff --git a/gemfiles/rails_7_0.gemfile b/gemfiles/rails_7_0.gemfile
index ddd0b42f..efc5032b 100644
--- a/gemfiles/rails_7_0.gemfile
+++ b/gemfiles/rails_7_0.gemfile
@@ -3,6 +3,7 @@
 source "https://rubygems.org"
 
 gem "activerecord"
+gem "concurrent-ruby", "< 1.3.5"
 gem "cucumber", "< 10"
 gem "factory_bot", "< 6.6"
 gem "railties", "~> 7.0.8"

From 2fcf2e681fe945b1e85790339e13a2b03ab1f187 Mon Sep 17 00:00:00 2001
From: Luke Hill <lukehill_uk@hotmail.com>
Date: Thu, 30 Jan 2025 09:29:13 +0000
Subject: [PATCH 7/7] Amend helper install for feature tests;

---
 features/support/cucumber_rails_gem_helper.rb | 1 +
 1 file changed, 1 insertion(+)

diff --git a/features/support/cucumber_rails_gem_helper.rb b/features/support/cucumber_rails_gem_helper.rb
index 38c6da06..293d78e1 100644
--- a/features/support/cucumber_rails_gem_helper.rb
+++ b/features/support/cucumber_rails_gem_helper.rb
@@ -20,6 +20,7 @@ def install_cucumber_rails(*options)
   def configure_rails_gems
     %w[bootsnap byebug jbuilder listen rails sass-rails turbolinks webpacker].each { |gem| remove_gem(gem) }
     %w[railties activerecord actionpack].each { |rails_gem| add_gem(rails_gem, Rails.version) }
+    add_gem 'concurrent-ruby', '< 1.3.5' unless rails_equal_or_higher_than?('7.1')
   end
 
   def add_cucumber_rails(options)