Skip to content

Commit fcd2c2f

Browse files
authored
Merge pull request #2832 from wynksaiddestroy/ruby-4-fix-test-suite-and-ci
Ensure Ruby 4 compatibility: fix test suite and CI
2 parents 53e7254 + 0ba5fb6 commit fcd2c2f

18 files changed

Lines changed: 63 additions & 48 deletions

.github/workflows/build.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ jobs:
2323
strategy:
2424
fail-fast: false
2525
matrix:
26-
ruby: ["3.2", "3.3", "3.4"]
26+
ruby: ["3.2", "3.3", "3.4", "4.0"]
2727
task: ["rack_smoke", "cucumber"]
2828

2929
steps:
30-
- uses: actions/checkout@v4
30+
- uses: actions/checkout@v6
3131

3232
- name: Set up Ruby
3333
uses: ruby/setup-ruby@v1
@@ -47,11 +47,11 @@ jobs:
4747
# Ensure all jobs are run to completion
4848
fail-fast: false
4949
matrix:
50-
ruby: ["3.2"]
50+
ruby: ["4.0"]
5151
task: ["spec_chrome", "spec_firefox"]
5252

5353
steps:
54-
- uses: actions/checkout@v4
54+
- uses: actions/checkout@v6
5555

5656
- name: Set up Ruby
5757
uses: ruby/setup-ruby@v1
@@ -72,11 +72,11 @@ jobs:
7272
# Ensure all jobs are run to completion
7373
fail-fast: false
7474
matrix:
75-
ruby: ["3.2"]
75+
ruby: ["4.0"]
7676
task: ["spec_chrome", "spec_firefox"]
7777

7878
steps:
79-
- uses: actions/checkout@v4
79+
- uses: actions/checkout@v6
8080
- name: Install non-ruby dependencies
8181
run: |
8282
sudo apt-get update
@@ -98,7 +98,7 @@ jobs:
9898
# ruby: ["3.0"]
9999

100100
# steps:
101-
# - uses: actions/checkout@v4
101+
# - uses: actions/checkout@v6
102102

103103
# - name: Set up Ruby
104104
# uses: ruby/setup-ruby@v1
@@ -118,7 +118,7 @@ jobs:
118118
# ruby: ["3.1"]
119119

120120
# steps:
121-
# - uses: actions/checkout@v4
121+
# - uses: actions/checkout@v6
122122

123123
# - name: Set up Ruby
124124
# uses: ruby/setup-ruby@v1
@@ -137,11 +137,11 @@ jobs:
137137
# Ensure all jobs are run to completion
138138
fail-fast: false
139139
matrix:
140-
ruby: ["3.2"]
140+
ruby: ["4.0"]
141141
task: ["spec_chrome", "spec_firefox"]
142142

143143
steps:
144-
- uses: actions/checkout@v4
144+
- uses: actions/checkout@v6
145145
- name: Install non-ruby dependencies
146146
run: |
147147
sudo apt-get update
@@ -165,11 +165,11 @@ jobs:
165165
strategy:
166166
fail-fast: false
167167
matrix:
168-
ruby: ["3.4"]
168+
ruby: ["4.0"]
169169
task: ["spec_rack"]
170170

171171
steps:
172-
- uses: actions/checkout@v4
172+
- uses: actions/checkout@v6
173173

174174
- name: Set up Ruby
175175
uses: ruby/setup-ruby@v1

.rubocop.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ Layout/LineLength:
7878

7979
#################### Lint ####################
8080

81+
Lint/Debugger:
82+
Exclude:
83+
- 'lib/capybara/session.rb'
84+
8185
Lint/EmptyBlock:
8286
Exclude:
8387
- 'lib/capybara/spec/**/*'
@@ -171,6 +175,10 @@ RSpec/ExampleWording:
171175
RSpec/InstanceVariable:
172176
AssignmentOnly: true
173177

178+
RSpec/LeakyLocalVariable:
179+
Exclude:
180+
- 'spec/selenium_spec_firefox.rb'
181+
174182
RSpec/MultipleExpectations:
175183
Enabled: false
176184

@@ -180,6 +188,11 @@ RSpec/NestedGroups:
180188
RSpec/NoExpectationExample:
181189
Enabled: false
182190

191+
RSpec/Output:
192+
Exclude:
193+
- 'spec/selenium_spec_chrome_remote.rb'
194+
- 'spec/selenium_spec_firefox_remote.rb'
195+
183196
RSpec/PredicateMatcher:
184197
Exclude:
185198
- 'spec/basic_node_spec.rb'

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
source 'https://rubygems.org'
44

5-
gem 'bundler', '< 3.0'
5+
gem 'bundler'
66
gemspec
77

88
gem 'xpath', github: 'teamcapybara/xpath'

capybara.gemspec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,15 @@ Gem::Specification.new do |s|
3939
s.add_runtime_dependency('regexp_parser', ['>=1.5', '<3.0'])
4040
s.add_runtime_dependency('xpath', ['~>3.2'])
4141

42+
s.add_development_dependency('benchmark')
4243
s.add_development_dependency('byebug') unless RUBY_PLATFORM == 'java'
4344
s.add_development_dependency('coveralls')
4445
s.add_development_dependency('cucumber', ['>= 2.3.0'])
4546
s.add_development_dependency('erubi') # dependency specification needed by rbx
4647
s.add_development_dependency('irb')
4748
s.add_development_dependency('launchy', ['>= 2.0.4'])
4849
s.add_development_dependency('minitest')
50+
s.add_development_dependency('ostruct')
4951
s.add_development_dependency('puma')
5052
s.add_development_dependency('rackup')
5153
s.add_development_dependency('rake')

gemfiles/Gemfile.base-versions

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
source 'https://rubygems.org'
22

3-
gem 'bundler', '< 3.0'
3+
gem 'bundler'
44
gemspec path: '..'
55

66
gem 'rack', '~>2.0.0'
77
gem 'nokogiri', '~>1.11.0'
88
gem 'xpath', '~>3.2.0'
9-
gem 'rspec', '~>3.5.0'
9+
gem 'rspec', '~>3.13.0'
1010
gem 'selenium-webdriver', '~>4.11.0'
1111
gem 'irb', '~>1.1.1'

gemfiles/Gemfile.beta-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
source "https://rubygems.org"
22

3-
gem 'bundler', '< 3.0'
3+
gem 'bundler'
44
gemspec path: '..'
55

66
gem 'pkg-config' # needed by nokogiri

gemfiles/Gemfile.chrome_edge

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
source "https://rubygems.org"
22

3-
gem 'bundler', '< 3.0'
3+
gem 'bundler'
44
gemspec path: '..'
55

66
gem 'xpath', github: 'teamcapybara/xpath'

gemfiles/Gemfile.edge-firefox

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
source "https://rubygems.org"
22

3-
gem 'bundler', '< 3.0'
3+
gem 'bundler'
44
gemspec path: '..'
55

66
gem 'xpath', github: 'teamcapybara/xpath'

gemfiles/Gemfile.ie

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
source 'https://rubygems.org'
22

3-
gem 'bundler', '< 3.0'
3+
gem 'bundler'
44
gemspec path: '..'

gemfiles/Gemfile.rack2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
source "https://rubygems.org"
22

3-
gem 'bundler', '< 3.0'
3+
gem 'bundler'
44
gemspec path: '..'
55

66
gem 'rack', '~>2.0'

0 commit comments

Comments
 (0)